@kigo-dev/sindri 0.1.8 → 0.1.9
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 +11 -7
- package/manifest.json +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -35984,7 +35984,9 @@ Tasks: when something must happen on its own on a schedule (sync data from anoth
|
|
|
35984
35984
|
|
|
35985
35985
|
Design guide: before creating or changing any page, component, layout, style or copy, call \`design_guide\` for the app, first without \`topic\` (the overview and the list of topics), then with the topic that matches what you are building (admin, landing, mini-app, mobile; tokens, writing and checklist when relevant). Follow it; it is for you, never paste its content to the builder. If it answers \`no_design_guide\`, run \`update_template\` once and call \`design_guide\` again.
|
|
35986
35986
|
|
|
35987
|
-
|
|
35987
|
+
Data: seeds and example rows are synthetic (never paste real emails, plates or phone numbers into seeds). Apps never touch Kigo's own databases, APIs or buckets; when the builder needs them, build with synthetic data and say "eso se pide a desarrollo". An app may read an external service the builder already uses (Linear, a Google Sheet) with the builder's own credential through \`set_secret\`; that data is real, so bring only what the screen needs, do not copy personal data (names, emails, phones) unless the app truly needs it, and tell the builder that anyone at Kigo with the link sees it.
|
|
35988
|
+
|
|
35989
|
+
Rules: one author per app (the builder); never touch files outside the app folder; never read .env.local back to the builder; do not edit middleware.ts, next.config.ts or package.json scripts (publish will refuse them); apps work Monday to Friday 9:05 am to midnight Mexico City time and the link says so outside those hours. When something fails, explain in one line what to do next; never blame the builder.`;
|
|
35988
35990
|
|
|
35989
35991
|
// src/tools.ts
|
|
35990
35992
|
import fs10 from "node:fs/promises";
|
|
@@ -36331,6 +36333,7 @@ var ApiError = class extends Error {
|
|
|
36331
36333
|
status;
|
|
36332
36334
|
code;
|
|
36333
36335
|
};
|
|
36336
|
+
var WAKE_BUDGET_MS = 195e3;
|
|
36334
36337
|
var ApiClient = class {
|
|
36335
36338
|
constructor(cfg, fetchImpl = fetch) {
|
|
36336
36339
|
this.cfg = cfg;
|
|
@@ -36403,11 +36406,12 @@ var ApiClient = class {
|
|
|
36403
36406
|
method: "POST",
|
|
36404
36407
|
headers: await this.headers(),
|
|
36405
36408
|
body: form,
|
|
36406
|
-
signal: AbortSignal.timeout(32e4)
|
|
36409
|
+
signal: AbortSignal.timeout(WAKE_BUDGET_MS + 32e4)
|
|
36407
36410
|
});
|
|
36408
36411
|
if (!res.ok) throw await this.error(res);
|
|
36409
36412
|
return await res.json();
|
|
36410
36413
|
}
|
|
36414
|
+
/** `timeoutMs` is the operation's own budget; the wake budget goes on top of it (see WAKE_BUDGET_MS). */
|
|
36411
36415
|
async json(method, p, body, timeoutMs = 3e4) {
|
|
36412
36416
|
const headers = await this.headers();
|
|
36413
36417
|
if (body !== void 0) headers.set("Content-Type", "application/json");
|
|
@@ -36415,7 +36419,7 @@ var ApiClient = class {
|
|
|
36415
36419
|
method,
|
|
36416
36420
|
headers,
|
|
36417
36421
|
body: body === void 0 ? null : JSON.stringify(body),
|
|
36418
|
-
signal: AbortSignal.timeout(timeoutMs)
|
|
36422
|
+
signal: AbortSignal.timeout(WAKE_BUDGET_MS + timeoutMs)
|
|
36419
36423
|
});
|
|
36420
36424
|
if (!res.ok) throw await this.error(res);
|
|
36421
36425
|
if (res.status === 204) return void 0;
|
|
@@ -37247,7 +37251,7 @@ var DESCRIPTIONS = {
|
|
|
37247
37251
|
},
|
|
37248
37252
|
preview: {
|
|
37249
37253
|
title: "Preview locally",
|
|
37250
|
-
description: "Runs the app on this computer with
|
|
37254
|
+
description: "Runs the app on this computer with its local database (seed data plus whatever its tasks synced) and opens it in the browser (http://127.0.0.1:<port>). Reuses a running preview. Use it to show the builder changes before publishing; edits reload automatically."
|
|
37251
37255
|
},
|
|
37252
37256
|
publish: {
|
|
37253
37257
|
title: "Publish to Sindri",
|
|
@@ -37453,7 +37457,7 @@ function createTools(deps) {
|
|
|
37453
37457
|
await openInBrowser(cfg, r.url);
|
|
37454
37458
|
return {
|
|
37455
37459
|
ok: true,
|
|
37456
|
-
summary: r.reused ? `"${a.app}" ya estaba corriendo; la abr\xED en ${r.url}. Los cambios se ven solos al guardar.` : `"${a.app}" est\xE1 corriendo en ${r.url} con
|
|
37460
|
+
summary: r.reused ? `"${a.app}" ya estaba corriendo; la abr\xED en ${r.url}. Los cambios se ven solos al guardar.` : `"${a.app}" est\xE1 corriendo en ${r.url} con su base local. Los cambios se ven solos al guardar.`,
|
|
37457
37461
|
preview_url: r.url,
|
|
37458
37462
|
port: r.port,
|
|
37459
37463
|
reused: r.reused
|
|
@@ -37833,7 +37837,7 @@ function createTools(deps) {
|
|
|
37833
37837
|
});
|
|
37834
37838
|
return { setup, login, create_app, preview, publish, status, list_apps, versions, rollback, update_template, rename_app, delete_app, share, help, design_guide, set_secret, list_secrets, delete_secret, run_task, logout };
|
|
37835
37839
|
}
|
|
37836
|
-
var HELP_SUMMARY = "Sindri te ayuda a crear apps internas peque\xF1as para tu equipo en minutos,
|
|
37840
|
+
var HELP_SUMMARY = "Sindri te ayuda a crear apps internas peque\xF1as para tu equipo en minutos, sin escribir c\xF3digo: t\xFA me cuentas qu\xE9 necesitas y yo la construyo. Puedes pedirme crear una app, verla en tu computadora antes de publicarla, publicarla, cambiarle el nombre o la direcci\xF3n, volver a una versi\xF3n anterior, compartirla en Slack, actualizar su plantilla o borrarla. Ten en cuenta: las apps no se conectan a las bases ni a los sistemas de Kigo, eso se pide a desarrollo; s\xED pueden leer servicios que ya usas, como Linear o una hoja de Google, con tu propia clave, y lo que muestren lo ve cualquiera de Kigo con el enlace. Funcionan de lunes a viernes de 9:05 a 24:00, hora de la Ciudad de M\xE9xico; cada app la edita solo quien la cre\xF3; y lo que deba llegar a toda la empresa se pide a desarrollo. Tus apps y sus versiones est\xE1n en https://sindri.kigo.dev.";
|
|
37837
37841
|
async function moveDir(from, to) {
|
|
37838
37842
|
await fs10.mkdir(path10.dirname(to), { recursive: true });
|
|
37839
37843
|
try {
|
|
@@ -37910,7 +37914,7 @@ function when(iso, now = /* @__PURE__ */ new Date()) {
|
|
|
37910
37914
|
}
|
|
37911
37915
|
|
|
37912
37916
|
// src/index.ts
|
|
37913
|
-
var VERSION = "0.1.
|
|
37917
|
+
var VERSION = "0.1.9";
|
|
37914
37918
|
function registerTools(server, tools) {
|
|
37915
37919
|
for (const name of Object.keys(SCHEMAS)) {
|
|
37916
37920
|
const meta3 = DESCRIPTIONS[name];
|
package/manifest.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"manifest_version": "0.2",
|
|
3
3
|
"name": "sindri",
|
|
4
4
|
"display_name": "Kigo Sindri",
|
|
5
|
-
"version": "0.1.
|
|
5
|
+
"version": "0.1.9",
|
|
6
6
|
"description": "Create, preview and publish Kigo internal apps from your Claude.",
|
|
7
7
|
"long_description": "Sindri lets anyone at Kigo build small internal apps by talking to Claude. Claude edits the app on your computer; this connector installs what is needed, runs the app locally with test data, publishes it at <name>.sindri.kigo.dev and keeps versions. Sign in with your @cargomovil.com account.",
|
|
8
8
|
"author": {
|
package/package.json
CHANGED