@orkastery/cli 0.5.1 → 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/agents/ork-master.md +2 -0
- package/adapters/claude-code/commands/master.md +8 -0
- package/adapters/claude-code/commands/ork.md +9 -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/codex/skills/ork/SKILL.md +18 -3
- package/adapters/hermes/README.md +1 -0
- package/adapters/hermes/bin/ork-network-status.sh +10 -0
- package/adapters/hermes/hermes.plugin.json +1 -0
- package/adapters/hermes/hitl-ingress/__init__.py +2 -2
- package/adapters/hermes/skills/orkastery-devmaster/SKILL.md +7 -6
- package/adapters/openclaw/README.md +26 -5
- package/adapters/openclaw/dist/hitl-ingress.js +2 -2
- package/adapters/openclaw/dist/index.js +46 -11
- package/adapters/openclaw/openclaw.plugin.json +5 -1
- package/adapters/openclaw/package.json +2 -2
- package/adapters/openclaw/src/hitl-ingress.ts +2 -2
- package/adapters/openclaw/src/index.ts +49 -11
- 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/assets/orkmind_bridge.py +117 -9
- package/dist/adapters/claude-bg.js +116 -18
- package/dist/adapters/codex.js +14 -4
- package/dist/agents-md.js +24 -14
- package/dist/auditrun.js +22 -3
- package/dist/board.js +20 -17
- package/dist/branch-de-estado.js +88 -10
- package/dist/busca-semantica.js +52 -12
- package/dist/canarios-rm057.js +149 -0
- package/dist/canarios.js +2 -0
- package/dist/catalogo.js +33 -0
- package/dist/ci.js +21 -8
- package/dist/claims-conferir.js +342 -0
- package/dist/claims.js +41 -1
- package/dist/company-brain-client.js +36 -1
- package/dist/company-brain-context.js +158 -22
- 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 +70 -17
- package/dist/doctor-pulse-cron.js +349 -0
- package/dist/doctor-rede.js +150 -0
- package/dist/doctor.js +195 -111
- package/dist/entrega-pr.js +42 -29
- package/dist/escopo-escrita.js +10 -1
- package/dist/esgotamentos.js +181 -0
- package/dist/estado-thread.js +23 -1
- package/dist/experiencia-instalacao.js +45 -25
- package/dist/experiencia.js +12 -2
- package/dist/fabrica-batida.js +310 -0
- package/dist/fabrica-estado.js +52 -14
- package/dist/fabrica-publicar.js +9 -1
- package/dist/fechamento.js +20 -66
- package/dist/fila-pesada.js +444 -0
- package/dist/fix.js +3 -2
- package/dist/forja.js +31 -7
- package/dist/gates.js +3 -24
- package/dist/handoff.js +10 -6
- package/dist/hitl-contract.js +59 -4
- package/dist/hitl-curto.js +11 -6
- package/dist/hitl-gates.js +5 -0
- package/dist/hitl-local-receipt.js +2 -0
- package/dist/hitl-lote.js +5 -2
- package/dist/hitl-resumo.js +38 -3
- package/dist/hitl-tempo-parado.js +201 -0
- package/dist/hitl-texto-livre.js +5 -5
- package/dist/hitl.js +29 -33
- package/dist/horario.js +41 -7
- package/dist/hosts.js +104 -11
- package/dist/impedimento.js +299 -0
- package/dist/index.js +961 -542
- package/dist/indice-vetorial.js +87 -10
- package/dist/indice.js +9 -1
- package/dist/init.js +56 -43
- package/dist/instabilidade.js +144 -0
- package/dist/integracoes-locais.js +4 -0
- package/dist/intelligence-graph-cli.js +170 -16
- package/dist/intelligence-graph-contexto.js +254 -0
- 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-parsers.js +6 -4
- package/dist/intelligence-graph-query.js +66 -19
- package/dist/leases.js +664 -87
- package/dist/ledger-stats.js +15 -1
- package/dist/ledger.js +18 -1
- package/dist/licoes.js +1 -0
- 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/maestro-runtime.js +4 -1
- package/dist/manifest.js +149 -4
- package/dist/maquina.js +23 -4
- package/dist/master-digest.js +6 -1
- package/dist/master-nota.js +18 -11
- package/dist/master.js +145 -31
- package/dist/mcp-artifacts.js +43 -3
- package/dist/mcp-git.js +42 -8
- package/dist/mcp-grafo-worker.js +5 -3
- package/dist/mcp-grafo.js +55 -6
- package/dist/mcp-server.js +22 -3
- package/dist/mcp-ship.js +3 -1
- package/dist/mcp-verify.js +6 -1
- package/dist/memoria.js +48 -6
- package/dist/modos.js +3 -6
- package/dist/network-roadmap.js +196 -18
- 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 +40 -5
- package/dist/onboarding.js +40 -21
- package/dist/orkmind.js +99 -7
- package/dist/orquestracao.js +24 -21
- package/dist/parado-no-condutor.js +219 -38
- package/dist/phase.js +160 -52
- package/dist/policies.js +56 -5
- package/dist/portfolio.js +8 -3
- package/dist/postura-local.js +234 -0
- package/dist/preflight.js +11 -10
- package/dist/procedencia.js +225 -0
- package/dist/projeto-alvo.js +132 -5
- package/dist/prompts.js +40 -1
- package/dist/prova-ativacao.js +75 -6
- package/dist/pulse-delivery.js +47 -4
- package/dist/pulse.js +98 -19
- package/dist/ratelimit.js +24 -6
- package/dist/recall.js +3 -1
- package/dist/redacao-saida.js +63 -0
- package/dist/rede-adesao.js +399 -0
- package/dist/rede-forja.js +289 -0
- package/dist/rede-projetos.js +239 -0
- package/dist/rede-status.js +337 -0
- package/dist/rede.js +980 -0
- package/dist/retry.js +291 -140
- package/dist/roadmap-reservas.js +20 -3
- package/dist/roadmap-status.js +150 -34
- package/dist/runtime-context.js +181 -3
- package/dist/runtime-profiles.js +22 -1
- package/dist/runtimes.js +2 -1
- package/dist/saida-segura.js +58 -0
- package/dist/session-events.js +7 -3
- package/dist/session-watcher-claude.js +120 -24
- package/dist/session-watcher.js +185 -33
- package/dist/sessoes-contas.js +187 -0
- package/dist/sessoes-inventario.js +6 -18
- package/dist/sessoes.js +83 -2
- package/dist/ship-publicar.js +800 -0
- package/dist/ship.js +157 -88
- package/dist/steal.js +77 -0
- package/dist/thread-close.js +3 -2
- package/dist/thread.js +299 -49
- 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 +25 -2
- package/dist/yaml.js +27 -8
- package/eval/fixtures/fx-pedido-colado/caso.json +20 -0
- package/package.json +7 -3
- package/references/definition-of-done.md +1 -1
- package/schemas/code-artifact-graph.v1.schema.json +2 -1
- package/skills/README.md +1 -1
- package/skills/core/orkastery-bootstrap/SKILL.md +2 -2
- package/skills/phases/master-metrics/SKILL.md +8 -3
package/dist/ledger-stats.js
CHANGED
|
@@ -36,6 +36,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.parsePeriodo = parsePeriodo;
|
|
37
37
|
exports.coletarEstatisticas = coletarEstatisticas;
|
|
38
38
|
exports.registrarEstimativaPlano = registrarEstimativaPlano;
|
|
39
|
+
exports.linhaDoHitlDeConducao = linhaDoHitlDeConducao;
|
|
39
40
|
exports.textoDasEstatisticas = textoDasEstatisticas;
|
|
40
41
|
const fs = __importStar(require("node:fs"));
|
|
41
42
|
const path = __importStar(require("node:path"));
|
|
@@ -43,6 +44,7 @@ const thread_1 = require("./thread");
|
|
|
43
44
|
const ledger_1 = require("./ledger");
|
|
44
45
|
const util_1 = require("./util");
|
|
45
46
|
const horario_1 = require("./horario");
|
|
47
|
+
const hitl_tempo_parado_1 = require("./hitl-tempo-parado");
|
|
46
48
|
const MOTIVOS_PREVENTIVOS = new Set([
|
|
47
49
|
'policy.violation', 'cost.violation', 'verify.regression', 'claims.failed', 'claims.unverifiable',
|
|
48
50
|
]);
|
|
@@ -118,7 +120,9 @@ function coletarEstatisticas(raiz, filtros) {
|
|
|
118
120
|
const riscos = {};
|
|
119
121
|
const leads = [];
|
|
120
122
|
const fontes = new Set();
|
|
121
|
-
|
|
123
|
+
const esperasDeConducao = [];
|
|
124
|
+
for (const { thread, eventos } of selecionadas) {
|
|
125
|
+
esperasDeConducao.push(...(0, hitl_tempo_parado_1.esperasDeHitl)(thread.id, eventos));
|
|
122
126
|
corrompidos += eventos.filter(e => e.tipo === 'ledger_corrupted').length;
|
|
123
127
|
const despachos = new Map();
|
|
124
128
|
for (const e of eventos)
|
|
@@ -237,6 +241,7 @@ function coletarEstatisticas(raiz, filtros) {
|
|
|
237
241
|
custoReferencia: { natureza: tarifas.nature, moeda: tarifas.currency, valor: precificadas ? Number(custo.toFixed(6)) : null, sessoesPrecificadas: precificadas, sessoesSemTarifa: semTarifa, tarifasVerificadasEm: tarifas.verifiedAt, fontes: [...fontes].sort() },
|
|
238
242
|
leadTime: { mediaMs: leads.length ? leads.reduce((a, b) => a + b, 0) / leads.length : null, amostras: leads.length },
|
|
239
243
|
esperaHumana: { milissegundos: esperaMs, fechadas: esperasFechadas, abertas: esperasAbertas },
|
|
244
|
+
hitlDeConducao: (0, hitl_tempo_parado_1.resumirTempoParado)(esperasDeConducao, desdeMs, ateMs),
|
|
240
245
|
riscosPreventivos: { total: Object.values(riscos).reduce((a, b) => a + b, 0), porMotivo: riscos },
|
|
241
246
|
estimativasPlano: { amostras: estimativas, semIaHoras, iaSemOrkHoras },
|
|
242
247
|
qualidade: { ledgersCorrompidos: corrompidos, observacoes },
|
|
@@ -255,6 +260,14 @@ function registrarEstimativaPlano(raiz, threadId, dados) {
|
|
|
255
260
|
throw Error('ledger.estimate.head-unavailable');
|
|
256
261
|
return (0, ledger_1.registrar)((0, thread_1.dirThread)(raiz, threadId), threadId, 'plan_estimate', { fase: 'PLAN', unidade: 'hours', semIaHoras: dados.semIaHoras, iaSemOrkHoras: dados.iaSemOrkHoras, por: dados.por, metodo: dados.metodo, premissas: dados.premissas, incerteza: dados.incerteza ?? 'nao informada', head: head.stdout.trim() });
|
|
257
262
|
}
|
|
263
|
+
const minutos = (ms) => ms === null ? 'sem resposta medida' : `${(ms / 60_000).toFixed(1)} min`;
|
|
264
|
+
/** RM-057: uma linha, com a meta ao lado da mediana, para o dono ver o tempo parado sem abrir o JSON. */
|
|
265
|
+
function linhaDoHitlDeConducao(h) {
|
|
266
|
+
const meta = h.dentroDaMeta === null ? '' : h.dentroDaMeta ? ' (dentro da meta de 5 min)' : ' (acima da meta de 5 min)';
|
|
267
|
+
return ` HITL de conducao ${h.pedidos} pergunta(s); parado ${(h.paradoMs / 3_600_000).toFixed(2)} h; ` +
|
|
268
|
+
`mediana ${minutos(h.medianaRespostaMs)}${meta}; ${h.abertos} aberta(s); ` +
|
|
269
|
+
`texto fora da excecao ${h.emTexto.foraDaExcecao}`;
|
|
270
|
+
}
|
|
258
271
|
function textoDasEstatisticas(r) {
|
|
259
272
|
const dinheiro = r.custoReferencia.valor === null ? 'sem cobertura' : `USD ${r.custoReferencia.valor.toFixed(6)}`;
|
|
260
273
|
return [
|
|
@@ -265,6 +278,7 @@ function textoDasEstatisticas(r) {
|
|
|
265
278
|
` tokens ${r.tokens.total} total; input ${r.tokens.input} (cached ${r.tokens.cachedInput}); output ${r.tokens.output}`,
|
|
266
279
|
` custo referencia ${dinheiro} — estimativa por tarifa publica, nao gasto/fatura`,
|
|
267
280
|
` espera humana ${(r.esperaHumana.milissegundos / 3_600_000).toFixed(2)} h; ${r.esperaHumana.abertas} aberta(s)`,
|
|
281
|
+
linhaDoHitlDeConducao(r.hitlDeConducao),
|
|
268
282
|
` riscos evitados ${r.riscosPreventivos.total} gate(s) preventivo(s)`,
|
|
269
283
|
` estimativas PLAN ${r.estimativasPlano.amostras} amostra(s)`,
|
|
270
284
|
...r.qualidade.observacoes.map(o => ` cobertura ${o}`),
|
package/dist/ledger.js
CHANGED
|
@@ -60,6 +60,10 @@ exports.TIPOS_DE_EVENTO = {
|
|
|
60
60
|
faseDespachada: 'phase_dispatch',
|
|
61
61
|
despachoVerificado: 'phase_dispatch_verified',
|
|
62
62
|
despachoFalhou: 'phase_dispatch_failed',
|
|
63
|
+
// RM-063 (F3): o prompt foi ao disco e ao ledger, com o sha256, ANTES do adaptador. O despacho que morre
|
|
64
|
+
// depois (contexto do runtime, adaptador que lanca, processo morto) deixa o que o `ork retry run`
|
|
65
|
+
// redespacha sem pedir o texto. Escritor: `phase.ts` (`rodarFaseSobLock`).
|
|
66
|
+
promptGravado: 'phase_prompt_recorded',
|
|
63
67
|
decisaoAutonoma: 'autonomous_decision',
|
|
64
68
|
pausaHumana: 'human_gate',
|
|
65
69
|
// Bloco B1: verdade, leases, ship e handoff
|
|
@@ -73,6 +77,8 @@ exports.TIPOS_DE_EVENTO = {
|
|
|
73
77
|
shipIniciado: 'ship_started',
|
|
74
78
|
shipConcluido: 'ship_done',
|
|
75
79
|
shipBloqueado: 'ship_blocked',
|
|
80
|
+
// RM-059 (F7, T7.1): o `ork ship publicar` publicou a branch ou abriu o PR, com a prova do `ls-remote`.
|
|
81
|
+
shipPublicado: 'ship_published',
|
|
76
82
|
/**
|
|
77
83
|
* I-43 (D3): a entrega foi revertida na base depois do ship.
|
|
78
84
|
*
|
|
@@ -141,6 +147,9 @@ exports.TIPOS_DE_EVENTO = {
|
|
|
141
147
|
// I-33 (D5): troca de perfil ou de runtime depois de falha da conta (quem, de qual para
|
|
142
148
|
// qual, evidencia e razao). Faz parte do catalogo, nao de literal solto.
|
|
143
149
|
perfilRotacionado: 'runtime_profile_rotated',
|
|
150
|
+
// RM-037 (fatia 5): a cota que o observador viu na transcricao com a sessao viva; o perfil saiu do rodizio
|
|
151
|
+
// ali, ate a hora dita na mensagem, e nao so no fecho da fase.
|
|
152
|
+
cotaVistaNaTranscricao: 'runtime_quota_detected',
|
|
144
153
|
fixAberto: 'go_fix_opened',
|
|
145
154
|
fixDespachado: 'go_fix_dispatched',
|
|
146
155
|
reverifyConcluido: 'check_reverify',
|
|
@@ -172,6 +181,14 @@ exports.TIPOS_DE_EVENTO = {
|
|
|
172
181
|
// RM-037 (rm037defeito, A-1 do CHECK 3): o despacho recusado antes da sessao devolveu o lease que a tomada consumiu.
|
|
173
182
|
conducaoDevolvida: 'conducao_devolvida',
|
|
174
183
|
conducaoRenovada: 'conducao_renovada',
|
|
184
|
+
// RM-063 (F1): a batida da varredura instalada ou removida no crontab desta maquina, pelo
|
|
185
|
+
// `ork fabrica batida`. Mora no ledger da maquina (`~/.orkastery/ledger.jsonl`, thread `maquina`):
|
|
186
|
+
// o crontab e do usuario na maquina, nao de uma thread. Escritor: `fabrica-batida.ts`.
|
|
187
|
+
batidaInstalada: 'batida_instalada',
|
|
188
|
+
batidaRemovida: 'batida_removida',
|
|
189
|
+
// RM-059 (F6, T6.4): a Sentinela do Condutor ligou ou desligou nesta maquina (ledger do projeto, so na troca).
|
|
190
|
+
sentinelaLigada: 'sentinela_ligada',
|
|
191
|
+
sentinelaDesligada: 'sentinela_desligada',
|
|
175
192
|
};
|
|
176
193
|
/**
|
|
177
194
|
* I-41 (GO-FIX 1, B4 e D11): o rastro tipado da decisao autonoma.
|
|
@@ -220,7 +237,7 @@ function registrarSeExiste(dirThread, threadId, tipo, dados = {}) {
|
|
|
220
237
|
return null;
|
|
221
238
|
let fd;
|
|
222
239
|
try {
|
|
223
|
-
fd = fs.openSync(caminhoLedger(dirThread), fs.constants.O_WRONLY | fs.constants.O_APPEND);
|
|
240
|
+
fd = fs.openSync(caminhoLedger(dirThread), fs.constants.O_WRONLY | fs.constants.O_APPEND | fs.constants.O_NOFOLLOW);
|
|
224
241
|
}
|
|
225
242
|
catch (e) {
|
|
226
243
|
if (e.code === 'ENOENT')
|
package/dist/licoes.js
CHANGED
|
@@ -66,6 +66,7 @@ exports.DICA_DO_MOTIVO = {
|
|
|
66
66
|
'verify.timeout': 'divida o comando lento ou suba `verify.timeout_ms` no manifesto',
|
|
67
67
|
'runtime.unavailable': 'declare a ordem de fallback do bloco (`ork setup <modo> --bloco N --fallback runtime:modelo`)',
|
|
68
68
|
'runtime.quota-exhausted': 'tenha um segundo perfil da conta (`ork accounts add`) ou fallback no bloco',
|
|
69
|
+
'runtime.profile-invalid': 'confira os perfis do runtime em `ork accounts list` antes de pedir `--perfil`',
|
|
69
70
|
'tree.blocked': 'sincronize a worktree com a base antes do SHIP (`ork worktree sync <thread>`)',
|
|
70
71
|
// Fatia 2 do ensaio da 0.5.0 (P6): o que o CI do projeto roda, e nao o script do Orkastery.
|
|
71
72
|
'ci.failed': 'rode antes do push o que o CI do projeto roda (`ci.command` do manifesto ou, sem ele, os comandos de `verify`)',
|
package/dist/liveness.js
CHANGED
|
@@ -46,6 +46,7 @@ const thread_1 = require("./thread");
|
|
|
46
46
|
const ledger_1 = require("./ledger");
|
|
47
47
|
const retry_1 = require("./retry");
|
|
48
48
|
const util_1 = require("./util");
|
|
49
|
+
const procedencia_1 = require("./procedencia");
|
|
49
50
|
/**
|
|
50
51
|
* Transcrição local do Claude. O UUID evita interpretar identificador como caminho.
|
|
51
52
|
* I-33 (D4): `config` é o diretório já resolvido pelo perfil da sessão (ou o implícito, sem
|
|
@@ -70,8 +71,10 @@ function transcricaoClaude(sessionId, cwd, config) {
|
|
|
70
71
|
}
|
|
71
72
|
return undefined;
|
|
72
73
|
}
|
|
73
|
-
function fontesReais(t, d) {
|
|
74
|
-
|
|
74
|
+
function fontesReais(raiz, t, d) {
|
|
75
|
+
// RM-047 (P2): o git da prova de vida so roda na worktree registrada.
|
|
76
|
+
const wt = t.worktree ? (0, procedencia_1.cwdLocalOuNulo)(raiz, t.id, t.worktree, 'thread') : null;
|
|
77
|
+
const commit = wt ? (0, util_1.exec)('git', ['log', '-1', '--format=%cI'], wt) : null;
|
|
75
78
|
const commitEm = commit?.ok ? commit.stdout.trim() : undefined;
|
|
76
79
|
if (typeof d.sessionId !== 'string')
|
|
77
80
|
return { commitEm };
|
|
@@ -157,7 +160,7 @@ function detectarFasesOrfas(carregado, opcoes = {}) {
|
|
|
157
160
|
incorporar(e.ts, e.tipo);
|
|
158
161
|
}
|
|
159
162
|
}
|
|
160
|
-
const fontes =
|
|
163
|
+
const fontes = opcoes.fontes ? opcoes.fontes(t, d) : fontesReais(carregado.raiz, t, d);
|
|
161
164
|
incorporar(fontes.commitEm, 'commit na worktree');
|
|
162
165
|
const file = path.join(dir, 'liveness.json'), chave = `${d.ts}|${d.sessionId}`;
|
|
163
166
|
let anterior = null;
|