agent-cloud-kit 1.0.0-rc.4 → 1.0.0-rc.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/dist/manual.js CHANGED
@@ -5,7 +5,7 @@
5
5
  import { existsSync, mkdirSync, readFileSync, realpathSync, renameSync, rmSync, statSync, writeFileSync } from "node:fs";
6
6
  import { dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
7
7
  import { readConfig } from "./config.js";
8
- import { CONFIG_FILE, OUTPUT_PREFIX, PACKAGE, packageSpec } from "./constants.js";
8
+ import { CONFIG_FILE, PACKAGE, packageSpec } from "./constants.js";
9
9
  /** Path of the manual, relative to the repo. */
10
10
  export const MANUAL_FILE = "docs/agent-cloud.md";
11
11
  /** Marker that opens the generated block. */
@@ -27,18 +27,8 @@ const HTTPS_PREFIX = "https://";
27
27
  function setupScript(packageVersion) {
28
28
  return `#!/bin/bash\nnpx -y ${packageSpec(packageVersion)} setup`;
29
29
  }
30
- /** The "how it works" section, five lines. */
31
- const HOW_IT_WORKS = [
32
- "## Cómo funciona",
33
- "",
34
- "1. agent-kitchen instala las herramientas y los ganchos en el repo.",
35
- `2. \`${PACKAGE} prepare\` configura el repo con la skill y genera este documento.`,
36
- "3. Tú configuras el entorno en claude.ai con lo que indica la siguiente sección.",
37
- "4. Una sesión en la nube verifica que el entorno quedó bien.",
38
- "5. El PR guarda el resultado.",
39
- "",
40
- "Este documento se va actualizando. Cuando la skill `cloud-ready`, en local o en la nube, detecta que hace falta un dominio o una variable de entorno nueva, la agrega a `.claude/cloud.json`, regenera este archivo y te lo dice en la sesión. Cuando cambie la sección \"Configurar el entorno en claude.ai\", aplica lo nuevo en claude.ai y vuelve a verificar con `npx agent-cloud-kit verify` desde la rama.",
41
- ].join("\n");
30
+ /** Note at the top: the document grows when the skill finds something new. */
31
+ const UPDATES_NOTE = `> Se actualiza solo cuando la skill \`cloud-ready\` detecta un dominio o una variable nueva. Si cambia, aplícalo en claude.ai y corre \`npx ${PACKAGE} verify\`.`;
42
32
  /**
43
33
  * Extracts the host of an apt repo URL.
44
34
  *
@@ -80,46 +70,30 @@ function allowedHosts(config) {
80
70
  */
81
71
  export function renderEnvironmentSection(config, packageVersion) {
82
72
  const hosts = allowedHosts(config);
73
+ const code = (items) => items.map((item) => `\`${item}\``).join(", ");
83
74
  const lines = [
84
75
  "## Configurar el entorno en claude.ai",
85
76
  "",
86
- "`claude --cloud` usa el entorno que elijas con `/remote-env` en una terminal (queda en tu configuración de usuario). Configura ese entorno en claude.ai/code:",
87
- "",
88
- "### Network access",
89
- "",
90
- 'Elige **Custom**, marca "Also include default list of common package managers" y agrega estos dominios:',
91
- "",
92
- ...(hosts.length ? hosts.map((host) => `- ${host}`) : ["ninguno extra"]),
77
+ "Elige el entorno con `/remote-env` y edítalo en claude.ai/code:",
93
78
  "",
94
- "### Setup script",
79
+ `- **Network access:** Custom y marca "Also include default list of common package managers". Dominios extra: ${hosts.length ? code(hosts) : "ninguno"}.`,
80
+ `- **Variables:** ${config.requiredEnv.length ? `${code(config.requiredEnv)} (solo los nombres; los valores los pones tú)` : "ninguna"}.`,
81
+ "- **Claude GitHub App:** instalado en el repo, o la sesión no puede pushear.",
82
+ "- **Setup script:**",
95
83
  "",
96
84
  "```bash",
97
85
  setupScript(packageVersion),
98
86
  "```",
99
- "",
100
- "### Variables de entorno",
101
- "",
102
87
  ];
103
- if (config.requiredEnv.length) {
104
- lines.push(...config.requiredEnv.map((name) => `- \`${name}\``));
105
- lines.push("", "Solo los nombres; los valores los pones tú en el entorno. Ojo: quien use el entorno puede leerlas, y no llegan al setup script (solo a la sesión).");
106
- }
107
- else {
108
- lines.push("Ninguna.");
109
- }
110
- lines.push("", "### Claude GitHub App", "", "El Claude GitHub App debe estar instalado en el repo. Sin él, la sesión no puede pushear.");
88
+ if (config.requiredEnv.length)
89
+ lines.push("", "> ⚠️ Quien use el entorno puede leer las variables, y no llegan al setup script (solo a la sesión).");
111
90
  return lines.join("\n");
112
91
  }
113
- /** The "how to verify" section: what a fresh cloud session checks. */
92
+ /** The "how to verify" section, one line. */
114
93
  const VERIFY_SECTION = [
115
- "## Verificar el entorno",
116
- "",
117
- "En una sesión nueva en la nube, revisa esto:",
94
+ "## Verificar",
118
95
  "",
119
- `1. \`${PACKAGE} doctor\` muestra todo en \`ok\` y termina con salida 0.`,
120
- "2. `node_modules` existe.",
121
- "3. Las versiones de `.tool-versions` son las que están instaladas.",
122
- `4. Al empezar la sesión no hay líneas \`${OUTPUT_PREFIX.trim()}\` de falla.`,
96
+ `Corre \`npx ${PACKAGE} verify\` desde la rama subida: abre una sesión en la nube que revisa \`${PACKAGE} doctor\`, las dependencias, las versiones y las variables, y lo reporta en el PR.`,
123
97
  ].join("\n");
124
98
  /**
125
99
  * Resolves the `notes` of the config: the content of the file when it is a relative path to an
@@ -164,8 +138,8 @@ export function renderManual(input) {
164
138
  const parts = [
165
139
  BEGIN,
166
140
  `<!-- Generado por ${PACKAGE} ${input.packageVersion}. No edites entre las marcas. -->`,
167
- "# Nube de Claude Code",
168
- HOW_IT_WORKS,
141
+ "# Claude Code en la nube",
142
+ UPDATES_NOTE,
169
143
  renderEnvironmentSection(input.config, input.packageVersion),
170
144
  VERIFY_SECTION,
171
145
  `## Qué corre en la nube\n\n${notes?.trim() ? notes.trim() : "Nada anotado."}`,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-cloud-kit",
3
- "version": "1.0.0-rc.4",
3
+ "version": "1.0.0-rc.6",
4
4
  "description": "Zero-dependency CLI that prepares Claude Code cloud sessions.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -71,14 +71,17 @@ No le pidas al usuario una lista de variables secretas ni de dominios: anota en
71
71
  comprueba ni crees scripts de tests nuevos sin aprobación.
72
72
  7. **Escribe el archivo de `notes`:** qué correr en la nube (el comando tal como lo corre el
73
73
  repo, lo que hay que levantar antes, cuánto tarda y si va en segundo plano), qué no y por qué.
74
- Por ejemplo:
74
+ Va dentro de `docs/agent-cloud.md`, así que sé breve: una viñeta por cosa, marcada con ✅ (corre), ⏳ (hay que levantar algo
75
+ antes) o ❌ (no corre), sin párrafos. Por ejemplo:
75
76
 
76
77
  ```markdown
77
- En la nube: `npm test` (~1 min). Antes de `npm run test:db`, `docker compose up -d db`
78
- (~3 min, en segundo plano). No corre `npm run test:e2e:prod`: pega a una API externa que el
79
- entorno no permite.
78
+ - ✅ `npm test` (~1 min)
79
+ - ⏳ Antes de `npm run test:db`: `docker compose up -d db` (~3 min, en segundo plano)
80
+ - ❌ `npm run test:e2e:prod`: pega a una API externa que el entorno no permite
80
81
  ```
81
82
 
83
+ Sin tests: `- El repo no tiene tests; en la nube solo se prepara la máquina.`
84
+
82
85
  8. **Si existe `.agents/skills/test-audit/project.md`:** escribe o actualiza su sección "Nube"
83
86
  con el mismo resumen; no toques el resto del archivo.
84
87
  9. **Corre `agent-cloud-kit manual`** y muéstrale al usuario la sección "Configurar el entorno en