SyncThinkDesignSTD

Experimentos · EXP-001

Encadenar dos proveedores sin intervención humana

Una textura producida por SketchLab entra como material a un mundo de Scene Creator. El orden, la subida de la entrada faltante y el reintento ocurrieron sin intervención.

Fecha
Estado
Verificado
Se relaciona con
F2, M2, I5

Pregunta

¿Puede un proyecto declarar que la salida de un proveedor es la entrada de otro, y que el sistema resuelva el orden y el transporte de los datos sin que una persona intervenga?

Hipótesis

Si las entradas se identifican por el hash de su contenido y el resolutor ordena los pedidos por dependencia, el encadenamiento funciona sin coordinación manual y sin que los binarios viajen dentro del JSON. Es una forma técnica de M2: el consumidor empieza cuando existe su entrada mínima, y un cambio aguas arriba se propaga a lo que depende de él (F2).

Montaje

  • Proyecto: examples/aaa3-chain/chain.experience.json de Experience Creator.
  • Proveedores locales: SketchLab (sketch.png) y Scene Creator (scene.glb), en ramas que implementaban entradas encadenadas.
  • El pedido de Scene Creator declara inputs: [{ name: "albedo", assetId: … }], apuntando a la salida de SketchLab.

Resultado

O1Observación

El GLB producido por Scene Creator incrusta el PNG de SketchLab byte por byte, y su material lo usa como textura. El resolutor ejecutó primero el productor, el proveedor respondió missing_inputs, el cliente subió la imagen y reintentó, todo sin intervención humana.

Limitaciones

  • Una sola ejecución documentada, con proveedores locales y no desplegados.
  • sketch.png necesita un Chromium en el servidor; en un despliegue sin él, la cadena falla en el primer paso.
  • No se probó qué pasa cuando el productor falla a mitad de camino con varios consumidores. El diseño dice que los consumidores no llaman a su proveedor, pero no está medido.

Cómo reproducirlo

# con los dos proveedores corriendo en local
AAA3_SKETCHLAB=http://localhost:3001/api/aaa3 \
AAA3_WORLDFORGE=http://localhost:3002/api/aaa3 \
npx tsx scripts/aaa3-e2e.ts

# o con el resolutor
AAA3_PROVIDERS='{"sketchlab":{"url":"…"},"worldforge":{"url":"…"}}' \
npm run aaa3:resolve -- examples/aaa3-chain/chain.experience.json --out chain.zip
Los repositorios son privados; el procedimiento se publica para cuando dejen de serlo.

← Todos los experimentos