@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 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
- Rules: synthetic data only (never paste real emails, plates or phone numbers into seeds); 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.`;
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 test data 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."
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 datos de prueba. Los cambios se ven solos al guardar.`,
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, con datos de prueba y 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 trabajan con datos sint\xE9ticos, nunca reales; 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.";
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.8";
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.8",
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kigo-dev/sindri",
3
- "version": "0.1.8",
3
+ "version": "0.1.9",
4
4
  "description": "Sindri connector: an MCP server that lets a Kigo PM's Claude create, preview and publish internal apps on Kigo Sindri",
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",