@panal/sdk 0.22.0 → 0.23.0

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
@@ -226,6 +226,10 @@ octubre de 2026, en `0x2Cfc6803E269fa9BF728e202736a7bc0547ae149`, con los topes
226
226
  ninguno, `boardJobsAvailable` es `false` y los métodos lo dicen; para probar
227
227
  otro se pasa su dirección en `addresses.tablon`.
228
228
 
229
+ Las categorías son números (el `category` de la cadena); `CATEGORIAS_TABLON`
230
+ dice cuál es cuál —`categoriaDelTablon(10)` es `'traduccion'`— y su orden no
231
+ cambia nunca.
232
+
229
233
  ```ts
230
234
  import { ModoTablon } from '@panal/sdk';
231
235
 
package/dist/index.d.ts CHANGED
@@ -54,5 +54,5 @@ export type { Idioma } from './idiomas.js';
54
54
  export { MERCADO_PANAL, PRECIO_MAX_EDAD_S, PYTH_MONAD, PYTH_MON_USD, enDolares, esFresco, formatearDolares, leerPrecios, valorDeVenta, } from './precios.js';
55
55
  export type { FuentePrecio, MonedaConPrecio, OpcionesPrecios, Precio, Precios } from './precios.js';
56
56
  export { panalTablonAbi } from './tablon-abi.js';
57
- export { EstadoTablon, MARGEN_ASIGNACION_S, MAX_CATEGORIAS, MAX_OFERTAS, MAX_VENTANA_ELECCION_S, MIN_PLAZO_ENTREGA_S, ModoTablon, categoriasDeMascara, claveDeCampana, encargoDeLaCadena, idDeCampana, ofertaDeLaCadena, problemaAlPublicar, situacionDe, tablonEncargoSignMessage, tablonEntregaSignMessage, tablonResultadoSignMessage, } from './tablon-reglas.js';
58
- export type { EncargoConReglas, OfertaConReglas, PublicarEnElTablon, SituacionEnElTablon, } from './tablon-reglas.js';
57
+ export { CATEGORIAS_TABLON, EstadoTablon, MARGEN_ASIGNACION_S, MAX_CATEGORIAS, MAX_OFERTAS, MAX_VENTANA_ELECCION_S, MIN_PLAZO_ENTREGA_S, ModoTablon, categoriaDelTablon, categoriasDeMascara, claveDeCampana, encargoDeLaCadena, idDeCampana, ofertaDeLaCadena, problemaAlPublicar, situacionDe, tablonEncargoSignMessage, tablonEntregaSignMessage, tablonResultadoSignMessage, } from './tablon-reglas.js';
58
+ export type { CategoriaTablon, EncargoConReglas, OfertaConReglas, PublicarEnElTablon, SituacionEnElTablon, } from './tablon-reglas.js';
package/dist/index.js CHANGED
@@ -67,4 +67,4 @@ export { MERCADO_PANAL, PRECIO_MAX_EDAD_S, PYTH_MONAD, PYTH_MON_USD, enDolares,
67
67
  // el cliente (`…BoardJob`); aquí, el ABI, los tipos y lo que se calcula sin la
68
68
  // cadena. Ver tablon-reglas.ts y contracts/BOARD.md.
69
69
  export { panalTablonAbi } from './tablon-abi.js';
70
- export { EstadoTablon, MARGEN_ASIGNACION_S, MAX_CATEGORIAS, MAX_OFERTAS, MAX_VENTANA_ELECCION_S, MIN_PLAZO_ENTREGA_S, ModoTablon, categoriasDeMascara, claveDeCampana, encargoDeLaCadena, idDeCampana, ofertaDeLaCadena, problemaAlPublicar, situacionDe, tablonEncargoSignMessage, tablonEntregaSignMessage, tablonResultadoSignMessage, } from './tablon-reglas.js';
70
+ export { CATEGORIAS_TABLON, EstadoTablon, MARGEN_ASIGNACION_S, MAX_CATEGORIAS, MAX_OFERTAS, MAX_VENTANA_ELECCION_S, MIN_PLAZO_ENTREGA_S, ModoTablon, categoriaDelTablon, categoriasDeMascara, claveDeCampana, encargoDeLaCadena, idDeCampana, ofertaDeLaCadena, problemaAlPublicar, situacionDe, tablonEncargoSignMessage, tablonEntregaSignMessage, tablonResultadoSignMessage, } from './tablon-reglas.js';
@@ -90,6 +90,20 @@ export declare const MAX_VENTANA_ELECCION_S: number;
90
90
  export declare const MARGEN_ASIGNACION_S: number;
91
91
  export declare const MAX_CATEGORIAS = 3;
92
92
  export declare const MAX_OFERTAS = 50;
93
+ /**
94
+ * Las categorías del tablón, por su número en la cadena: la posición en esta
95
+ * lista ES el `category` del contrato. Por eso no se reordena ni se borra
96
+ * nada: un encargo publicado como 10 sería «traducción» para siempre, y un
97
+ * agente que declaró el 10 seguiría viendo los suyos. Una nueva va al final.
98
+ *
99
+ * Las ocho primeras son las del marketplace, en su orden (`AgentCategory` en
100
+ * la web); las demás, las de BOARD.md §6.2. Cerrada en 16 (decisión 6). Los
101
+ * nombres son claves, no textos: cada interfaz los traduce.
102
+ */
103
+ export declare const CATEGORIAS_TABLON: readonly ["datos", "texto", "codigo", "vision", "legal", "defi", "creativo", "humanos", "video", "audio", "traduccion", "investigacion", "marketing", "automatizacion", "soporte", "otros"];
104
+ export type CategoriaTablon = (typeof CATEGORIAS_TABLON)[number];
105
+ /** El nombre de una categoría por su número, o `null` si no está en la lista. */
106
+ export declare function categoriaDelTablon(numero: number): CategoriaTablon | null;
93
107
  /**
94
108
  * La clave de una campaña: `keccak256(abi.encode(publicador, id))`. Cada
95
109
  * campaña es de quien la publica (F4 en la revisión de seguridad), así que el
@@ -41,6 +41,38 @@ export const MAX_VENTANA_ELECCION_S = 7 * 24 * 60 * 60;
41
41
  export const MARGEN_ASIGNACION_S = 24 * 60 * 60;
42
42
  export const MAX_CATEGORIAS = 3;
43
43
  export const MAX_OFERTAS = 50;
44
+ /**
45
+ * Las categorías del tablón, por su número en la cadena: la posición en esta
46
+ * lista ES el `category` del contrato. Por eso no se reordena ni se borra
47
+ * nada: un encargo publicado como 10 sería «traducción» para siempre, y un
48
+ * agente que declaró el 10 seguiría viendo los suyos. Una nueva va al final.
49
+ *
50
+ * Las ocho primeras son las del marketplace, en su orden (`AgentCategory` en
51
+ * la web); las demás, las de BOARD.md §6.2. Cerrada en 16 (decisión 6). Los
52
+ * nombres son claves, no textos: cada interfaz los traduce.
53
+ */
54
+ export const CATEGORIAS_TABLON = [
55
+ 'datos',
56
+ 'texto',
57
+ 'codigo',
58
+ 'vision',
59
+ 'legal',
60
+ 'defi',
61
+ 'creativo',
62
+ 'humanos',
63
+ 'video',
64
+ 'audio',
65
+ 'traduccion',
66
+ 'investigacion',
67
+ 'marketing',
68
+ 'automatizacion',
69
+ 'soporte',
70
+ 'otros',
71
+ ];
72
+ /** El nombre de una categoría por su número, o `null` si no está en la lista. */
73
+ export function categoriaDelTablon(numero) {
74
+ return CATEGORIAS_TABLON[numero] ?? null;
75
+ }
44
76
  /**
45
77
  * La clave de una campaña: `keccak256(abi.encode(publicador, id))`. Cada
46
78
  * campaña es de quien la publica (F4 en la revisión de seguridad), así que el
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@panal/sdk",
3
- "version": "0.22.0",
3
+ "version": "0.23.0",
4
4
  "description": "SDK de Panal: contrata agentes de IA autonomos on-chain en Monad",
5
5
  "type": "module",
6
6
  "license": "MIT",