synthesisui 0.16.434 → 0.16.435
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/commands/import.js +2 -1
- package/dist/report-html.js +74 -6
- package/dist/report-insight.js +33 -0
- package/package.json +1 -1
package/dist/commands/import.js
CHANGED
|
@@ -56,7 +56,7 @@ import { consumersOf, outsideScope, } from "../outside-scope.js";
|
|
|
56
56
|
import { phase, startProgress } from "../progress.js";
|
|
57
57
|
import { repoStateOf } from "../repo-state.js";
|
|
58
58
|
import { relatorioHtml, secoesDe } from "../report-html.js";
|
|
59
|
-
import { abertura, aneis, historiaDeCor, oQueMuda } from "../report-insight.js";
|
|
59
|
+
import { abertura, aneis, historiaDeCor, oQueMuda, passos, } from "../report-insight.js";
|
|
60
60
|
import { runtimeDeclaredVars, runtimeDeclaredVarsIn } from "../runtime-vars.js";
|
|
61
61
|
import { detectStack, resolveDeps, stackVersions } from "../stack.js";
|
|
62
62
|
import { desligarCaptura, ligarCaptura } from "../transcript.js";
|
|
@@ -3793,6 +3793,7 @@ async function mostrarInspecao(c, root, transcrito) {
|
|
|
3793
3793
|
*/
|
|
3794
3794
|
comando: "npx synthesisui@latest import",
|
|
3795
3795
|
muda: oQueMuda(c),
|
|
3796
|
+
passos: passos(),
|
|
3796
3797
|
});
|
|
3797
3798
|
console.log(section("What came out of your files"));
|
|
3798
3799
|
console.log(body(`${paint.strong(`${lidos} of ${total}`)} components came out with a blueprint${pct === null
|
package/dist/report-html.js
CHANGED
|
@@ -113,6 +113,7 @@ ${desenharCor(input.cor)}
|
|
|
113
113
|
${corpo}
|
|
114
114
|
|
|
115
115
|
${desenharMuda(input.muda ?? [], input.comando)}
|
|
116
|
+
${desenharPassos(input.passos ?? [])}
|
|
116
117
|
|
|
117
118
|
<footer>
|
|
118
119
|
<p>Dressed by Halogen v${HALOGEN_VERSION}, a design system from the SynthesisUI gallery.</p>
|
|
@@ -124,6 +125,32 @@ ${desenharMuda(input.muda ?? [], input.comando)}
|
|
|
124
125
|
</html>
|
|
125
126
|
`;
|
|
126
127
|
}
|
|
128
|
+
/**
|
|
129
|
+
* O CAMINHO INTEIRO, numerado, com o que cada comando FAZ antes do que digitar.
|
|
130
|
+
*
|
|
131
|
+
* O botão no topo do bloco não é decoração: quem leu a conta e decidiu adotar tem um alvo único
|
|
132
|
+
* para o olho, e o passo a passo logo abaixo para quando ele perguntar "e depois?". Ele leva para a
|
|
133
|
+
* primeira linha - não para fora da página, porque a página não faz requisição nenhuma.
|
|
134
|
+
*/
|
|
135
|
+
function desenharPassos(passos) {
|
|
136
|
+
if (passos.length === 0)
|
|
137
|
+
return "";
|
|
138
|
+
const itens = passos
|
|
139
|
+
.map((p, i) => ` <li>
|
|
140
|
+
<div class="passo-topo"><b>${i + 1}</b><h3>${escapar(p.titulo)}</h3></div>
|
|
141
|
+
<code class="comando grande">${escapar(p.comando)}</code>
|
|
142
|
+
<p>${escapar(p.porque)}</p>
|
|
143
|
+
</li>`)
|
|
144
|
+
.join("\n");
|
|
145
|
+
return ` <section class="chapter passos" style="--ordem:12">
|
|
146
|
+
<h2><span>How to install it, start to finish</span></h2>
|
|
147
|
+
<p class="callout">Three commands, in this order. Each one says what it does before it says what to type - a command without a stated consequence is somebody pasting into their terminal on faith.</p>
|
|
148
|
+
<a class="botao" href="#passo-1">Install SynthesisUI</a>
|
|
149
|
+
<ol class="lista-passos" id="passo-1">
|
|
150
|
+
${itens}
|
|
151
|
+
</ol>
|
|
152
|
+
</section>`;
|
|
153
|
+
}
|
|
127
154
|
/**
|
|
128
155
|
* A ÚLTIMA COISA QUE ELA LÊ: a conta, e não mais um inventário.
|
|
129
156
|
*
|
|
@@ -398,15 +425,21 @@ body {
|
|
|
398
425
|
.bar-in {
|
|
399
426
|
max-width: 1200px;
|
|
400
427
|
margin-inline: auto;
|
|
401
|
-
padding:
|
|
428
|
+
padding: 0 24px;
|
|
429
|
+
min-height: 64px;
|
|
430
|
+
display: grid;
|
|
431
|
+
grid-template-columns: 230px minmax(0, 1fr);
|
|
432
|
+
gap: 40px;
|
|
433
|
+
align-items: center;
|
|
434
|
+
}
|
|
435
|
+
.bar-repo { margin: 2px 0 0; font-weight: 600; }
|
|
436
|
+
.bar-fim {
|
|
402
437
|
display: flex;
|
|
438
|
+
align-items: center;
|
|
439
|
+
gap: 14px;
|
|
403
440
|
flex-wrap: wrap;
|
|
404
|
-
gap: 8px 24px;
|
|
405
|
-
align-items: baseline;
|
|
406
441
|
justify-content: space-between;
|
|
407
442
|
}
|
|
408
|
-
.bar-repo { margin: 2px 0 0; font-weight: 600; }
|
|
409
|
-
.bar-fim { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
|
|
410
443
|
|
|
411
444
|
/* O COMANDO NO TOPO, sem rolar: quem decidiu adotar no meio da leitura nao volta para procura-lo. */
|
|
412
445
|
.comando {
|
|
@@ -692,10 +725,45 @@ footer { margin-top: 40px; color: var(--ds-color-semantic-muted); font-size: 13p
|
|
|
692
725
|
@keyframes girar { from { --fatia: 0%; } }
|
|
693
726
|
|
|
694
727
|
@media (max-width: 900px) {
|
|
695
|
-
.wrap { grid-template-columns: minmax(0, 1fr); gap:
|
|
728
|
+
.wrap, .bar-in { grid-template-columns: minmax(0, 1fr); gap: 8px; }
|
|
729
|
+
.bar-in { padding-block: 10px; }
|
|
696
730
|
.lado { position: static; max-height: none; padding-bottom: 20px; }
|
|
697
731
|
}
|
|
698
732
|
|
|
733
|
+
/* O BOTAO: um alvo unico para quem leu a conta e decidiu. Ele leva para o primeiro passo DENTRO da
|
|
734
|
+
pagina - sair para a internet contradiria o arquivo que nao faz requisicao nenhuma. */
|
|
735
|
+
.botao {
|
|
736
|
+
display: inline-block;
|
|
737
|
+
margin: 4px 0 20px;
|
|
738
|
+
padding: 12px 22px;
|
|
739
|
+
border-radius: var(--ds-radius-lg, 12px);
|
|
740
|
+
background: var(--ds-color-semantic-accent);
|
|
741
|
+
color: var(--ds-color-semantic-canvas);
|
|
742
|
+
font-weight: 600;
|
|
743
|
+
font-size: 14px;
|
|
744
|
+
text-decoration: none;
|
|
745
|
+
}
|
|
746
|
+
.botao:hover { opacity: 0.9; }
|
|
747
|
+
|
|
748
|
+
.lista-passos { list-style: none; margin: 0; padding: 0; display: grid; gap: 22px; }
|
|
749
|
+
.lista-passos li {
|
|
750
|
+
border-left: 2px solid var(--ds-color-semantic-border);
|
|
751
|
+
padding-left: 18px;
|
|
752
|
+
}
|
|
753
|
+
.passo-topo { display: flex; align-items: center; gap: 10px; }
|
|
754
|
+
.passo-topo b {
|
|
755
|
+
width: 22px;
|
|
756
|
+
height: 22px;
|
|
757
|
+
border-radius: 50%;
|
|
758
|
+
display: grid;
|
|
759
|
+
place-items: center;
|
|
760
|
+
font-size: 12px;
|
|
761
|
+
background: var(--ds-color-semantic-accent);
|
|
762
|
+
color: var(--ds-color-semantic-canvas);
|
|
763
|
+
}
|
|
764
|
+
.passo-topo h3 { margin: 0; font-size: 15px; }
|
|
765
|
+
.lista-passos p { margin: 10px 0 0; color: var(--ds-color-semantic-muted); font-size: 14px; }
|
|
766
|
+
|
|
699
767
|
@media print {
|
|
700
768
|
.bar { position: static; }
|
|
701
769
|
nav { display: none; }
|
package/dist/report-insight.js
CHANGED
|
@@ -169,3 +169,36 @@ export function oQueMuda(c) {
|
|
|
169
169
|
linhas.push("And it stops coming back: once the system is in the repository, the check runs after every file your agent writes and catches a value that drifts off your own scale, before it ships.");
|
|
170
170
|
return linhas;
|
|
171
171
|
}
|
|
172
|
+
/**
|
|
173
|
+
* O PASSO A PASSO INTEIRO, do login ao import (pedido dele, 18/09).
|
|
174
|
+
*
|
|
175
|
+
* O QUE O CLIENTE GANHA: ela termina a leitura sabendo exatamente o que digitar, na ordem, sem
|
|
176
|
+
* abrir documentação nenhuma. Cada passo diz o que FAZ antes de dizer o que digitar - um comando
|
|
177
|
+
* sem consequência declarada é uma pessoa colando algo no terminal dela por fé.
|
|
178
|
+
*
|
|
179
|
+
* A ORDEM NÃO É GOSTO, é a única que funciona: o `connect` instala hook, ferramentas e skills, e um
|
|
180
|
+
* agente só os enxerga numa sessão iniciada DEPOIS; e o `import` precisa do token que o `login`
|
|
181
|
+
* deixa nesta máquina - sem ele a leitura sobe e morre num 401 três passos adiante.
|
|
182
|
+
*
|
|
183
|
+
* ELE É FIXO PORQUE A ESTEIRA É FIXA: estes três comandos são os mesmos em qualquer projeto, e é
|
|
184
|
+
* exatamente por isso que eles podem ser escritos aqui sem medir nada do repositório dela.
|
|
185
|
+
*/
|
|
186
|
+
export function passos() {
|
|
187
|
+
return [
|
|
188
|
+
{
|
|
189
|
+
comando: "npx synthesisui@latest login",
|
|
190
|
+
titulo: "Let this machine in",
|
|
191
|
+
porque: "Opens a page that already knows you and leaves a token in ~/.synthesisui/ on this computer. It is one click on a code - there is no account to fill in halfway through a terminal.",
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
comando: "npx synthesisui@latest connect",
|
|
195
|
+
titulo: "Wire your agent",
|
|
196
|
+
porque: "Installs the check that runs after every file your agent writes, the tools it can query, and the skills that know this pipeline. Nothing of your code is touched or sent. Run it before you open the agent - a session only picks these up when it starts.",
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
comando: "npx synthesisui@latest import",
|
|
200
|
+
titulo: "Turn your code into blueprints",
|
|
201
|
+
porque: "Reads the same values you saw above and writes them down as your design system, in your own vocabulary. From here your agent reads them before it writes anything, so consistency becomes something the project knows rather than something you remember.",
|
|
202
|
+
},
|
|
203
|
+
];
|
|
204
|
+
}
|
package/package.json
CHANGED