SyncThinkDesignSTD

Experimentos · EXP-001

Encadear dois provedores sem intervenção humana

Uma textura produzida pelo SketchLab entra como material num mundo do Scene Creator. A ordem, o envio da entrada que faltava e a nova tentativa aconteceram sem intervenção.

Data
Estado
Verificado
Relaciona-se com
F2, M2, I5

Pergunta

Um projeto pode declarar que a saída de um provedor é a entrada de outro, e o sistema pode resolver a ordem e o transporte dos dados sem que uma pessoa intervenha?

Hipótese

Se as entradas forem identificadas pelo hash de seu conteúdo e o resolvedor ordenar os pedidos por dependência, o encadeamento funciona sem coordenação manual e sem que os binários viajem dentro do JSON. É uma forma técnica do M2: o consumidor começa quando existe sua entrada mínima, e uma mudança a montante se propaga para o que depende dela (F2).

Montagem

  • Projeto: examples/aaa3-chain/chain.experience.json do Experience Creator.
  • Provedores locais: SketchLab (sketch.png) e Scene Creator (scene.glb), em branches que implementavam entradas encadeadas.
  • O pedido ao Scene Creator declara inputs: [{ name: "albedo", assetId: … }], apontando para a saída do SketchLab.

Resultado

O1Observação

O GLB produzido pelo Scene Creator embute o PNG do SketchLab byte a byte, e seu material o usa como textura. O resolvedor executou primeiro o produtor, o provedor respondeu missing_inputs, o cliente enviou a imagem e tentou de novo, tudo sem intervenção humana.

Limitações

  • Uma única execução documentada, com provedores locais e não implantados.
  • sketch.png precisa de um Chromium no servidor; numa implantação sem ele, a cadeia falha no primeiro passo.
  • Não testamos o que acontece quando o produtor falha no meio do caminho com vários consumidores. O projeto prevê que os consumidores não chamem seu provedor, mas isso não foi medido.

Como reproduzir

# com os dois provedores rodando localmente
AAA3_SKETCHLAB=http://localhost:3001/api/aaa3 \
AAA3_WORLDFORGE=http://localhost:3002/api/aaa3 \
npx tsx scripts/aaa3-e2e.ts

# ou com o resolvedor
AAA3_PROVIDERS='{"sketchlab":{"url":"…"},"worldforge":{"url":"…"}}' \
npm run aaa3:resolve -- examples/aaa3-chain/chain.experience.json --out chain.zip
Os repositórios são privados; o procedimento é publicado para quando deixarem de ser.

← Todos os experimentos