panal-mcp 0.11.0 → 0.11.1

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/README.md CHANGED
@@ -80,11 +80,11 @@ Un agente puede vender el mismo trabajo en varios tamaños, cada uno con su prec
80
80
  de texto. `panal_get_agent` los lista:
81
81
 
82
82
  ```
83
- Per task: 0.03 MON (escrow, with deadline and dispute window)
83
+ Per task: 1 MON (escrow, with deadline and dispute window)
84
84
  Sizes (3) — pass the one the person picks as `tier` to panal_quote_hire:
85
- · Una lectura — 0.03 MON — Un fichero y lo que se lee dentro de él.
86
- · Las costuras — 0.09 MON — Varios ficheros: lo que falla entre ellos. — up to 60000 chars
87
- · El repositorio entero — 0.3 MON — Cada camino de la entrada al efecto. — up to 120000 chars
85
+ · Una lectura — 1 MON — Un fichero y lo que se lee dentro de él.
86
+ · Las costuras — 2 MON — Varios ficheros: lo que falla entre ellos. — up to 60000 chars
87
+ · El repositorio entero — 4 MON — Cada camino de la entrada al efecto. — up to 120000 chars
88
88
  ```
89
89
 
90
90
  Y `panal_quote_hire` acepta un `tier` con el que se eligió: vale el nombre, el precio o el
package/dist/server.js CHANGED
@@ -613,6 +613,22 @@ const WRITE_TOOLS = [
613
613
  // Esto —con el manifiesto dentro— es lo que se hashea y lo que hay que
614
614
  // volver a entregar palabra por palabra si el envío falla.
615
615
  const brief = appendAttachmentsManifest(briefPedido, adjuntos.map((a) => a.file));
616
+ // ---- Sin canal no se presupuesta ------------------------------------
617
+ //
618
+ // El brief se entrega DESPUÉS de crear la tarea. Si la ficha no publica
619
+ // `bot:`, no hay dónde entregarlo: contratar dejaría el pago bloqueado en
620
+ // una tarea que nadie puede empezar, y el cliente lo descubriría pagando.
621
+ // Aquí no cuesta nada decirlo.
622
+ //
623
+ // Esto NO le exige a nadie montar un servidor: quien vende como persona
624
+ // recibe su buzón al darse de alta —`bot:https://api.panal.lat/buzon/0x…`—
625
+ // y eso ya es un canal publicado. Lo que queda fuera es una ficha
626
+ // registrada y dejada a medias.
627
+ if (!agent.metadata.botUrl) {
628
+ return (`${agent.metadata.name || address} publishes no endpoint —no "bot:" in its on-chain card— so ` +
629
+ `there is nowhere to send the job after paying, and the payment would sit locked until the ` +
630
+ `deadline. Nothing was quoted and nothing was spent.`);
631
+ }
616
632
  const symbol = symbolOf(agent.currency);
617
633
  // ---- La ficha, una sola vez -----------------------------------------
618
634
  //
@@ -621,8 +637,9 @@ const WRITE_TOOLS = [
621
637
  // presupuesto porque el importe ya no es siempre el precio del registro:
622
638
  // con niveles, lo que se bloquea es el del nivel elegido, y comprobar el
623
639
  // tope contra un número que todavía no se sabe no comprueba nada.
640
+ // Ya no puede faltar: sin `bot:` se ha vuelto arriba.
624
641
  let limites = { alcanzable: null, maxBriefChars: null, niveles: [] };
625
- if (agent.metadata.botUrl) {
642
+ {
626
643
  limites = await fetchAgentLimits(agent.metadata.botUrl);
627
644
  // Que el endpoint no conteste descalifica el encargo entero: el brief se
628
645
  // entrega DESPUÉS de crear la tarea, así que contratar ahora dejaría el
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "panal-mcp",
3
- "version": "0.11.0",
3
+ "version": "0.11.1",
4
4
  "description": "Servidor MCP de Panal: busca y contrata agentes de IA on-chain desde Claude",
5
5
  "type": "module",
6
6
  "license": "MIT",