engine-kit 0.0.0-stage → 0.2.0-bootstrap.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CONTRATO-MOTOR.md +194 -0
- package/LICENSE +21 -0
- package/README.md +305 -2
- package/consumers/mcp-gateway.mjs +192 -0
- package/consumers/neural-link.mjs +66 -0
- package/kit/app-release.mjs +94 -0
- package/kit/budget.mjs +112 -0
- package/kit/cli.mjs +48 -0
- package/kit/doctor.mjs +122 -0
- package/kit/ensure.mjs +82 -0
- package/kit/gen-key.mjs +52 -0
- package/kit/index.mjs +54 -0
- package/kit/keystore.mjs +29 -0
- package/kit/lifecycle.mjs +160 -0
- package/kit/provision.mjs +379 -0
- package/kit/publish-base.ps1 +163 -0
- package/kit/resolve.mjs +119 -0
- package/kit/sign.mjs +67 -0
- package/kit/signature.mjs +106 -0
- package/kit/trust.mjs +72 -0
- package/kit/update-manifest.mjs +109 -0
- package/kit/update.mjs +68 -0
- package/kit/verify-release.mjs +94 -0
- package/manifest.json +182 -0
- package/package.json +50 -4
package/manifest.json
ADDED
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "./schema.json",
|
|
3
|
+
"registry": "engine-registry",
|
|
4
|
+
"version": 1,
|
|
5
|
+
"owner": {
|
|
6
|
+
"name": "Allan Santos",
|
|
7
|
+
"url": "https://github.com/AllanSantos-DV"
|
|
8
|
+
},
|
|
9
|
+
"description": "Catálogo público de motores compartilhados e aplicativos distribuídos. engine-kit consome apenas engines; apps declara versões e downloads sem instalar aplicativos automaticamente.",
|
|
10
|
+
"apps": [],
|
|
11
|
+
"engines": [
|
|
12
|
+
{
|
|
13
|
+
"name": "embed-house",
|
|
14
|
+
"version": "1.0.5",
|
|
15
|
+
"kind": "daemon",
|
|
16
|
+
"summary": "Casa de embeddings compartilhada (MiniLM-L6-v2, 384-dim): carrega o modelo UMA vez e serve vetores a N consumidores via 127.0.0.1, em vez de cada sessão carregar ~147 MB.",
|
|
17
|
+
"home": "~/.embed-house",
|
|
18
|
+
"install": {
|
|
19
|
+
"type": "github-release",
|
|
20
|
+
"repo": "AllanSantos-DV/engine-registry",
|
|
21
|
+
"tag": "embed-house-v{version}",
|
|
22
|
+
"asset": "embed-house-{platform}-{arch}.tgz",
|
|
23
|
+
"checksum": "{asset}.sha256",
|
|
24
|
+
"extractTo": "bin",
|
|
25
|
+
"entry": "bin/server.mjs",
|
|
26
|
+
"publicKey": "16cf4b3d73df3afca030d1281bae930897e290828df80e7354bc4dd527713699",
|
|
27
|
+
"signatureAlgorithm": "ed25519-sha256-raw",
|
|
28
|
+
"signatureRequired": true
|
|
29
|
+
},
|
|
30
|
+
"runtime": {
|
|
31
|
+
"transport": "http",
|
|
32
|
+
"runtimeFile": "run/runtime.json",
|
|
33
|
+
"healthPath": "/health",
|
|
34
|
+
"shutdownPath": "/shutdown",
|
|
35
|
+
"heartbeatMs": 30000,
|
|
36
|
+
"shutdownTokenField": "shutdownToken",
|
|
37
|
+
"shutdownTokenHeader": "x-shutdown-token"
|
|
38
|
+
},
|
|
39
|
+
"platforms": [
|
|
40
|
+
"win32-x64",
|
|
41
|
+
"linux-x64",
|
|
42
|
+
"darwin-arm64"
|
|
43
|
+
]
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"name": "vox-engine",
|
|
47
|
+
"version": "0.28.7",
|
|
48
|
+
"kind": "daemon",
|
|
49
|
+
"status": "self-managed",
|
|
50
|
+
"summary": "Motor de voz (STT/TTS) compartilhado: transcreve e sintetiza para N consumidores a partir de uma única instância, com auto-unload quando ocioso.",
|
|
51
|
+
"home": "~/.vox-engine",
|
|
52
|
+
"install": {
|
|
53
|
+
"type": "github-release",
|
|
54
|
+
"repo": "AllanSantos-DV/engine-registry",
|
|
55
|
+
"tag": "vox-engine-v{version}",
|
|
56
|
+
"asset": "vox-engine-installer.zip",
|
|
57
|
+
"checksum": "{asset}.sha256",
|
|
58
|
+
"signature": "{asset}.sig",
|
|
59
|
+
"publicKey": "293263e73c4ba424a9ef3432d1ce55740fc0a68478f20235ca109c074ec83f52",
|
|
60
|
+
"signatureAlgorithm": "ed25519-sha256-raw",
|
|
61
|
+
"signatureRequired": true,
|
|
62
|
+
"extractTo": "bin",
|
|
63
|
+
"entry": "bin/vox_engine",
|
|
64
|
+
"sdkFlats": {
|
|
65
|
+
"asset": "vox-sdk-flats.zip",
|
|
66
|
+
"checksum": "{asset}.sha256"
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
"runtime": {
|
|
70
|
+
"transport": "pipe",
|
|
71
|
+
"pipeName": "vox"
|
|
72
|
+
},
|
|
73
|
+
"notes": "self-managed: é um app Python com instalador e updater PRÓPRIOS (src/vox_engine/core/updater.py) — o engine-kit NÃO o provisiona; esta entrada é o descritor de registro (onde está a release, qual a chave, qual a versão). A chave pública é a MESMA de sempre: o instalador continua assinado pelo tools/sign_release.py em Python e foi verificado pelo kit em Node contra a release real, então a migração não exigiu reassinar nada. `sdkFlats` é o canônico público do gate anti-drift dos consumidores — publicar a release sem ele quebra o publish deles.",
|
|
74
|
+
"platforms": [
|
|
75
|
+
"win32-x64"
|
|
76
|
+
]
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"name": "mcp-gateway",
|
|
80
|
+
"version": "0.15.0",
|
|
81
|
+
"kind": "daemon",
|
|
82
|
+
"summary": "Agregador MCP: conecta UMA vez em cada servidor MCP e reexpõe todas as tools num endpoint Streamable HTTP único, com auth bearer, namespacing condicional, resiliência e auditoria. Mata a multiplicação de processos por sessão.",
|
|
83
|
+
"home": "~/.mcp-gateway",
|
|
84
|
+
"install": {
|
|
85
|
+
"type": "github-release",
|
|
86
|
+
"repo": "AllanSantos-DV/engine-registry",
|
|
87
|
+
"tag": "mcp-gateway-v{version}",
|
|
88
|
+
"asset": "mcp-gateway.tgz",
|
|
89
|
+
"checksum": "{asset}.sha256",
|
|
90
|
+
"extractTo": "bin",
|
|
91
|
+
"entry": "bin/mcp-gateway.mjs",
|
|
92
|
+
"agentInstructions": "docs/AGENT-INSTRUCTIONS.md",
|
|
93
|
+
"publicKey": "339557f0f3f26319e87ce7850a8eb49cd0aba2f6d164260bac10c33b75e246d8",
|
|
94
|
+
"signatureAlgorithm": "ed25519-sha256-raw",
|
|
95
|
+
"signatureRequired": true
|
|
96
|
+
},
|
|
97
|
+
"runtime": {
|
|
98
|
+
"transport": "http",
|
|
99
|
+
"runtimeFile": "runtime.json",
|
|
100
|
+
"healthPath": "/health",
|
|
101
|
+
"defaultPort": 7337,
|
|
102
|
+
"authFile": "auth-token",
|
|
103
|
+
"heartbeatMs": 30000
|
|
104
|
+
},
|
|
105
|
+
"platforms": [
|
|
106
|
+
"any"
|
|
107
|
+
],
|
|
108
|
+
"notes": "Artefato cross-platform (bundle JS puro, sem binario nativo) — um unico asset serve todas as plataformas. Codigo-fonte no repo proprio AllanSantos-DV/mcp-gateway (privado); a release publica mora aqui, na casa dos motores."
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"name": "neural-link",
|
|
112
|
+
"version": "0.7.15",
|
|
113
|
+
"kind": "cli",
|
|
114
|
+
"summary": "Dispatcher adaptativo de hooks para agentes LLM: recebe o evento por stdin, pontua e executa os handlers registrados, e devolve UMA decisão composta. Não é daemon — é invocado a cada evento de hook, por qualquer host (Copilot CLI, VS Code, Claude Code).",
|
|
115
|
+
"home": "~/.copilot/neural-link",
|
|
116
|
+
"install": {
|
|
117
|
+
"type": "github-release",
|
|
118
|
+
"repo": "AllanSantos-DV/engine-registry",
|
|
119
|
+
"tag": "neural-link-v{version}",
|
|
120
|
+
"asset": "neural-link-any.tgz",
|
|
121
|
+
"checksum": "{asset}.sha256",
|
|
122
|
+
"extractTo": "runtimes/neural-link",
|
|
123
|
+
"entry": "runtimes/neural-link/src/index.js",
|
|
124
|
+
"publicKey": "c51ebf5169454163a8c0238d07bbaf62ea5e32926a639b04b8ea57ce2df4ae26",
|
|
125
|
+
"signatureAlgorithm": "ed25519-sha256-raw",
|
|
126
|
+
"signatureRequired": true
|
|
127
|
+
},
|
|
128
|
+
"platforms": [
|
|
129
|
+
"any"
|
|
130
|
+
],
|
|
131
|
+
"notes": "kind=cli: o lifecycle entrega o binário e NÃO sobe processo. `extractTo` é aninhado de propósito — o home guarda ESTADO que precisa sobreviver ao update (weights/, logs/, active.json), e só `runtimes/<motor>` é trocado. O home fica sob `~/.copilot/` por compatibilidade com os hooks já reescritos em produção; desacoplar do host é o passo do ciclo em que o Skill Manager passar a provisionar pelo kit. Contrato de invocação: CONTRATO-DISPATCHER.md no repo público neural-link-runtime."
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"name": "vxk",
|
|
135
|
+
"version": "0.18.0",
|
|
136
|
+
"kind": "cli",
|
|
137
|
+
"summary": "VXK — explicações visuais animadas e narradas como servidor MCP (stdio): qualquer cliente MCP (Claude Code, Codex, Copilot) compõe a biblioteca de componentes, ícones e o controle único de reprodução e recebe UM HTML autocontido e offline. A narração é assada pelo motor vox-engine.",
|
|
138
|
+
"home": "~/.vxk",
|
|
139
|
+
"install": {
|
|
140
|
+
"type": "github-release",
|
|
141
|
+
"repo": "AllanSantos-DV/engine-registry",
|
|
142
|
+
"tag": "vxk-v{version}",
|
|
143
|
+
"asset": "vxk.tgz",
|
|
144
|
+
"checksum": "{asset}.sha256",
|
|
145
|
+
"extractTo": "bin",
|
|
146
|
+
"entry": "bin/vxk-mcp.mjs",
|
|
147
|
+
"publicKey": "50fab11fdd668f14c1e7d4c5379959f8a168fd9283bf05c0ac9cd7c8f6aaa299",
|
|
148
|
+
"signatureAlgorithm": "ed25519-sha256-raw",
|
|
149
|
+
"signatureRequired": true
|
|
150
|
+
},
|
|
151
|
+
"platforms": [
|
|
152
|
+
"any"
|
|
153
|
+
],
|
|
154
|
+
"notes": "kind=cli: o host MCP sobe `node ~/.vxk/bin/vxk-mcp.mjs` por stdio (direto ou como backend do mcp-gateway); o build é job assíncrono porque o gateway corta chamadas em 30 s. O motor publica ~/.vxk/cli.json (mcp, builder, version) a cada arranque. Traz também o builder CLI (bin/build-artifact.mjs). Narração requer o vox-engine (Windows); sem ele o build falha alto em vez de gerar mudo."
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"name": "cerne",
|
|
158
|
+
"version": "0.4.10",
|
|
159
|
+
"kind": "daemon",
|
|
160
|
+
"status": "self-managed",
|
|
161
|
+
"summary": "Leitura ativa de vídeo por link ou arquivo: captura, seleção de quadros, transcrição, tradução e consolidação em memória, exposta via servidor MCP por um único daemon local (CerneEngine) compartilhado entre os consumidores.",
|
|
162
|
+
"home": "~/AppData/Local/Programs/Cerne",
|
|
163
|
+
"install": {
|
|
164
|
+
"type": "github-release",
|
|
165
|
+
"repo": "AllanSantos-DV/engine-registry",
|
|
166
|
+
"tag": "cerne-v{version}",
|
|
167
|
+
"asset": "cerne-setup-v{version}.exe",
|
|
168
|
+
"checksum": "{asset}.sha256",
|
|
169
|
+
"signature": "{asset}.sig",
|
|
170
|
+
"publicKey": "f4c1460df98fd6c9ea044df614e4a1a0cf5ad18e9320f9595aae36d8e270ec5c",
|
|
171
|
+
"signatureAlgorithm": "ed25519-sha256-raw",
|
|
172
|
+
"signatureRequired": true,
|
|
173
|
+
"extractTo": ".",
|
|
174
|
+
"entry": "cerne-gui.exe"
|
|
175
|
+
},
|
|
176
|
+
"notes": "self-managed: o asset é o instalador Inno Setup por usuário (sem admin) e o Cerne cuida do próprio upgrade — o engine-kit NÃO o provisiona; esta entrada é o descritor de registro (release, chave, versão). `home` é a pasta de INSTALAÇÃO ({autopf} sem privilégio = %LOCALAPPDATA%\\Programs\\Cerne), onde mora `entry`. Os DADOS (catálogo, cofre, mídia, backups) ficam em outro lugar, %LOCALAPPDATA%\\Cerne, e a descoberta do daemon vivo é %LOCALAPPDATA%\\Cerne\\run\\engine.json — por isso não há bloco `runtime` aqui: o runtimeFile do kit é relativo ao home e apontaria para a pasta errada. Código-fonte no repo AllanSantos-DV/cerne; a release pública mora aqui.",
|
|
177
|
+
"platforms": [
|
|
178
|
+
"win32-x64"
|
|
179
|
+
]
|
|
180
|
+
}
|
|
181
|
+
]
|
|
182
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,52 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "engine-kit",
|
|
3
|
-
"version": "0.0.0
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "0.2.0-bootstrap.0",
|
|
4
|
+
"description": "Cliente das dependências compartilhadas (motores) do engine-registry: resolve, provisiona com SHA256 e assinatura Ed25519 fail-closed, e mantém o motor vivo — uma instalação por máquina, N consumidores.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"engine-kit": "kit/cli.mjs"
|
|
8
|
+
},
|
|
9
|
+
"exports": {
|
|
10
|
+
".": "./kit/index.mjs",
|
|
11
|
+
"./kit/*": "./kit/*",
|
|
12
|
+
"./consumers/*": "./consumers/*",
|
|
13
|
+
"./manifest.json": "./manifest.json"
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"kit",
|
|
17
|
+
"consumers",
|
|
18
|
+
"manifest.json",
|
|
19
|
+
"README.md",
|
|
20
|
+
"CONTRATO-MOTOR.md",
|
|
21
|
+
"LICENSE"
|
|
22
|
+
],
|
|
23
|
+
"engines": {
|
|
24
|
+
"node": ">=18"
|
|
25
|
+
},
|
|
26
|
+
"scripts": {
|
|
27
|
+
"test": "node kit/budget.mjs && node tests/smoke.mjs && node tests/test-edge.mjs && node tests/test-signature.mjs && node tests/test-ensure.mjs && node tests/test-update.mjs && node tests/test-trust.mjs && node tests/test-tar.mjs && node tests/test-apps.mjs && node tests/test-resolve-cache.mjs && node tests/test-doctor-exit.mjs && node tests/test-mcp-gateway-token.mjs && node tests/test-gateway-provision.mjs && node tests/test-neural-link-alignment.mjs && node tests/test-site.mjs && node tests/test-pages-branch.mjs && node tests/test-readme-versions.mjs",
|
|
28
|
+
"test:network": "node tests/smoke.mjs --network && node tests/test-signature.mjs --network",
|
|
29
|
+
"test:e2e": "node tests/e2e-install.mjs",
|
|
30
|
+
"gen-key": "node kit/gen-key.mjs",
|
|
31
|
+
"verify-release": "node kit/verify-release.mjs",
|
|
32
|
+
"budget": "node kit/budget.mjs"
|
|
33
|
+
},
|
|
34
|
+
"keywords": [
|
|
35
|
+
"engine",
|
|
36
|
+
"daemon",
|
|
37
|
+
"registry",
|
|
38
|
+
"mcp",
|
|
39
|
+
"embeddings",
|
|
40
|
+
"shared-infra"
|
|
41
|
+
],
|
|
42
|
+
"author": {
|
|
43
|
+
"name": "Allan Santos",
|
|
44
|
+
"url": "https://github.com/AllanSantos-DV"
|
|
45
|
+
},
|
|
46
|
+
"repository": {
|
|
47
|
+
"type": "git",
|
|
48
|
+
"url": "https://github.com/AllanSantos-DV/engine-registry.git"
|
|
49
|
+
},
|
|
50
|
+
"license": "MIT",
|
|
51
|
+
"private": false
|
|
52
|
+
}
|