zinkee 0.1.44 → 0.1.46

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.
Files changed (94) hide show
  1. package/README.md +4 -0
  2. package/dist/chunk-MHEVRMDX.js +1230 -0
  3. package/dist/chunk-MHEVRMDX.js.map +1 -0
  4. package/{src/utils/examples.ts → dist/examples-67U5IRBS.js} +866 -1141
  5. package/dist/examples-67U5IRBS.js.map +1 -0
  6. package/dist/index.js +1145 -8456
  7. package/dist/index.js.map +1 -1
  8. package/package.json +6 -3
  9. package/.github/workflows/npm-publish.yml +0 -77
  10. package/.github/workflows/pr-checks.yml +0 -36
  11. package/AGENTS.md +0 -110
  12. package/docs/cli-contract.md +0 -41
  13. package/docs/npm-release.md +0 -64
  14. package/docs/superpowers/plans/2026-03-24-zinkee-cli-implementation.md +0 -837
  15. package/docs/superpowers/plans/2026-03-25-cli-backend-error-contract.md +0 -503
  16. package/docs/superpowers/plans/2026-03-26-display-freeform-create.md +0 -389
  17. package/docs/superpowers/specs/2026-03-24-zinkee-cli-backend-blockers.md +0 -172
  18. package/docs/superpowers/specs/2026-03-24-zinkee-cli-design.md +0 -1576
  19. package/docs/superpowers/specs/2026-03-24-zinkee-cli-e2e-checklist.md +0 -215
  20. package/docs/superpowers/specs/2026-03-24-zinkee-cli-e2e-design.md +0 -492
  21. package/docs/superpowers/specs/2026-03-24-zinkee-cli-e2e-status.md +0 -307
  22. package/docs/superpowers/specs/2026-07-30-cli-pr-checks-design.md +0 -37
  23. package/src/api/automations.ts +0 -404
  24. package/src/api/comments.ts +0 -51
  25. package/src/api/displays.ts +0 -337
  26. package/src/api/document-templates.ts +0 -110
  27. package/src/api/files.ts +0 -50
  28. package/src/api/formulas.test.ts +0 -65
  29. package/src/api/formulas.ts +0 -67
  30. package/src/api/logs.ts +0 -34
  31. package/src/api/navigation.ts +0 -70
  32. package/src/api/records.ts +0 -184
  33. package/src/api/schemas.ts +0 -148
  34. package/src/api/teamspace.ts +0 -110
  35. package/src/cli-examples.ts +0 -130
  36. package/src/cli-runner.ts +0 -95
  37. package/src/client.test.ts +0 -189
  38. package/src/client.ts +0 -269
  39. package/src/command-registry.ts +0 -882
  40. package/src/commands/automations.test.ts +0 -1030
  41. package/src/commands/automations.ts +0 -2102
  42. package/src/commands/comments.test.ts +0 -214
  43. package/src/commands/comments.ts +0 -303
  44. package/src/commands/config.test.ts +0 -81
  45. package/src/commands/config.ts +0 -150
  46. package/src/commands/displays.test.ts +0 -1105
  47. package/src/commands/displays.ts +0 -1442
  48. package/src/commands/document-templates.test.ts +0 -569
  49. package/src/commands/document-templates.ts +0 -563
  50. package/src/commands/files.test.ts +0 -284
  51. package/src/commands/files.ts +0 -280
  52. package/src/commands/formulas.test.ts +0 -194
  53. package/src/commands/formulas.ts +0 -243
  54. package/src/commands/logs.test.ts +0 -123
  55. package/src/commands/logs.ts +0 -159
  56. package/src/commands/navigation.test.ts +0 -211
  57. package/src/commands/navigation.ts +0 -348
  58. package/src/commands/profiles.test.ts +0 -191
  59. package/src/commands/profiles.ts +0 -303
  60. package/src/commands/records.test.ts +0 -860
  61. package/src/commands/records.ts +0 -883
  62. package/src/commands/schemas.test.ts +0 -1252
  63. package/src/commands/schemas.ts +0 -890
  64. package/src/commands/teamspace.test.ts +0 -229
  65. package/src/commands/teamspace.ts +0 -546
  66. package/src/completion/engine.test.ts +0 -138
  67. package/src/completion/engine.ts +0 -168
  68. package/src/completion/install.test.ts +0 -179
  69. package/src/completion/install.ts +0 -260
  70. package/src/completion/runtime.ts +0 -150
  71. package/src/completion/scripts.ts +0 -91
  72. package/src/config.test.ts +0 -362
  73. package/src/config.ts +0 -294
  74. package/src/index.test.ts +0 -217
  75. package/src/index.ts +0 -8
  76. package/src/parsers/expressions.test.ts +0 -95
  77. package/src/parsers/expressions.ts +0 -128
  78. package/src/parsers/kv.test.ts +0 -35
  79. package/src/parsers/kv.ts +0 -49
  80. package/src/parsers/selectors.test.ts +0 -23
  81. package/src/parsers/selectors.ts +0 -29
  82. package/src/program.ts +0 -64
  83. package/src/runtime-context.ts +0 -103
  84. package/src/types.ts +0 -76
  85. package/src/utils/argv-rewrite.test.ts +0 -149
  86. package/src/utils/argv-rewrite.ts +0 -269
  87. package/src/utils/errors.test.ts +0 -85
  88. package/src/utils/errors.ts +0 -191
  89. package/src/utils/examples.test.ts +0 -374
  90. package/src/utils/output.test.ts +0 -65
  91. package/src/utils/output.ts +0 -154
  92. package/src/utils/schema-fields.ts +0 -1016
  93. package/tsconfig.json +0 -20
  94. package/tsup.config.ts +0 -13
@@ -1,307 +0,0 @@
1
- # Zinkee CLI E2E Status
2
-
3
- Estado de pruebas E2E reales ejecutadas contra el perfil `local` de:
4
-
5
- - `/Users/david/.config/zinkee/config.toml`
6
-
7
- Las pruebas se han lanzado contra el binario real:
8
-
9
- ```bash
10
- node dist/index.js ...
11
- ```
12
-
13
- ## Preflight y Contrato Global
14
-
15
- - [x] `node dist/index.js --json config validate`
16
- - [x] `node dist/index.js --json --profile local profiles get local`
17
- - [x] `node dist/index.js --json --profile local schemas list`
18
- - [x] `--read-only` bloquea escrituras con `exitCode = 7`
19
- - [x] `--example` validado en E2E real
20
- - [x] errores JSON validados en más casos representativos
21
-
22
- Notas transversales:
23
-
24
- - `--example` está validado en real, pero la cobertura es irregular: por ejemplo `automations create`, `schemas fields create` y `navigation resources move` sí tienen ejemplo, mientras `schemas get`, `records update`, `files upload`, `teamspace folders create`, `automations folders create`, `automations webhook set` y `automations connections create` no.
25
- - `--json` no se respeta en todos los errores: fallos de runtime sí devuelven `{ error, meta }`, pero errores de parseo/Commander como `schemas get` sin argumento siguen saliendo en texto plano.
26
- - muchos `400`/`404` siguen colapsando a `code="unknown_error"` aunque el backend sí devuelve JSON estructurado con `reason`, `action`, `requestId` y `timestamp`; la CLI está perdiendo esa información.
27
- - la ayuda global anuncia `--example` sin explicar bien la ruta de comando esperada, así que desde fuera hay algo de prueba y error.
28
-
29
- ## Files E2E
30
-
31
- Estado: `PASS`
32
-
33
- Recursos usados:
34
-
35
- - `0349c88d-65e0-40a4-b8f5-72025de79308`
36
- - `5cbaacc7-0b5e-43d5-893f-22eb5826e0f4`
37
-
38
- - [x] upload
39
- - [x] storage info
40
- - [x] download binario
41
- - [x] `--json --output`
42
- - [x] delete
43
- - [x] cleanup remoto
44
- - [x] cleanup local
45
-
46
- ## Navigation E2E
47
-
48
- Estado: `PASS`
49
-
50
- Run id:
51
-
52
- - `e2e-nav-20260324203721-22108`
53
-
54
- Recursos usados:
55
-
56
- - folder id: `506bba9e-2756-40f0-a58d-3588c6fee35e`
57
-
58
- - [x] create folder
59
- - [x] get folder por UUID
60
- - [x] get folder por nombre exacto
61
- - [x] update folder
62
- - [x] move resource
63
- - [x] delete folder
64
- - [x] cleanup correcto
65
-
66
- ## Teamspace E2E
67
-
68
- Estado: `PASS_WITH_CONCERNS`
69
-
70
- Run id:
71
-
72
- - `e2e-team-20260324203721-31756`
73
-
74
- Recursos usados:
75
-
76
- - folder id: `e7ec8dc8-0e5a-4c52-b019-3433557b116a`
77
-
78
- - [x] create folder
79
- - [x] list folders
80
- - [x] list con `--include-resources`
81
- - [x] get folder por UUID
82
- - [x] get folder por nombre exacto
83
- - [x] update folder
84
- - [x] publish resource
85
- - [x] unpublish resource
86
- - [x] delete folder
87
- - [x] cleanup correcto
88
- - [x] `folders get` devuelve el recurso completo
89
-
90
- Nota:
91
-
92
- - el comando `teamspace folders get` está devolviendo el selector resuelto (`{ kind, value }`) en vez del recurso de carpeta completo
93
-
94
- ## Schemas E2E
95
-
96
- Estado: `PARTIAL`
97
-
98
- Run útil observado:
99
-
100
- - `e2e-schema-20260324193743-256e46`
101
-
102
- Recursos observados:
103
-
104
- - schema id: `4d90b9e8-3f1f-411e-9ed9-b2b92bdef3a0`
105
- - field ids:
106
- - `d1d8fd9a-5646-4453-b0d8-af9466211463`
107
- - `13cd6117-3fe0-4408-81f7-71368bfb2475`
108
-
109
- - [x] create schema
110
- - [x] get schema por slug
111
- - [x] get schema por UUID
112
- - [x] create field sin `config`
113
- - [x] create field en schema temporal
114
- - [x] list fields
115
- - [x] get field
116
- - [x] update field sin `config`
117
- - [x] update field en schema temporal
118
- - [x] update schema
119
- - [x] delete field
120
- - [x] delete schema
121
- - [ ] create field con `config`
122
-
123
- Fallos observados:
124
-
125
- - `schemas fields create` con `config` devuelve `400`
126
- - el backend responde `reason=schema_field_create_request_invalid`, pero la CLI lo aplana a `unknown_error`
127
-
128
- ## Records E2E
129
-
130
- Estado: `PARTIAL`
131
-
132
- Schema real usado:
133
-
134
- - `contacts`
135
- - id: `2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e`
136
-
137
- Records temporales usados:
138
-
139
- - `038efec2-73ef-4f7a-a8fe-b30990ff923e`
140
- - `76d5fdce-5bfa-4a0d-809b-ab6d97237c99`
141
-
142
- - [x] create record sobre schema real existente
143
- - [x] delete record sobre schema real existente
144
- - [x] create record sobre schema temporal recién creado
145
- - [ ] query real sobre schema temporal
146
- - [x] update real sobre schema temporal
147
- - [x] delete real sobre schema temporal
148
-
149
- Nota:
150
-
151
- - el rojo anterior de `records create` sobre schema temporal ya no reproduce tras los últimos fixes
152
- - `records create` y `records query` siguen fallando si se usa el slug del schema temporal aunque la ayuda diga `schema uuid or slug`
153
- - el backend responde `reason=schema_id_invalid` y pide UUID real en el path `schemaId`; no es un slug que resuelva la CLI en esas rutas
154
- - `records query` sobre schema temporal funciona por UUID y con `--where`, pero sin filtro devolvió `data: []` aunque el record existía
155
-
156
- ## Comments E2E
157
-
158
- Estado: `PASS`
159
-
160
- - [x] list comments sobre record real
161
- - [x] create comment sobre record real
162
- - [x] create comment sobre schema `commentable`
163
- - [x] list comment en schema de prueba
164
-
165
- ## Displays E2E
166
-
167
- Estado: `PARTIAL`
168
-
169
- Run id:
170
-
171
- - `e2e-disp-20260324203805-21463`
172
-
173
- Recursos usados:
174
-
175
- - display id: `1cf8e169-22cc-42ce-9f9f-9908fc2f9a00`
176
- - variable id: `a6f156ab-8394-4315-ba33-d268eec2fffe`
177
-
178
- - [x] create display
179
- - [x] get display
180
- - [x] get layout
181
- - [x] create tab con layout compatible (`side_tabs_widgets`)
182
- - [x] create variable
183
- - [x] create widget con `--type table`
184
- - [x] delete variable
185
- - [x] delete created tab
186
- - [x] delete created widget
187
- - [x] list widgets
188
- - [x] get widget
189
- - [x] list tabs
190
- - [x] update display
191
- - [x] update layout
192
- - [ ] create tab en más layouts válidos
193
- - [x] update tab
194
- - [x] delete tab
195
- - [x] list/get/update variable completo
196
- - [x] update widget
197
- - [x] delete widget
198
- - [x] navigation-targets lifecycle
199
- - [x] cross-widget-filter lifecycle
200
- - [x] delete display con cleanup correcto
201
-
202
- Fallos observados:
203
-
204
- - `displays tabs create` devuelve `400` fuera del caso validado `side_tabs_widgets`; en real siguió fallando en `widget_row_tabs` y `top_bar_tabs`
205
-
206
- Nota:
207
-
208
- - `displays widgets create` ya funciona para el caso `--type table`
209
- - `displays tabs create` ya funciona para `side_tabs_widgets`
210
- - los intentos `chart`/`text` siguen sin validarse en real
211
- - `displays delete` ya no reproduce el `500`; en esta tanda el cleanup real quedó OK
212
-
213
- ## Automations E2E
214
-
215
- Estado: `PARTIAL`
216
-
217
- - [x] folders list
218
- - [x] folders create
219
- - [x] folders update
220
- - [x] folders delete
221
- - [x] folders move
222
- - [x] automations list
223
- - [x] automations get
224
- - [ ] automations create
225
- - [ ] automations update
226
- - [x] automations delete
227
- - [x] activate
228
- - [x] deactivate
229
- - [x] trigger get
230
- - [ ] trigger set
231
- - [x] actions list
232
- - [x] actions add
233
- - [ ] actions update
234
- - [x] actions delete
235
- - [x] flow get
236
- - [x] flow set
237
- - [x] webhook get
238
- - [x] webhook set
239
- - [x] webhook delete
240
- - [x] plugins list
241
- - [x] plugins get
242
- - [x] connections list
243
- - [x] connections get
244
- - [ ] connections create
245
- - [x] connections update
246
- - [x] connections delete
247
-
248
- - [x] read-only block on folder writes
249
- - [x] reversible activate/deactivate on existing test automation
250
-
251
- Fallos observados:
252
-
253
- - `automations create` devuelve `400` con `reason=automation_create_payload_invalid`
254
- - `automations update` devuelve `200` pero no aplica la mutación observada en real
255
- - `trigger set`, `actions update` y `connections create` siguen devolviendo `4xx` genéricos en las rutas probadas
256
-
257
- Nota:
258
-
259
- - varias rutas write solo fueron utilizables de forma fiable con `--raw`: `actions add`, `webhook set` y `connections update`
260
- - `connections update` ya no parece romper el parser en la forma `--set path=value`, pero la mutación es parcial: `name` sí cambia y `config.headerName` no
261
- - `automations update` manda `PATCH` con `{"name","description"}`, pero el backend devuelve el recurso con `name` y `description` originales
262
-
263
- ## Flujos Cruzados
264
-
265
- - [x] schema -> record -> comment
266
- - [x] schema -> navigation -> teamspace
267
- - [x] schema -> display
268
- - [ ] schema -> automation
269
-
270
- Notas:
271
-
272
- - `schema -> navigation -> teamspace` quedó validado con schema temporal `e964e712-ec1d-43ca-98a0-55c3631114d4`, folder de navigation `ff639d7d-a715-47e7-b626-240656a5fbad` y folder de teamspace `21807303-d9da-445d-a08e-cebcd9c49535`
273
- - `schema -> display` quedó validado creando un widget table sobre un schema temporal en display `1ebcc70c-1513-4e5c-b3fe-0e9874506e25`
274
- - `schema -> automation` sigue bloqueado porque `automations create` devolvió `400` también con `--trigger-type record_created --trigger-schema <uuid>`
275
-
276
- ## Prioridad Recomendada
277
-
278
- - [x] arreglar `schemas get` por slug
279
- - [x] arreglar `schemas fields update`
280
- - [x] arreglar `comments create`
281
- - [x] arreglar `records create` sobre schema temporal
282
- - [ ] arreglar `schemas fields create` con `config`
283
- - [x] probar `comments create` sobre schema realmente `commentable` como flujo dedicado
284
- - [x] arreglar `displays delete`
285
- - [ ] ampliar `displays tabs` más allá del caso compatible ya validado
286
- - [ ] ampliar `displays widgets` más allá del caso compatible ya validado
287
- - [ ] cerrar E2E de `automations` en `create/update/trigger/actions/connections` sin depender de `--raw`
288
-
289
- ## Estado Global
290
-
291
- - [x] CLI funcional y estable en local
292
- - [x] binario real validado
293
- - [x] varios dominios con E2E verde real
294
- - [x] fallos actuales ya son de integración real, no de scaffolding
295
-
296
- ## Bloqueos Reales Pendientes
297
-
298
- - [ ] `schemas fields create` con `config`
299
- - en real devuelve `400` para `POST /api/v2/schemas/{id}/fields` con `reason=schema_field_create_request_invalid`
300
- - [ ] `automations create`
301
- - en real devuelve `400` con `reason=automation_create_payload_invalid` incluso con payload alineado con la ayuda y con el ejemplo expuesto por la CLI
302
- - [ ] `automations update`
303
- - en real devuelve `200`, pero el objeto sale sin los cambios observados
304
- - [ ] `records create/query` con slug
305
- - en real devuelve `400` con `reason=schema_id_invalid`; esas rutas del backend exigen UUID real en `schemaId`
306
- - [ ] `automations connections update` para paths anidados
307
- - en real acepta el patch y actualiza campos planos como `name`, pero ignora claves anidadas como `config.headerName`
@@ -1,37 +0,0 @@
1
- # CLI pull request checks
2
-
3
- ## Context
4
-
5
- The CLI repository has no GitHub Actions workflow that validates pull
6
- requests. Its documented local quality gate consists of tests, TypeScript type
7
- checking, and a production build.
8
-
9
- ## Decision
10
-
11
- Add `.github/workflows/pr-checks.yml` and run it for pull requests targeting
12
- `main`. The workflow will grant only `contents: read` permission and use one
13
- Ubuntu job so dependencies are installed once.
14
-
15
- The job will:
16
-
17
- 1. Check out the repository.
18
- 2. Set up Node.js 24 with npm dependency caching.
19
- 3. Install the locked dependency graph with `npm ci`.
20
- 4. Run `npm test`.
21
- 5. Run `npm run typecheck`.
22
- 6. Run `npm run build`.
23
-
24
- Each quality check will be a separate step so GitHub identifies the failing
25
- gate directly. A failure in any step will fail the job and prevent subsequent
26
- steps from running.
27
-
28
- ## Scope
29
-
30
- The workflow will not publish packages, deploy artifacts, access secrets,
31
- change versions, run on pushes, or test a Node.js version matrix.
32
-
33
- ## Verification
34
-
35
- Validate the workflow YAML and inspect its trigger, permissions, Node version,
36
- dependency installation, and commands. Run the same three quality checks
37
- locally from the CLI repository before completion.