@orkastery/cli 0.5.3 → 0.5.6
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/adapters/claude-code/README.md +158 -0
- package/adapters/claude-code/mods/autoridade.json +56 -0
- package/adapters/claude-code/mods/ork-clima/.claude-plugin/plugin.json +14 -0
- package/adapters/claude-code/mods/ork-clima/hooks/contas.ts +283 -0
- package/adapters/claude-code/mods/ork-clima/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-clima/hooks/previsao.ts +393 -0
- package/adapters/claude-code/mods/ork-clima/hooks/register.ts +205 -0
- package/adapters/claude-code/mods/ork-clima/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-clima/types/index.d.ts +80 -0
- package/adapters/claude-code/mods/ork-freio/.claude-plugin/plugin.json +14 -0
- package/adapters/claude-code/mods/ork-freio/hooks/carga.ts +160 -0
- package/adapters/claude-code/mods/ork-freio/hooks/conferencia.ts +309 -0
- package/adapters/claude-code/mods/ork-freio/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-freio/hooks/lote.ts +270 -0
- package/adapters/claude-code/mods/ork-freio/hooks/register.ts +285 -0
- package/adapters/claude-code/mods/ork-freio/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-freio/types/index.d.ts +127 -0
- package/adapters/claude-code/mods/ork-mesa/.claude-plugin/plugin.json +14 -0
- package/adapters/claude-code/mods/ork-mesa/hooks/cartoes.tsx +246 -0
- package/adapters/claude-code/mods/ork-mesa/hooks/decidir.ts +110 -0
- package/adapters/claude-code/mods/ork-mesa/hooks/fila.ts +253 -0
- package/adapters/claude-code/mods/ork-mesa/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-mesa/hooks/obvia.ts +98 -0
- package/adapters/claude-code/mods/ork-mesa/hooks/register.tsx +493 -0
- package/adapters/claude-code/mods/ork-mesa/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-mesa/types/index.d.ts +131 -0
- package/adapters/claude-code/mods/ork-pista/.claude-plugin/plugin.json +14 -0
- package/adapters/claude-code/mods/ork-pista/hooks/acoes.ts +71 -0
- package/adapters/claude-code/mods/ork-pista/hooks/ci.ts +117 -0
- package/adapters/claude-code/mods/ork-pista/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-pista/hooks/pista.tsx +356 -0
- package/adapters/claude-code/mods/ork-pista/hooks/register.tsx +439 -0
- package/adapters/claude-code/mods/ork-pista/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-pista/types/index.d.ts +85 -0
- package/adapters/claude-code/mods/ork-ponte/.claude-plugin/plugin.json +13 -0
- package/adapters/claude-code/mods/ork-ponte/hooks/faixa.tsx +57 -0
- package/adapters/claude-code/mods/ork-ponte/hooks/guarda.ts +410 -0
- package/adapters/claude-code/mods/ork-ponte/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-ponte/hooks/mostrado.ts +55 -0
- package/adapters/claude-code/mods/ork-ponte/hooks/nucleo.ts +157 -0
- package/adapters/claude-code/mods/ork-ponte/hooks/papel.ts +42 -0
- package/adapters/claude-code/mods/ork-ponte/hooks/register.ts +331 -0
- package/adapters/claude-code/mods/ork-ponte/hooks/vigia.ts +76 -0
- package/adapters/claude-code/mods/ork-ponte/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-ponte/types/index.d.ts +178 -0
- package/adapters/claude-code/mods/ork-portao/.claude-plugin/plugin.json +14 -0
- package/adapters/claude-code/mods/ork-portao/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-portao/hooks/lease.ts +201 -0
- package/adapters/claude-code/mods/ork-portao/hooks/plano.ts +304 -0
- package/adapters/claude-code/mods/ork-portao/hooks/register.ts +339 -0
- package/adapters/claude-code/mods/ork-portao/hooks/verify.ts +152 -0
- package/adapters/claude-code/mods/ork-portao/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-portao/types/index.d.ts +60 -0
- package/adapters/claude-code/mods/ork-radar/.claude-plugin/plugin.json +14 -0
- package/adapters/claude-code/mods/ork-radar/hooks/colisao.ts +420 -0
- package/adapters/claude-code/mods/ork-radar/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-radar/hooks/mapa.tsx +322 -0
- package/adapters/claude-code/mods/ork-radar/hooks/register.tsx +470 -0
- package/adapters/claude-code/mods/ork-radar/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-radar/types/index.d.ts +72 -0
- package/adapters/claude-code/mods/ork-sentinela/.claude-plugin/plugin.json +14 -0
- package/adapters/claude-code/mods/ork-sentinela/hooks/alertas.ts +85 -0
- package/adapters/claude-code/mods/ork-sentinela/hooks/despacho.ts +156 -0
- package/adapters/claude-code/mods/ork-sentinela/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-sentinela/hooks/register.ts +511 -0
- package/adapters/claude-code/mods/ork-sentinela/hooks/vigia.ts +186 -0
- package/adapters/claude-code/mods/ork-sentinela/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-sentinela/types/index.d.ts +65 -0
- package/adapters/claude-code/mods/ork-torre/.claude-plugin/plugin.json +14 -0
- package/adapters/claude-code/mods/ork-torre/hooks/agenda.ts +60 -0
- package/adapters/claude-code/mods/ork-torre/hooks/detalhe.tsx +236 -0
- package/adapters/claude-code/mods/ork-torre/hooks/frases.ts +42 -0
- package/adapters/claude-code/mods/ork-torre/hooks/hooks.json +3 -0
- package/adapters/claude-code/mods/ork-torre/hooks/painel.tsx +344 -0
- package/adapters/claude-code/mods/ork-torre/hooks/rede.ts +97 -0
- package/adapters/claude-code/mods/ork-torre/hooks/register.tsx +437 -0
- package/adapters/claude-code/mods/ork-torre/orkastery-mod.json +5 -0
- package/adapters/claude-code/mods/ork-torre/types/index.d.ts +108 -0
- package/adapters/hermes/skills/orkastery-devmaster/SKILL.md +1 -1
- package/adapters/openclaw/README.md +2 -1
- package/adapters/openclaw/openclaw.plugin.json +1 -1
- package/adapters/openclaw/package.json +1 -1
- package/assets/docs-en/markdownlint-cli2.jsonc +22 -0
- package/assets/docs-en/padroes/documentacao-de-produto.md +135 -0
- package/assets/docs-en/padroes/roadmap-de-produto.md +100 -0
- package/assets/docs-en/produto/README.md +14 -0
- package/assets/docs-en/produto/_modelo-feature.md +62 -0
- package/assets/docs-en/roadmap/README.md +14 -0
- package/assets/docs-en/roadmap/_modelo-item.md +75 -0
- package/dist/adapters/claude-bg.js +77 -13
- package/dist/adapters/codex.js +10 -1
- package/dist/agents-md.js +24 -15
- package/dist/auditrun.js +17 -2
- package/dist/board.js +4 -3
- package/dist/branch-de-estado.js +23 -1
- package/dist/catalogo.js +33 -0
- package/dist/ci.js +13 -7
- package/dist/claims-conferir.js +342 -0
- package/dist/claims.js +3 -1
- package/dist/company-brain-client.js +36 -1
- package/dist/company-brain-journal.js +2 -1
- package/dist/company-brain-migration.js +36 -1
- package/dist/conducao-sentinela.js +388 -0
- package/dist/conducao-texto.js +12 -18
- package/dist/conducao.js +122 -30
- package/dist/conhecimento.js +490 -0
- package/dist/docs.js +22 -8
- package/dist/doctor-pulse-cron.js +182 -27
- package/dist/doctor-rede.js +18 -17
- package/dist/doctor.js +115 -111
- package/dist/entrega-pr.js +22 -21
- package/dist/escopo-escrita.js +10 -1
- package/dist/estado-thread.js +23 -1
- package/dist/experiencia-instalacao.js +45 -25
- package/dist/fabrica-batida.js +310 -0
- package/dist/fabrica-estado.js +38 -8
- package/dist/fabrica-publicar.js +3 -1
- package/dist/fila-pesada.js +444 -0
- package/dist/fix.js +3 -2
- package/dist/forja.js +1 -1
- package/dist/gates.js +3 -28
- package/dist/handoff.js +10 -6
- package/dist/hitl-local-receipt.js +2 -0
- package/dist/hitl-resumo.js +29 -3
- package/dist/hitl-tempo-parado.js +4 -4
- package/dist/hitl.js +29 -33
- package/dist/horario.js +14 -7
- package/dist/hosts.js +52 -1
- package/dist/impedimento.js +108 -14
- package/dist/index.js +623 -521
- package/dist/indice.js +7 -1
- package/dist/init.js +43 -47
- package/dist/instabilidade.js +144 -0
- package/dist/integracoes-locais.js +2 -0
- package/dist/intelligence-graph-cli.js +92 -21
- package/dist/intelligence-graph-contexto.js +56 -17
- package/dist/intelligence-graph-contract.js +2 -1
- package/dist/intelligence-graph-extract-md.js +56 -4
- package/dist/intelligence-graph-extract-ts.js +71 -3
- package/dist/intelligence-graph-query.js +66 -19
- package/dist/ledger.js +15 -1
- package/dist/liveness.js +6 -3
- package/dist/locale-ajuda.js +761 -0
- package/dist/locale-gerados.js +160 -0
- package/dist/locale-master.js +99 -0
- package/dist/locale-onboarding.js +92 -0
- package/dist/locale-phase.js +151 -0
- package/dist/locale-pulse.js +211 -0
- package/dist/locale-retry.js +385 -0
- package/dist/locale-roadmap.js +102 -0
- package/dist/locale-ship.js +494 -0
- package/dist/locale-thread.js +277 -0
- package/dist/locale-verify.js +125 -0
- package/dist/locale.js +714 -0
- package/dist/manifest.js +129 -3
- package/dist/maquina.js +23 -4
- package/dist/master-digest.js +6 -1
- package/dist/master-nota.js +4 -6
- package/dist/master.js +21 -24
- package/dist/mcp-artifacts.js +11 -2
- package/dist/mcp-git.js +23 -6
- package/dist/mcp-grafo.js +7 -4
- package/dist/mcp-server.js +8 -2
- package/dist/mcp-ship.js +3 -1
- package/dist/mcp-verify.js +6 -1
- package/dist/modos.js +3 -6
- package/dist/network-roadmap.js +5 -2
- package/dist/noctum-arco.js +911 -0
- package/dist/noctum-capacidade.js +141 -0
- package/dist/noctum-envelope.js +810 -0
- package/dist/noctum-execucao.js +304 -0
- package/dist/noctum-fila.js +280 -0
- package/dist/ocupacao.js +29 -2
- package/dist/onboarding.js +40 -21
- package/dist/orkmind.js +9 -2
- package/dist/orquestracao.js +13 -12
- package/dist/parado-no-condutor.js +34 -9
- package/dist/phase.js +94 -39
- package/dist/policies.js +4 -4
- package/dist/portfolio.js +4 -2
- package/dist/postura-local.js +234 -0
- package/dist/preflight.js +11 -10
- package/dist/procedencia.js +225 -0
- package/dist/projeto-alvo.js +127 -4
- package/dist/prompts.js +6 -2
- package/dist/pulse-delivery.js +13 -2
- package/dist/pulse.js +52 -19
- package/dist/ratelimit.js +4 -2
- package/dist/redacao-saida.js +63 -0
- package/dist/rede-status.js +3 -2
- package/dist/retry.js +232 -148
- package/dist/roadmap-reservas.js +20 -3
- package/dist/roadmap-status.js +129 -33
- package/dist/runtime-context.js +181 -3
- package/dist/runtimes.js +2 -1
- package/dist/session-events.js +7 -3
- package/dist/session-watcher-claude.js +7 -1
- package/dist/session-watcher.js +185 -33
- package/dist/sessoes-contas.js +1 -1
- package/dist/ship-publicar.js +800 -0
- package/dist/ship.js +84 -81
- package/dist/steal.js +77 -0
- package/dist/thread-close.js +3 -2
- package/dist/thread.js +153 -82
- package/dist/util.js +8 -1
- package/dist/verify.js +141 -52
- package/dist/vida-da-thread.js +254 -0
- package/dist/worktree-local.js +165 -0
- package/dist/worktree.js +20 -0
- package/dist/yaml.js +27 -8
- package/package.json +1 -1
- package/schemas/code-artifact-graph.v1.schema.json +2 -1
package/dist/mcp-ship.js
CHANGED
|
@@ -353,7 +353,9 @@ function executar(f, p) {
|
|
|
353
353
|
sandbox.fechar();
|
|
354
354
|
}
|
|
355
355
|
};
|
|
356
|
+
// RM-058 N2 (B1 do CHECK): a fila pesada espera so o que cabe no prazo do worker, para o finally soltar as leases.
|
|
356
357
|
return (0, ship_1.ship)(c, t.id, { de, para, remoto: 'origin', executorVerify: executor, ttlLeaseMs: PRAZO + RESERVA, retomarLeaseVencido: false,
|
|
358
|
+
esperarFilaPesadaMs: Math.max(0, Math.min(20000, deadline - Date.now() - RESERVA)),
|
|
357
359
|
revalidarGit: (etapa, dir) => { if (!leasesIntactas())
|
|
358
360
|
erro('lease.changed'); guard(etapa, dir); } });
|
|
359
361
|
}
|
|
@@ -433,6 +435,6 @@ if (require.main === module && process.argv[2] === '--worker') {
|
|
|
433
435
|
}
|
|
434
436
|
catch (e) {
|
|
435
437
|
const m = e.message;
|
|
436
|
-
process.stdout.write(JSON.stringify({ ok: false, erro: m.startsWith('mcp.') ? m : 'mcp.ship.operation.failed: conferir estado antes de repetir' }));
|
|
438
|
+
process.stdout.write(JSON.stringify({ ok: false, erro: m.startsWith('mcp.') || m.startsWith('fila-pesada.') ? m : 'mcp.ship.operation.failed: conferir estado antes de repetir' }));
|
|
437
439
|
}
|
|
438
440
|
}
|
package/dist/mcp-verify.js
CHANGED
|
@@ -33,6 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.ESPERA_DA_FILA_PESADA_MCP_MS = void 0;
|
|
36
37
|
exports.verificarMcp = verificarMcp;
|
|
37
38
|
/** Operação estruturada: argumentos só identificam a thread; execução sempre confinada. */
|
|
38
39
|
const fs = __importStar(require("node:fs"));
|
|
@@ -46,6 +47,8 @@ const mcp_artifacts_1 = require("./mcp-artifacts");
|
|
|
46
47
|
const verify_1 = require("./verify");
|
|
47
48
|
const verify_sandbox_1 = require("./verify-sandbox");
|
|
48
49
|
const worktree_1 = require("./worktree");
|
|
50
|
+
/** RM-058 N2 (D10 da ork-rm058n2): a espera maxima do MCP pela fila de recursos pesados, dentro do prazo total. */
|
|
51
|
+
exports.ESPERA_DA_FILA_PESADA_MCP_MS = 20_000;
|
|
49
52
|
const PRAZO_TOTAL_MS = 180_000;
|
|
50
53
|
const RESERVA_MS = 10_000;
|
|
51
54
|
// I-37 (D4): o teto por comando cabe o `test:ci` medido (196 s); quem limita e o prazo total.
|
|
@@ -154,7 +157,9 @@ function verificarMcp(raizEntrada, threadId, conducao = {}) {
|
|
|
154
157
|
}
|
|
155
158
|
};
|
|
156
159
|
// I-36 (T8): o MESMO lease de execucao do CLI; a sessao filha reentra pela identidade do despacho.
|
|
157
|
-
|
|
160
|
+
// RM-058 N2 (D10): o MCP tem prazo total curto; espera a fila pesada no maximo ESPERA_DA_FILA_PESADA_MCP_MS.
|
|
161
|
+
const r = (0, verify_1.verificar)(carregado, threadId, { executor, operacao: 'mcp.verify',
|
|
162
|
+
conducao: { ...conducao, filaPesada: { esperarMs: Math.min(exports.ESPERA_DA_FILA_PESADA_MCP_MS, conducao.filaPesada?.esperarMs ?? exports.ESPERA_DA_FILA_PESADA_MCP_MS) } } });
|
|
158
163
|
const execucoes = r.claims.flatMap(c => c.execucoes).concat(r.comandos);
|
|
159
164
|
return {
|
|
160
165
|
threadId, ok: r.ok, commit: r.commit, motivos: r.motivos,
|
package/dist/modos.js
CHANGED
|
@@ -24,6 +24,7 @@ exports.blocoDaFase = blocoDaFase;
|
|
|
24
24
|
exports.fasePausa = fasePausa;
|
|
25
25
|
exports.tabelaDeModos = tabelaDeModos;
|
|
26
26
|
const types_1 = require("./types");
|
|
27
|
+
const locale_1 = require("./locale");
|
|
27
28
|
/** Invariantes que valem em TODOS os modos, inclusive `#Auto`. */
|
|
28
29
|
exports.INVARIANTES = [
|
|
29
30
|
'Claims, verify e policies rodam identicos em todos os modos.',
|
|
@@ -190,10 +191,7 @@ exports.MOTIVO_MODO_APOSENTADO = 'modo.aposentado';
|
|
|
190
191
|
* O texto e DERIVADO de `ORDEM_DOS_MODOS` (ver `substitutosVivos`), nunca escrito a mao.
|
|
191
192
|
*/
|
|
192
193
|
function recusaDeModoAposentado(modo) {
|
|
193
|
-
|
|
194
|
-
return `${exports.MOTIVO_MODO_APOSENTADO}: ${tag} foi aposentado e nao abre trabalho novo. `
|
|
195
|
-
+ `Use ${substitutosVivos().join(' ou ')}. `
|
|
196
|
-
+ `Thread ja gravada em ${tag} continua abrindo normalmente.`;
|
|
194
|
+
return (0, locale_1.msg)().thread.modoAposentado(exports.MOTIVO_MODO_APOSENTADO, exports.MODOS[modo].tag, substitutosVivos());
|
|
197
195
|
}
|
|
198
196
|
/**
|
|
199
197
|
* O portao de ESCRITA de modo, com recusa tipada em vez de silencio.
|
|
@@ -209,8 +207,7 @@ function exigirModoVivo(entrada) {
|
|
|
209
207
|
const cru = (entrada ?? '').trim().replace(/^--?modo[= ]/i, '').replace(/^#/, '').toLowerCase();
|
|
210
208
|
if (modoAposentado(cru))
|
|
211
209
|
throw new Error(recusaDeModoAposentado(cru));
|
|
212
|
-
throw new Error(
|
|
213
|
-
+ `Use um de: ${exports.ORDEM_DOS_MODOS.map((m) => exports.MODOS[m].tag).join(', ')}.`);
|
|
210
|
+
throw new Error((0, locale_1.msg)().thread.modoDesconhecido(entrada ?? '', exports.ORDEM_DOS_MODOS.map((m) => exports.MODOS[m].tag).join(', ')));
|
|
214
211
|
}
|
|
215
212
|
/**
|
|
216
213
|
* Parseia a #TAG de modo de conducao.
|
package/dist/network-roadmap.js
CHANGED
|
@@ -89,6 +89,7 @@ const rede_projetos_1 = require("./rede-projetos");
|
|
|
89
89
|
const rede_status_1 = require("./rede-status");
|
|
90
90
|
const roadmap_reservas_1 = require("./roadmap-reservas");
|
|
91
91
|
const roadmap_status_1 = require("./roadmap-status");
|
|
92
|
+
const vida_da_thread_1 = require("./vida-da-thread");
|
|
92
93
|
const thread_1 = require("./thread");
|
|
93
94
|
const versao_1 = require("./versao");
|
|
94
95
|
const yaml_1 = require("./yaml");
|
|
@@ -408,12 +409,14 @@ function retratoLegivel(v) {
|
|
|
408
409
|
textoOuNulo(t.roadmap) && textoOuNulo(t.pergunta) && textoOuNulo(t.entregue) && textoOuNulo(t.paradaDesde) &&
|
|
409
410
|
textoOuNulo(t.runtime) && textoOuNulo(t.modelo) && textoOuNulo(t.esforco));
|
|
410
411
|
}
|
|
411
|
-
function fatosDoRetrato(m, entregues, itemDaReserva) {
|
|
412
|
+
function fatosDoRetrato(m, entregues, itemDaReserva, quando) {
|
|
412
413
|
return m.threads.map((t) => ({
|
|
413
414
|
id: t.id, roadmap: t.roadmap ?? itemDaReserva.get(t.id) ?? null, aberta: t.status !== 'fechada', fase: t.fase,
|
|
414
415
|
entregueHoje: () => entregues.has(t.id),
|
|
415
416
|
espera: () => t.esperaVoce ? { thread: t.id, pergunta: pontuar(t.pergunta ?? 'o veredito da pausa'), maquina: m.maquina } : undefined,
|
|
416
417
|
maquina: m.maquina,
|
|
418
|
+
// RM-063 (F2): a sessao que a outra maquina verificou ao publicar; retrato sem o campo, ou velho, nao diz "sigo".
|
|
419
|
+
vida: () => (0, vida_da_thread_1.vidaDoRetrato)(t.sessao, m.publicadoEm, quando),
|
|
417
420
|
}));
|
|
418
421
|
}
|
|
419
422
|
function fatosDaMaquinaLocal(raiz, quando, fuso, maquina, entregues, itemDaReserva) {
|
|
@@ -458,7 +461,7 @@ function montarProjeto(p, d, ctx, fontes, lacunas) {
|
|
|
458
461
|
fatosDaMaquinaLocal(d.local.raiz, ctx.quando, ctx.fuso, d.local.retrato.maquina, entregues, itemDaReserva).forEach(somar);
|
|
459
462
|
for (const m of d.retratos ?? [])
|
|
460
463
|
if (!d.local || m.maquina !== d.local.retrato.maquina)
|
|
461
|
-
fatosDoRetrato(m, entregues, itemDaReserva).forEach(somar);
|
|
464
|
+
fatosDoRetrato(m, entregues, itemDaReserva, ctx.quando).forEach(somar);
|
|
462
465
|
// Entregue hoje e ja fechada: nao esta em retrato nenhum, mas o merge na base e o fato do dia.
|
|
463
466
|
for (const id of entregues)
|
|
464
467
|
somar({ id, roadmap: itemDaReserva.get(id) ?? null, aberta: false, fase: 'SHIP', entregueHoje: () => true,
|