@semacode/cli 1.5.30 → 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.
Files changed (176) hide show
  1. package/AGENTS.md +294 -0
  2. package/AGENT_CONTEXT_PACK.json +164 -0
  3. package/LICENSE +22 -0
  4. package/README.md +85 -144
  5. package/SEMA_BRIEF.curto.txt +11 -0
  6. package/SEMA_BRIEF.md +616 -0
  7. package/SEMA_BRIEF.micro.txt +9 -0
  8. package/SEMA_INDEX.json +9393 -0
  9. package/dist/billing/index.d.ts +46 -0
  10. package/dist/billing/index.js +143 -0
  11. package/dist/billing/index.js.map +1 -0
  12. package/dist/comandos.js +33 -0
  13. package/dist/comandos.js.map +1 -1
  14. package/dist/controleComercialSupabase.d.ts +7 -0
  15. package/dist/controleComercialSupabase.js +6 -0
  16. package/dist/controleComercialSupabase.js.map +1 -0
  17. package/dist/controleComercialSupabaseAdmin.d.ts +7 -0
  18. package/dist/controleComercialSupabaseAdmin.js +138 -0
  19. package/dist/controleComercialSupabaseAdmin.js.map +1 -0
  20. package/dist/controleComercialSupabaseCadastro.d.ts +4 -0
  21. package/dist/controleComercialSupabaseCadastro.js +85 -0
  22. package/dist/controleComercialSupabaseCadastro.js.map +1 -0
  23. package/dist/controleComercialSupabaseConstantes.d.ts +28 -0
  24. package/dist/controleComercialSupabaseConstantes.js +44 -0
  25. package/dist/controleComercialSupabaseConstantes.js.map +1 -0
  26. package/dist/controleComercialSupabaseConsumo.d.ts +2 -0
  27. package/dist/controleComercialSupabaseConsumo.js +77 -0
  28. package/dist/controleComercialSupabaseConsumo.js.map +1 -0
  29. package/dist/controleComercialSupabaseConta.d.ts +11 -0
  30. package/dist/controleComercialSupabaseConta.js +157 -0
  31. package/dist/controleComercialSupabaseConta.js.map +1 -0
  32. package/dist/controleComercialSupabaseProfiles.d.ts +4 -0
  33. package/dist/controleComercialSupabaseProfiles.js +55 -0
  34. package/dist/controleComercialSupabaseProfiles.js.map +1 -0
  35. package/dist/controleComercialSupabaseTipos.d.ts +3 -0
  36. package/dist/controleComercialSupabaseTipos.js +2 -0
  37. package/dist/controleComercialSupabaseTipos.js.map +1 -0
  38. package/dist/controleComercialSupabaseTiposAdmin.d.ts +152 -0
  39. package/dist/controleComercialSupabaseTiposAdmin.js +2 -0
  40. package/dist/controleComercialSupabaseTiposAdmin.js.map +1 -0
  41. package/dist/controleComercialSupabaseTiposBase.d.ts +169 -0
  42. package/dist/controleComercialSupabaseTiposBase.js +2 -0
  43. package/dist/controleComercialSupabaseTiposBase.js.map +1 -0
  44. package/dist/controleComercialSupabaseTiposConta.d.ts +220 -0
  45. package/dist/controleComercialSupabaseTiposConta.js +2 -0
  46. package/dist/controleComercialSupabaseTiposConta.js.map +1 -0
  47. package/dist/dev/index.d.ts +18 -0
  48. package/dist/dev/index.js +143 -0
  49. package/dist/dev/index.js.map +1 -0
  50. package/dist/index.js +222 -46
  51. package/dist/index.js.map +1 -1
  52. package/dist/init/index.d.ts +23 -0
  53. package/dist/init/index.js +112 -0
  54. package/dist/init/index.js.map +1 -0
  55. package/dist/init/templates.d.ts +11 -0
  56. package/dist/init/templates.js +660 -0
  57. package/dist/init/templates.js.map +1 -0
  58. package/dist/runnerValidacaoRemota.d.ts +9 -0
  59. package/dist/runnerValidacaoRemota.js +9 -0
  60. package/dist/runnerValidacaoRemota.js.map +1 -0
  61. package/dist/runnerValidacaoRemotaBateria.d.ts +10 -0
  62. package/dist/runnerValidacaoRemotaBateria.js +115 -0
  63. package/dist/runnerValidacaoRemotaBateria.js.map +1 -0
  64. package/dist/runnerValidacaoRemotaCli.d.ts +4 -0
  65. package/dist/runnerValidacaoRemotaCli.js +86 -0
  66. package/dist/runnerValidacaoRemotaCli.js.map +1 -0
  67. package/dist/runnerValidacaoRemotaComandos.d.ts +7 -0
  68. package/dist/runnerValidacaoRemotaComandos.js +123 -0
  69. package/dist/runnerValidacaoRemotaComandos.js.map +1 -0
  70. package/dist/runnerValidacaoRemotaEscopo.d.ts +4 -0
  71. package/dist/runnerValidacaoRemotaEscopo.js +79 -0
  72. package/dist/runnerValidacaoRemotaEscopo.js.map +1 -0
  73. package/dist/runnerValidacaoRemotaExecucao.d.ts +2 -0
  74. package/dist/runnerValidacaoRemotaExecucao.js +102 -0
  75. package/dist/runnerValidacaoRemotaExecucao.js.map +1 -0
  76. package/dist/runnerValidacaoRemotaRelatorio.d.ts +3 -0
  77. package/dist/runnerValidacaoRemotaRelatorio.js +93 -0
  78. package/dist/runnerValidacaoRemotaRelatorio.js.map +1 -0
  79. package/dist/runnerValidacaoRemotaServidor.d.ts +3 -0
  80. package/dist/runnerValidacaoRemotaServidor.js +157 -0
  81. package/dist/runnerValidacaoRemotaServidor.js.map +1 -0
  82. package/dist/runnerValidacaoRemotaSnapshot.d.ts +10 -0
  83. package/dist/runnerValidacaoRemotaSnapshot.js +217 -0
  84. package/dist/runnerValidacaoRemotaSnapshot.js.map +1 -0
  85. package/dist/runnerValidacaoRemotaTipos.d.ts +158 -0
  86. package/dist/runnerValidacaoRemotaTipos.js +35 -0
  87. package/dist/runnerValidacaoRemotaTipos.js.map +1 -0
  88. package/dist/runnerValidacaoRemotaUtil.d.ts +3 -0
  89. package/dist/runnerValidacaoRemotaUtil.js +18 -0
  90. package/dist/runnerValidacaoRemotaUtil.js.map +1 -0
  91. package/dist/runnerValidacaoRemotaWorkspace.d.ts +2 -0
  92. package/dist/runnerValidacaoRemotaWorkspace.js +110 -0
  93. package/dist/runnerValidacaoRemotaWorkspace.js.map +1 -0
  94. package/dist/sync/index.d.ts +24 -0
  95. package/dist/sync/index.js +174 -0
  96. package/dist/sync/index.js.map +1 -0
  97. package/docs/AGENT_STARTER.md +109 -0
  98. package/docs/api.md +82 -0
  99. package/docs/cli.md +93 -0
  100. package/docs/como-ensinar-a-sema-para-ia.md +30 -0
  101. package/docs/deploy.md +45 -0
  102. package/docs/documentacao.md +88 -0
  103. package/docs/env.md +115 -0
  104. package/docs/extensao-vscode.md +42 -0
  105. package/docs/fluxo-pratico-ia-sema.md +187 -0
  106. package/docs/instalacao-e-primeiro-uso.md +48 -0
  107. package/docs/integracao-com-ia.md +24 -0
  108. package/docs/mcp.md +48 -0
  109. package/docs/pagamento-ponta-a-ponta.md +171 -0
  110. package/docs/persistencia-vendor-first.md +151 -0
  111. package/docs/prompt-base-ia-sema.md +111 -0
  112. package/docs/repositories.md +69 -0
  113. package/docs/rollback.md +24 -0
  114. package/docs/seguranca.md +126 -0
  115. package/docs/sintaxe.md +218 -0
  116. package/exemplos/profile_conversas.sema +165 -0
  117. package/llms-full.txt +35 -0
  118. package/llms.txt +18 -0
  119. package/node_modules/@sema/gerador-css/package.json +7 -14
  120. package/node_modules/@sema/gerador-dart/package.json +7 -14
  121. package/node_modules/@sema/gerador-html/package.json +7 -14
  122. package/node_modules/@sema/gerador-javascript/package.json +7 -14
  123. package/node_modules/@sema/gerador-lua/package.json +7 -14
  124. package/node_modules/@sema/gerador-python/package.json +7 -14
  125. package/node_modules/@sema/gerador-typescript/package.json +7 -14
  126. package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.d.ts +22 -0
  127. package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js +97 -0
  128. package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js.map +1 -0
  129. package/node_modules/@sema/nucleo/dist/index.d.ts +1 -0
  130. package/node_modules/@sema/nucleo/dist/index.js +1 -0
  131. package/node_modules/@sema/nucleo/dist/index.js.map +1 -1
  132. package/node_modules/@sema/nucleo/package.json +7 -10
  133. package/node_modules/@sema/padroes/package.json +7 -10
  134. package/package.json +75 -74
  135. package/exemplos/.prepack-generated +0 -1
  136. package/node_modules/@sema/gerador-css/src/index.ts +0 -605
  137. package/node_modules/@sema/gerador-css/tsconfig.json +0 -13
  138. package/node_modules/@sema/gerador-css/tsconfig.tsbuildinfo +0 -1
  139. package/node_modules/@sema/gerador-dart/src/index.ts +0 -52
  140. package/node_modules/@sema/gerador-dart/tsconfig.json +0 -13
  141. package/node_modules/@sema/gerador-dart/tsconfig.tsbuildinfo +0 -1
  142. package/node_modules/@sema/gerador-html/src/index.ts +0 -185
  143. package/node_modules/@sema/gerador-html/tsconfig.json +0 -13
  144. package/node_modules/@sema/gerador-html/tsconfig.tsbuildinfo +0 -1
  145. package/node_modules/@sema/gerador-javascript/src/index.ts +0 -461
  146. package/node_modules/@sema/gerador-javascript/tsconfig.json +0 -13
  147. package/node_modules/@sema/gerador-javascript/tsconfig.tsbuildinfo +0 -1
  148. package/node_modules/@sema/gerador-lua/src/index.ts +0 -359
  149. package/node_modules/@sema/gerador-lua/tsconfig.json +0 -13
  150. package/node_modules/@sema/gerador-lua/tsconfig.tsbuildinfo +0 -1
  151. package/node_modules/@sema/gerador-python/src/index.ts +0 -850
  152. package/node_modules/@sema/gerador-python/tsconfig.json +0 -13
  153. package/node_modules/@sema/gerador-python/tsconfig.tsbuildinfo +0 -1
  154. package/node_modules/@sema/gerador-typescript/src/index.ts +0 -876
  155. package/node_modules/@sema/gerador-typescript/tsconfig.json +0 -13
  156. package/node_modules/@sema/gerador-typescript/tsconfig.tsbuildinfo +0 -1
  157. package/node_modules/@sema/nucleo/src/ast/tipos.ts +0 -207
  158. package/node_modules/@sema/nucleo/src/diagnosticos/index.ts +0 -43
  159. package/node_modules/@sema/nucleo/src/formatador/index.ts +0 -530
  160. package/node_modules/@sema/nucleo/src/index.ts +0 -183
  161. package/node_modules/@sema/nucleo/src/ir/conversor.ts +0 -1037
  162. package/node_modules/@sema/nucleo/src/ir/modelos.ts +0 -403
  163. package/node_modules/@sema/nucleo/src/lexer/lexer.ts +0 -166
  164. package/node_modules/@sema/nucleo/src/lexer/tokens.ts +0 -79
  165. package/node_modules/@sema/nucleo/src/parser/gramatica.ebnf +0 -41
  166. package/node_modules/@sema/nucleo/src/parser/parser.ts +0 -936
  167. package/node_modules/@sema/nucleo/src/persistencia/contratos.ts +0 -379
  168. package/node_modules/@sema/nucleo/src/semantico/analisador.ts +0 -3126
  169. package/node_modules/@sema/nucleo/src/semantico/estruturas.ts +0 -665
  170. package/node_modules/@sema/nucleo/src/semantico/seguranca.ts +0 -362
  171. package/node_modules/@sema/nucleo/src/util/arquivos.ts +0 -28
  172. package/node_modules/@sema/nucleo/tsconfig.json +0 -9
  173. package/node_modules/@sema/nucleo/tsconfig.tsbuildinfo +0 -1
  174. package/node_modules/@sema/padroes/src/index.ts +0 -382
  175. package/node_modules/@sema/padroes/tsconfig.json +0 -9
  176. package/node_modules/@sema/padroes/tsconfig.tsbuildinfo +0 -1
@@ -0,0 +1,2 @@
1
+ import type { ConsumirSemasMcpInput, ConsumirSemasMcpResult, SupabaseRpcClient } from "./controleComercialSupabaseTipos.js";
2
+ export declare function consumirSemasMcp(client: SupabaseRpcClient, input: ConsumirSemasMcpInput): Promise<ConsumirSemasMcpResult>;
@@ -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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controleComercialSupabaseConsumo.js","sourceRoot":"","sources":["../src/controleComercialSupabaseConsumo.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { AtualizarPerfilContaInput, AtualizarPerfilContaResult, ArquivarProjetoWorkspaceInput, ArquivarProjetoWorkspaceResult, AtualizarProjetoWorkspaceInput, AtualizarProjetoWorkspaceResult, CriarProjetoWorkspaceInput, CriarProjetoWorkspaceResult, GerarChaveMcpWorkspaceInput, GerarChaveMcpWorkspaceResult, RegistrarPresencaUsuarioInput, RegistrarPresencaUsuarioResult, RevogarChaveMcpWorkspaceInput, RevogarChaveMcpWorkspaceResult, SemaAccountContext, SemaAccountProfile, SemaMcpClientContext, SupabaseRpcClient } from "./controleComercialSupabaseTipos.js";
2
+ export declare function consultarPainelUsuario(client: SupabaseRpcClient): Promise<SemaAccountContext>;
3
+ export declare function consultarPerfilConta(client: SupabaseRpcClient): Promise<SemaAccountProfile>;
4
+ export declare function atualizarPerfilConta(client: SupabaseRpcClient, input: AtualizarPerfilContaInput): Promise<AtualizarPerfilContaResult>;
5
+ export declare function registrarPresencaUsuario(client: SupabaseRpcClient, input?: RegistrarPresencaUsuarioInput): Promise<RegistrarPresencaUsuarioResult>;
6
+ export declare function criarProjetoWorkspace(client: SupabaseRpcClient, input: CriarProjetoWorkspaceInput): Promise<CriarProjetoWorkspaceResult>;
7
+ export declare function atualizarProjetoWorkspace(client: SupabaseRpcClient, input: AtualizarProjetoWorkspaceInput): Promise<AtualizarProjetoWorkspaceResult>;
8
+ export declare function arquivarProjetoWorkspace(client: SupabaseRpcClient, input: ArquivarProjetoWorkspaceInput): Promise<ArquivarProjetoWorkspaceResult>;
9
+ export declare function consultarChaveMcpWorkspace(client: SupabaseRpcClient): Promise<SemaMcpClientContext>;
10
+ export declare function gerarChaveMcpWorkspace(client: SupabaseRpcClient, input?: GerarChaveMcpWorkspaceInput): Promise<GerarChaveMcpWorkspaceResult>;
11
+ export declare function revogarChaveMcpWorkspace(client: SupabaseRpcClient, input: RevogarChaveMcpWorkspaceInput): Promise<RevogarChaveMcpWorkspaceResult>;
@@ -0,0 +1,157 @@
1
+ import { ACCOUNT_CONTEXT_RPC, ACCOUNT_PROFILE_RPC, ARCHIVE_PROJECT_RPC, CREATE_PROJECT_RPC, GENERATE_MCP_KEY_RPC, GET_MCP_KEY_CONTEXT_RPC, REVOKE_MCP_KEY_RPC, TOUCH_PRESENCE_RPC, UPDATE_ACCOUNT_PROFILE_RPC, UPDATE_PROJECT_RPC } from "./controleComercialSupabaseConstantes.js";
2
+ export async function consultarPainelUsuario(client) {
3
+ const resposta = await client.rpc(ACCOUNT_CONTEXT_RPC, {});
4
+ if (resposta.error) {
5
+ throw new Error(resposta.error.message ?? "Falha ao consultar painel da conta Sema.");
6
+ }
7
+ if (!resposta.data) {
8
+ throw new Error("Consulta de painel nao retornou dados.");
9
+ }
10
+ return resposta.data;
11
+ }
12
+ export async function consultarPerfilConta(client) {
13
+ const resposta = await client.rpc(ACCOUNT_PROFILE_RPC, {});
14
+ if (resposta.error) {
15
+ throw new Error(resposta.error.message ?? "Falha ao consultar perfil da conta Sema.");
16
+ }
17
+ if (!resposta.data) {
18
+ throw new Error("Consulta de perfil nao retornou dados.");
19
+ }
20
+ return resposta.data;
21
+ }
22
+ export async function atualizarPerfilConta(client, input) {
23
+ const displayName = input.displayName?.trim() ?? "";
24
+ const phone = input.phone?.trim() ?? "";
25
+ const locale = input.locale?.trim() ?? "";
26
+ const timezone = input.timezone?.trim() ?? "";
27
+ if (displayName.length > 160) {
28
+ throw new Error("nome do perfil excede 160 caracteres.");
29
+ }
30
+ if (phone.length > 40) {
31
+ throw new Error("telefone do perfil excede 40 caracteres.");
32
+ }
33
+ const resposta = await client.rpc(UPDATE_ACCOUNT_PROFILE_RPC, {
34
+ p_display_name: displayName || null,
35
+ p_phone: phone || null,
36
+ p_locale: locale || null,
37
+ p_timezone: timezone || null,
38
+ });
39
+ if (resposta.error) {
40
+ throw new Error(resposta.error.message ?? "Falha ao atualizar perfil da conta Sema.");
41
+ }
42
+ if (!resposta.data?.updated) {
43
+ throw new Error("Atualizacao de perfil nao retornou confirmacao.");
44
+ }
45
+ return resposta.data;
46
+ }
47
+ export async function registrarPresencaUsuario(client, input = {}) {
48
+ const resposta = await client.rpc(TOUCH_PRESENCE_RPC, {
49
+ p_page: input.page?.trim() || "/painel",
50
+ p_metadata: input.metadata ?? {},
51
+ });
52
+ if (resposta.error) {
53
+ throw new Error(resposta.error.message ?? "Falha ao registrar presenca da conta Sema.");
54
+ }
55
+ if (!resposta.data?.registered) {
56
+ throw new Error("Presenca da conta nao retornou confirmacao.");
57
+ }
58
+ return resposta.data;
59
+ }
60
+ export async function criarProjetoWorkspace(client, input) {
61
+ const name = input.name.trim();
62
+ if (!name) {
63
+ throw new Error("nome do projeto e obrigatorio.");
64
+ }
65
+ const resposta = await client.rpc(CREATE_PROJECT_RPC, {
66
+ p_name: name,
67
+ p_description: input.description?.trim() || null,
68
+ });
69
+ if (resposta.error) {
70
+ throw new Error(resposta.error.message ?? "Falha ao criar projeto no workspace Sema.");
71
+ }
72
+ if (!resposta.data?.created) {
73
+ throw new Error("Criacao de projeto nao retornou confirmacao.");
74
+ }
75
+ return resposta.data;
76
+ }
77
+ export async function atualizarProjetoWorkspace(client, input) {
78
+ if (!input.projectId) {
79
+ throw new Error("projectId e obrigatorio para atualizar projeto.");
80
+ }
81
+ const hasName = input.name !== undefined;
82
+ const hasDescription = input.description !== undefined;
83
+ const name = hasName ? input.name?.trim() : undefined;
84
+ const description = hasDescription ? input.description?.trim() : undefined;
85
+ if (!hasName && !hasDescription) {
86
+ throw new Error("nome ou descricao do projeto e obrigatorio.");
87
+ }
88
+ if (hasName && !name) {
89
+ throw new Error("nome do projeto e obrigatorio.");
90
+ }
91
+ const resposta = await client.rpc(UPDATE_PROJECT_RPC, {
92
+ p_project_id: input.projectId,
93
+ p_name: name ?? null,
94
+ p_description: description ?? null,
95
+ });
96
+ if (resposta.error) {
97
+ throw new Error(resposta.error.message ?? "Falha ao atualizar projeto no workspace Sema.");
98
+ }
99
+ if (!resposta.data?.updated) {
100
+ throw new Error("Atualizacao de projeto nao retornou confirmacao.");
101
+ }
102
+ return resposta.data;
103
+ }
104
+ export async function arquivarProjetoWorkspace(client, input) {
105
+ if (!input.projectId) {
106
+ throw new Error("projectId e obrigatorio para arquivar projeto.");
107
+ }
108
+ const resposta = await client.rpc(ARCHIVE_PROJECT_RPC, {
109
+ p_project_id: input.projectId,
110
+ });
111
+ if (resposta.error) {
112
+ throw new Error(resposta.error.message ?? "Falha ao arquivar projeto no workspace Sema.");
113
+ }
114
+ if (!resposta.data?.archived) {
115
+ throw new Error("Arquivamento de projeto nao retornou confirmacao.");
116
+ }
117
+ return resposta.data;
118
+ }
119
+ export async function consultarChaveMcpWorkspace(client) {
120
+ const resposta = await client.rpc(GET_MCP_KEY_CONTEXT_RPC, {});
121
+ if (resposta.error) {
122
+ throw new Error(resposta.error.message ?? "Falha ao consultar chave MCP do workspace Sema.");
123
+ }
124
+ if (!resposta.data) {
125
+ throw new Error("Consulta de chave MCP nao retornou dados.");
126
+ }
127
+ return resposta.data;
128
+ }
129
+ export async function gerarChaveMcpWorkspace(client, input = {}) {
130
+ const resposta = await client.rpc(GENERATE_MCP_KEY_RPC, {
131
+ p_name: input.name ?? "Painel Sema",
132
+ p_project_id: input.projectId ?? null,
133
+ });
134
+ if (resposta.error) {
135
+ throw new Error(resposta.error.message ?? "Falha ao gerar chave MCP do workspace Sema.");
136
+ }
137
+ if (!resposta.data?.generated || !resposta.data.token) {
138
+ throw new Error("Geracao de chave MCP nao retornou token copiavel.");
139
+ }
140
+ return resposta.data;
141
+ }
142
+ export async function revogarChaveMcpWorkspace(client, input) {
143
+ if (!input.clientId) {
144
+ throw new Error("clientId e obrigatorio para revogar chave MCP.");
145
+ }
146
+ const resposta = await client.rpc(REVOKE_MCP_KEY_RPC, {
147
+ p_client_id: input.clientId,
148
+ });
149
+ if (resposta.error) {
150
+ throw new Error(resposta.error.message ?? "Falha ao revogar chave MCP do workspace Sema.");
151
+ }
152
+ if (!resposta.data?.revoked) {
153
+ throw new Error("Revogacao de chave MCP nao retornou confirmacao.");
154
+ }
155
+ return resposta.data;
156
+ }
157
+ //# sourceMappingURL=controleComercialSupabaseConta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controleComercialSupabaseConta.js","sourceRoot":"","sources":["../src/controleComercialSupabaseConta.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { ConfigurarProfileWorkspaceInput, ConfigurarProfileWorkspaceResult, EstimarCustoOperacaoSemaInput, SemaOperationCost, SemaProfileSettingsContext, SupabaseRpcClient } from "./controleComercialSupabaseTipos.js";
2
+ export declare function estimarCustoOperacaoSema(client: SupabaseRpcClient, input?: EstimarCustoOperacaoSemaInput): Promise<SemaOperationCost>;
3
+ export declare function consultarProfilesWorkspace(client: SupabaseRpcClient, projectId?: string | null): Promise<SemaProfileSettingsContext>;
4
+ export declare function configurarProfileWorkspace(client: SupabaseRpcClient, input: ConfigurarProfileWorkspaceInput): Promise<ConfigurarProfileWorkspaceResult>;
@@ -0,0 +1,55 @@
1
+ import { ESTIMATE_OPERATION_COST_RPC, GET_PROFILE_PREFERENCES_RPC, SET_PROFILE_PREFERENCE_RPC } from "./controleComercialSupabaseConstantes.js";
2
+ export async function estimarCustoOperacaoSema(client, input = {}) {
3
+ const operationCode = input.operationCode?.trim() || null;
4
+ const toolName = input.toolName?.trim() || null;
5
+ if (!operationCode && !toolName) {
6
+ throw new Error("operationCode ou toolName e obrigatorio para estimar custo em SEMAS.");
7
+ }
8
+ const resposta = await client.rpc(ESTIMATE_OPERATION_COST_RPC, {
9
+ p_operation_code: operationCode,
10
+ p_tool_name: toolName,
11
+ p_metadata: input.metadata ?? {},
12
+ });
13
+ if (resposta.error) {
14
+ throw new Error(resposta.error.message ?? "Falha ao estimar custo da operacao Sema.");
15
+ }
16
+ if (!resposta.data?.semas || resposta.data.semas <= 0) {
17
+ throw new Error("Estimativa de custo Sema nao retornou SEMAS validas.");
18
+ }
19
+ return resposta.data;
20
+ }
21
+ export async function consultarProfilesWorkspace(client, projectId) {
22
+ const resposta = await client.rpc(GET_PROFILE_PREFERENCES_RPC, {
23
+ p_project_id: projectId ?? null,
24
+ });
25
+ if (resposta.error) {
26
+ throw new Error(resposta.error.message ?? "Falha ao consultar profiles do workspace Sema.");
27
+ }
28
+ return resposta.data ?? { profiles: [], pipelines: [], costPolicy: { unit: "SEMA", costBasis: "operational_cost_100_percent", aiCostIncluded: false, heavyOperationMaxSemas: 300 } };
29
+ }
30
+ export async function configurarProfileWorkspace(client, input) {
31
+ if (!input.profileTool.trim()) {
32
+ throw new Error("profileTool e obrigatorio para configurar profile Sema.");
33
+ }
34
+ const scope = input.scope ?? (input.projectId ? "project" : "global");
35
+ if (scope !== "global" && scope !== "project") {
36
+ throw new Error("scope precisa ser global ou project.");
37
+ }
38
+ if (scope === "project" && !input.projectId) {
39
+ throw new Error("projectId e obrigatorio para configurar profile por projeto.");
40
+ }
41
+ const resposta = await client.rpc(SET_PROFILE_PREFERENCE_RPC, {
42
+ p_project_id: scope === "project" ? input.projectId : null,
43
+ p_profile_tool: input.profileTool,
44
+ p_enabled: input.enabled,
45
+ p_scope: scope,
46
+ });
47
+ if (resposta.error) {
48
+ throw new Error(resposta.error.message ?? "Falha ao configurar profile Sema.");
49
+ }
50
+ if (!resposta.data?.configured) {
51
+ throw new Error("Configuracao de profile nao retornou confirmacao.");
52
+ }
53
+ return resposta.data;
54
+ }
55
+ //# sourceMappingURL=controleComercialSupabaseProfiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controleComercialSupabaseProfiles.js","sourceRoot":"","sources":["../src/controleComercialSupabaseProfiles.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export type * from "./controleComercialSupabaseTiposBase.js";
2
+ export type * from "./controleComercialSupabaseTiposConta.js";
3
+ export type * from "./controleComercialSupabaseTiposAdmin.js";
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=controleComercialSupabaseTipos.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controleComercialSupabaseTipos.js","sourceRoot":"","sources":["../src/controleComercialSupabaseTipos.ts"],"names":[],"mappings":""}
@@ -0,0 +1,152 @@
1
+ export interface SemaAdminMetrics {
2
+ totalUsers: number;
3
+ activeUsers: number;
4
+ onlineUsers: number;
5
+ workspaces: number;
6
+ projects: number;
7
+ plans: number;
8
+ activeMcpKeys: number;
9
+ semasToday: number;
10
+ chargedToday: number;
11
+ callsToday: number;
12
+ queuedAuthActions: number;
13
+ }
14
+ export interface SemaAdminUser {
15
+ id: string;
16
+ email: string;
17
+ displayName?: string | null;
18
+ status: string;
19
+ emailVerified: boolean;
20
+ provider?: string | null;
21
+ locale?: string | null;
22
+ timezone?: string | null;
23
+ organizationId?: string | null;
24
+ organizationName?: string | null;
25
+ organizationRole?: string | null;
26
+ planId?: string | null;
27
+ planName?: string | null;
28
+ monthlySemas?: number | null;
29
+ usedSemas?: number | null;
30
+ reservedSemas?: number | null;
31
+ lastSeenAt?: string | null;
32
+ lastSignInAt?: string | null;
33
+ onlineNow: boolean;
34
+ infiniteSemas: boolean;
35
+ }
36
+ export interface SemaAdminPlan {
37
+ id: string;
38
+ name: string;
39
+ monthlySemas: number;
40
+ projectLimit: number;
41
+ userLimit: number;
42
+ retentionDays: number;
43
+ monthlyPriceUsd: number;
44
+ isPublic: boolean;
45
+ updatedAt?: string;
46
+ }
47
+ export interface SemaAdminSiteContent {
48
+ contentKey: string;
49
+ locale: "pt" | "en" | "es" | string;
50
+ title?: string | null;
51
+ subtitle?: string | null;
52
+ body?: string | null;
53
+ published: boolean;
54
+ updatedAt?: string | null;
55
+ updatedBy?: string | null;
56
+ }
57
+ export interface SemaAdminAuthAction {
58
+ id: string;
59
+ targetUserId: string;
60
+ targetEmail?: string | null;
61
+ actionType: "change_email" | "change_password" | "confirm_email" | "suspend_auth" | string;
62
+ status: "queued" | "executed" | "failed" | "canceled" | string;
63
+ safePayload?: Record<string, unknown>;
64
+ reason?: string;
65
+ requestedBy?: string | null;
66
+ requestedAt?: string;
67
+ executedAt?: string | null;
68
+ executionError?: string | null;
69
+ }
70
+ export interface SemaAdminAuditEvent {
71
+ id: string;
72
+ event: string;
73
+ resourceType?: string | null;
74
+ resourceId?: string | null;
75
+ actorUserId?: string | null;
76
+ metadata?: Record<string, unknown>;
77
+ createdAt?: string;
78
+ }
79
+ export interface SemaAdminConsole {
80
+ authorized: boolean;
81
+ metrics: SemaAdminMetrics;
82
+ users: SemaAdminUser[];
83
+ plans: SemaAdminPlan[];
84
+ siteContent: SemaAdminSiteContent[];
85
+ onlineUsers: SemaAdminUser[];
86
+ audit: SemaAdminAuditEvent[];
87
+ authActions: SemaAdminAuthAction[];
88
+ }
89
+ export interface ConsultarPainelAdminInput {
90
+ search?: string;
91
+ limit?: number;
92
+ }
93
+ export interface RegistrarPresencaAdminInput {
94
+ page?: string;
95
+ metadata?: Record<string, unknown>;
96
+ }
97
+ export interface RegistrarPresencaAdminResult {
98
+ registered: boolean;
99
+ onlineNow: number;
100
+ }
101
+ export interface SalvarPlanoAdminInput {
102
+ id: string;
103
+ name: string;
104
+ monthlySemas: number;
105
+ projectLimit: number;
106
+ userLimit: number;
107
+ retentionDays: number;
108
+ monthlyPriceUsd: number;
109
+ isPublic?: boolean;
110
+ }
111
+ export interface SalvarPlanoAdminResult {
112
+ saved: boolean;
113
+ auditId: string;
114
+ plan: SemaAdminPlan;
115
+ }
116
+ export interface AtualizarUsuarioAdminInput {
117
+ userId: string;
118
+ planId?: string | null;
119
+ status?: "active" | "disabled" | string | null;
120
+ infiniteSemas?: boolean | null;
121
+ adminNote?: string | null;
122
+ }
123
+ export interface AtualizarUsuarioAdminResult {
124
+ updated: boolean;
125
+ auditId: string;
126
+ user: SemaAdminUser;
127
+ }
128
+ export interface SalvarConteudoSiteAdminInput {
129
+ contentKey: string;
130
+ locale: "pt" | "en" | "es" | string;
131
+ title?: string | null;
132
+ subtitle?: string | null;
133
+ body?: string | null;
134
+ published?: boolean;
135
+ }
136
+ export interface SalvarConteudoSiteAdminResult {
137
+ saved: boolean;
138
+ auditId: string;
139
+ content: SemaAdminSiteContent;
140
+ }
141
+ export interface SolicitarAcaoAuthAdminInput {
142
+ targetUserId: string;
143
+ actionType: "change_email" | "change_password" | "confirm_email" | "suspend_auth" | string;
144
+ newEmail?: string | null;
145
+ reason: string;
146
+ }
147
+ export interface SolicitarAcaoAuthAdminResult {
148
+ requested: boolean;
149
+ auditId: string;
150
+ requiresPrivilegedFunction: boolean;
151
+ action: SemaAdminAuthAction;
152
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=controleComercialSupabaseTiposAdmin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controleComercialSupabaseTiposAdmin.js","sourceRoot":"","sources":["../src/controleComercialSupabaseTiposAdmin.ts"],"names":[],"mappings":""}