dd-harness 0.41.0 → 0.42.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.
@@ -28,20 +28,25 @@ export type EscritaDeArtefato = {
28
28
  artefato: string;
29
29
  criou: boolean;
30
30
  tamanho: number;
31
- versao: number;
31
+ /** `MAJOR.MINOR.PATCH`, calculado pelo servico. */
32
+ versao: string;
32
33
  sem_alteracao: boolean;
33
34
  };
35
+ /** O tamanho da mudanca, que decide o proximo numero `MAJOR.MINOR.PATCH`. */
36
+ export type MudancaDeArtefato = "major" | "minor" | "patch";
34
37
  /**
35
38
  * Substituicao total, nao append: quem quer acrescentar um paragrafo le, concatena e
36
39
  * reenvia. Conteudo vazio e valido e significa "apagar" — a linha fica no banco, guardando
37
40
  * quem mexeu por ultimo.
38
41
  *
39
42
  * Toda escrita vira uma versao numerada no servico, e `resumo` e a linha que o historico
40
- * guarda sobre ela: o que mudou e por que.
43
+ * guarda sobre ela: o que mudou e por que. `mudanca` diz quanto mudou — o servico deriva
44
+ * dela o proximo `MAJOR.MINOR.PATCH`.
41
45
  */
42
- export declare function escreveArtefato(raiz: string, tipo: TipoDeArtefato, conteudo: string, atualizadaEm: string | null, resumo: string): Promise<EscritaDeArtefato>;
46
+ export declare function escreveArtefato(raiz: string, tipo: TipoDeArtefato, conteudo: string, atualizadaEm: string | null, resumo: string, mudanca: MudancaDeArtefato): Promise<EscritaDeArtefato>;
43
47
  export type VersaoDeArtefato = {
44
- versao: number;
48
+ /** `MAJOR.MINOR.PATCH`. */
49
+ versao: string;
45
50
  resumo: string;
46
51
  criada_em: string;
47
52
  tamanho: number;
@@ -57,6 +62,6 @@ export declare function leVersoesDoArtefato(raiz: string, tipo: TipoDeArtefato):
57
62
  */
58
63
  export declare function formataHistorico(tipo: TipoDeArtefato, versoes: VersaoDeArtefato[]): string;
59
64
  /** O texto integral de uma versao antiga, com o resumo do que ela mudou. */
60
- export declare function leVersaoDoArtefato(raiz: string, tipo: TipoDeArtefato, versao: number): Promise<Omit<VersaoDeArtefato, "tamanho"> & {
65
+ export declare function leVersaoDoArtefato(raiz: string, tipo: TipoDeArtefato, versao: string): Promise<Omit<VersaoDeArtefato, "tamanho"> & {
61
66
  conteudo: string;
62
67
  }>;
package/dist/artefato.js CHANGED
@@ -29,9 +29,10 @@ export async function leArtefato(raiz, tipo) {
29
29
  * quem mexeu por ultimo.
30
30
  *
31
31
  * Toda escrita vira uma versao numerada no servico, e `resumo` e a linha que o historico
32
- * guarda sobre ela: o que mudou e por que.
32
+ * guarda sobre ela: o que mudou e por que. `mudanca` diz quanto mudou — o servico deriva
33
+ * dela o proximo `MAJOR.MINOR.PATCH`.
33
34
  */
34
- export async function escreveArtefato(raiz, tipo, conteudo, atualizadaEm, resumo) {
35
+ export async function escreveArtefato(raiz, tipo, conteudo, atualizadaEm, resumo, mudanca) {
35
36
  const { config, token } = await credencial(raiz);
36
37
  const resposta = await pede(`${config.api}/api/v1/artefatos`, {
37
38
  method: "PUT",
@@ -47,6 +48,7 @@ export async function escreveArtefato(raiz, tipo, conteudo, atualizadaEm, resumo
47
48
  tipo,
48
49
  conteudo,
49
50
  resumo,
51
+ mudanca,
50
52
  }),
51
53
  });
52
54
  if (!resposta.ok)
@@ -89,7 +91,7 @@ async function pedeHistorico(raiz, tipo, versao) {
89
91
  url.searchParams.set("projeto", config.projeto);
90
92
  url.searchParams.set("tipo", tipo);
91
93
  if (versao !== undefined)
92
- url.searchParams.set("versao", String(versao));
94
+ url.searchParams.set("versao", versao);
93
95
  const resposta = await pede(url, { headers: cabecalhos(token) });
94
96
  if (!resposta.ok)
95
97
  await recusa(resposta);
package/package.json CHANGED
@@ -1,44 +1,44 @@
1
- {
2
- "name": "dd-harness",
3
- "version": "0.41.0",
4
- "type": "module",
5
- "description": "Política, memória e integrações de Claude Code, Codex e Antigravity. CLI sem dependências de runtime.",
6
- "license": "UNLICENSED",
7
- "author": "Diego Dias",
8
- "keywords": [
9
- "claude-code",
10
- "ai-agents",
11
- "memory",
12
- "brain",
13
- "cli"
14
- ],
15
- "homepage": "https://dd-harness.vercel.app",
16
- "repository": {
17
- "type": "git",
18
- "url": "git+https://github.com/diegodias93/dd-harness-online.git",
19
- "directory": "packages/cli"
20
- },
21
- "bin": {
22
- "dd-harness": "dist/index.js"
23
- },
24
- "//exports": "Aponta para `dist` porque quem IMPORTA isto em tempo de execucao e o Node, que nao executa TypeScript. Nao aponte para `src`: o Node segue os imports relativos de dentro do arquivo e tenta abrir `./api.js` ao lado do `.ts`, que nao existe. Quem consome no workspace e o `packages/mcp`, e ele compila o fonte do CLI junto (ver o tsconfig.build.json dele) em vez de depender deste campo — assim o build funciona num checkout limpo, sem `dist` previo.",
25
- "exports": {
26
- "./api": "./dist/api.js",
27
- "./buscar": "./dist/buscar.js",
28
- "./curar": "./dist/curar.js",
29
- "./gravar": "./dist/gravar.js",
30
- "./pasta": "./dist/pasta.js",
31
- "./projeto": "./dist/projeto.js"
32
- },
33
- "files": [
34
- "dist"
35
- ],
36
- "engines": {
37
- "node": ">=20.3.0"
38
- },
39
- "scripts": {
40
- "typecheck": "tsc -p . --noEmit",
41
- "build": "tsc -p tsconfig.build.json",
42
- "prepublishOnly": "npm run build"
43
- }
44
- }
1
+ {
2
+ "name": "dd-harness",
3
+ "version": "0.42.0",
4
+ "type": "module",
5
+ "description": "Política, memória e integrações de Claude Code, Codex e Antigravity. CLI sem dependências de runtime.",
6
+ "license": "UNLICENSED",
7
+ "author": "Diego Dias",
8
+ "keywords": [
9
+ "claude-code",
10
+ "ai-agents",
11
+ "memory",
12
+ "brain",
13
+ "cli"
14
+ ],
15
+ "homepage": "https://dd-harness.vercel.app",
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "git+https://github.com/diegodias93/dd-harness-online.git",
19
+ "directory": "packages/cli"
20
+ },
21
+ "bin": {
22
+ "dd-harness": "dist/index.js"
23
+ },
24
+ "//exports": "Aponta para `dist` porque quem IMPORTA isto em tempo de execucao e o Node, que nao executa TypeScript. Nao aponte para `src`: o Node segue os imports relativos de dentro do arquivo e tenta abrir `./api.js` ao lado do `.ts`, que nao existe. Quem consome no workspace e o `packages/mcp`, e ele compila o fonte do CLI junto (ver o tsconfig.build.json dele) em vez de depender deste campo — assim o build funciona num checkout limpo, sem `dist` previo.",
25
+ "exports": {
26
+ "./api": "./dist/api.js",
27
+ "./buscar": "./dist/buscar.js",
28
+ "./curar": "./dist/curar.js",
29
+ "./gravar": "./dist/gravar.js",
30
+ "./pasta": "./dist/pasta.js",
31
+ "./projeto": "./dist/projeto.js"
32
+ },
33
+ "files": [
34
+ "dist"
35
+ ],
36
+ "engines": {
37
+ "node": ">=20.3.0"
38
+ },
39
+ "scripts": {
40
+ "typecheck": "tsc -p . --noEmit",
41
+ "build": "tsc -p tsconfig.build.json",
42
+ "prepublishOnly": "npm run build"
43
+ }
44
+ }