dd-harness 0.18.0 → 0.19.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/dist/index.js +4 -3
- package/dist/roadmap.d.ts +22 -0
- package/dist/roadmap.js +21 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -19,7 +19,7 @@ import { grava } from "./gravar.js";
|
|
|
19
19
|
import { init, SUGESTAO_AGENTS, SUGESTAO_HOOK, SUGESTAO_MCP } from "./init.js";
|
|
20
20
|
import { pergunta, escolha, fechaPerguntas } from "./pergunta.js";
|
|
21
21
|
import { buscaPolitica } from "./politica.js";
|
|
22
|
-
import { blocoDeSessao, criaFase, editaFase, formataChangelog, formataRoadmap, leFases, } from "./roadmap.js";
|
|
22
|
+
import { avisoDeOrdem, blocoDeSessao, criaFase, editaFase, formataChangelog, formataRoadmap, leFases, } from "./roadmap.js";
|
|
23
23
|
import { busca } from "./buscar.js";
|
|
24
24
|
import { arquiva, edita, le } from "./curar.js";
|
|
25
25
|
import { criaPasta } from "./pasta.js";
|
|
@@ -155,7 +155,7 @@ async function comandoFase(argv) {
|
|
|
155
155
|
throw new Error("fase editar exige o slug da fase.");
|
|
156
156
|
const ordemBruta = argumento(opcoes, "ordem");
|
|
157
157
|
const status = statusDoArgv(opcoes);
|
|
158
|
-
const { fase } = await editaFase(process.cwd(), slug, {
|
|
158
|
+
const { fase, atras_de } = await editaFase(process.cwd(), slug, {
|
|
159
159
|
titulo: argumento(opcoes, "titulo"),
|
|
160
160
|
conteudo: await conteudoDoArgv(opcoes),
|
|
161
161
|
versao: opcoes.includes("--sem-versao") ? null : argumento(opcoes, "versao"),
|
|
@@ -165,7 +165,8 @@ async function comandoFase(argv) {
|
|
|
165
165
|
console.log(`Fase ${fase.slug} atualizada — ${fase.status}` +
|
|
166
166
|
(fase.versao ? `, versão ${fase.versao}` : "") +
|
|
167
167
|
(status === "concluida" ? " (saiu do roadmap, entrou no changelog)" : "") +
|
|
168
|
-
"."
|
|
168
|
+
"." +
|
|
169
|
+
avisoDeOrdem(fase, atras_de, ordemBruta !== undefined));
|
|
169
170
|
return;
|
|
170
171
|
}
|
|
171
172
|
throw new Error('uso: dd-harness fase criar --titulo "<t>" [...] | dd-harness fase editar <slug> [...]');
|
package/dist/roadmap.d.ts
CHANGED
|
@@ -62,8 +62,17 @@ export declare function criaFase(raiz: string, dados: NovaFase): Promise<{
|
|
|
62
62
|
fase: Fase;
|
|
63
63
|
criou: boolean;
|
|
64
64
|
}>;
|
|
65
|
+
/**
|
|
66
|
+
* A fase aberta imediatamente a frente, quando `ordem` foi pedida — `null` se a editada
|
|
67
|
+
* ficou na frente de todas, e ausente quando `ordem` nem foi mencionada.
|
|
68
|
+
*/
|
|
69
|
+
export type AtrasDe = {
|
|
70
|
+
slug: string;
|
|
71
|
+
titulo: string;
|
|
72
|
+
} | null;
|
|
65
73
|
export declare function editaFase(raiz: string, slug: string, dados: EdicaoDeFase): Promise<{
|
|
66
74
|
fase: Fase;
|
|
75
|
+
atras_de: AtrasDe;
|
|
67
76
|
}>;
|
|
68
77
|
/** Rotulo do grupo de fases concluidas sem versao: o "Unreleased" do Keep a Changelog. */
|
|
69
78
|
export declare const SEM_VERSAO = "Sem vers\u00E3o (ainda n\u00E3o lan\u00E7ado)";
|
|
@@ -82,6 +91,19 @@ export declare function blocoDeSessao(r: RoadmapDaSessao | null | undefined): st
|
|
|
82
91
|
* separa por status. Concluidas nao aparecem aqui — sao changelog.
|
|
83
92
|
*/
|
|
84
93
|
export declare function formataRoadmap(fases: Fase[]): string;
|
|
94
|
+
/**
|
|
95
|
+
* A frase sobre POSICAO que fecha a resposta de `editar_fase` — vazia quando `ordem` nao
|
|
96
|
+
* foi pedida, porque quem edita texto nao perguntou nada sobre posicao.
|
|
97
|
+
*
|
|
98
|
+
* Existe por um achado medido (rodada 005): pedir `ordem: 1` para promover uma fase a
|
|
99
|
+
* "Agora" quando outra mais antiga ja tem `ordem: 1` grava o valor, responde sucesso e
|
|
100
|
+
* nao muda nada visivel — a leitura desempata por `created_at`. O comportamento esta
|
|
101
|
+
* certo; o silencio e que ensinava o agente a seguir achando que promoveu a fase.
|
|
102
|
+
*
|
|
103
|
+
* Confirma a ordem aplicada mesmo sem empate: e o unico jeito de quem pediu saber que o
|
|
104
|
+
* numero pegou, e custa uma linha.
|
|
105
|
+
*/
|
|
106
|
+
export declare function avisoDeOrdem(fase: Pick<Fase, "ordem" | "status">, atrasDe: AtrasDe, pediuOrdem: boolean): string;
|
|
85
107
|
/**
|
|
86
108
|
* O changelog: fases concluidas agrupadas por versao, na ordem em que a API devolveu (mais
|
|
87
109
|
* recente primeiro). Grupo sem versao recebe `SEM_VERSAO`. A ordem dos grupos e a da
|
package/dist/roadmap.js
CHANGED
|
@@ -123,6 +123,27 @@ export function formataRoadmap(fases) {
|
|
|
123
123
|
: "Nenhuma fase concluída ainda.");
|
|
124
124
|
return linhas.join("\n");
|
|
125
125
|
}
|
|
126
|
+
/**
|
|
127
|
+
* A frase sobre POSICAO que fecha a resposta de `editar_fase` — vazia quando `ordem` nao
|
|
128
|
+
* foi pedida, porque quem edita texto nao perguntou nada sobre posicao.
|
|
129
|
+
*
|
|
130
|
+
* Existe por um achado medido (rodada 005): pedir `ordem: 1` para promover uma fase a
|
|
131
|
+
* "Agora" quando outra mais antiga ja tem `ordem: 1` grava o valor, responde sucesso e
|
|
132
|
+
* nao muda nada visivel — a leitura desempata por `created_at`. O comportamento esta
|
|
133
|
+
* certo; o silencio e que ensinava o agente a seguir achando que promoveu a fase.
|
|
134
|
+
*
|
|
135
|
+
* Confirma a ordem aplicada mesmo sem empate: e o unico jeito de quem pediu saber que o
|
|
136
|
+
* numero pegou, e custa uma linha.
|
|
137
|
+
*/
|
|
138
|
+
export function avisoDeOrdem(fase, atrasDe, pediuOrdem) {
|
|
139
|
+
if (!pediuOrdem)
|
|
140
|
+
return "";
|
|
141
|
+
if (!atrasDe)
|
|
142
|
+
return ` Ordem ${fase.ordem}${fase.status === "aberta" ? " — é o \"Agora\"" : ""}.`;
|
|
143
|
+
return (` Ordem ${fase.ordem}, mas ainda atrás de \`${atrasDe.slug}\` (${atrasDe.titulo}) —` +
|
|
144
|
+
" fases com a mesma ordem desempatam pela mais antiga. Para passar à frente, use uma" +
|
|
145
|
+
" ordem menor ou mude a ordem da outra.");
|
|
146
|
+
}
|
|
126
147
|
/**
|
|
127
148
|
* O changelog: fases concluidas agrupadas por versao, na ordem em que a API devolveu (mais
|
|
128
149
|
* recente primeiro). Grupo sem versao recebe `SEM_VERSAO`. A ordem dos grupos e a da
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dd-harness",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Cliente do dd-harness: politica no inicio da sessao, e memoria por busca — nada em disco. Sem dependencia: fetch, crypto e fs sao do Node.",
|
|
6
6
|
"license": "UNLICENSED",
|