synthesisui 0.16.434 → 0.16.436
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 +93 -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
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
import { FAMILY_SEAM_PREFIX } from "./fonts.js";
|
|
2
|
+
/**
|
|
3
|
+
* A PÁGINA QUE O BOTÃO ABRE (dono, 19/09) - e ela SOMA ao passo a passo, nunca o substitui.
|
|
4
|
+
*
|
|
5
|
+
* Um endereço não é uma requisição: a página desenha inteira sem rede, e o navegador só o segue se
|
|
6
|
+
* a pessoa clicar. É por isso que ele convive com o auto-contido - e é por isso que os três
|
|
7
|
+
* comandos continuam escritos aqui dentro, para quem abrir o arquivo offline.
|
|
8
|
+
*/
|
|
9
|
+
const INSTALL_URL = "https://www.synthesisui.com/install";
|
|
2
10
|
import { HALOGEN_TOKENS, HALOGEN_VERSION } from "./report-theme.js";
|
|
3
11
|
import { semCor } from "./transcript.js";
|
|
4
12
|
/**
|
|
@@ -113,6 +121,7 @@ ${desenharCor(input.cor)}
|
|
|
113
121
|
${corpo}
|
|
114
122
|
|
|
115
123
|
${desenharMuda(input.muda ?? [], input.comando)}
|
|
124
|
+
${desenharPassos(input.passos ?? [])}
|
|
116
125
|
|
|
117
126
|
<footer>
|
|
118
127
|
<p>Dressed by Halogen v${HALOGEN_VERSION}, a design system from the SynthesisUI gallery.</p>
|
|
@@ -124,6 +133,34 @@ ${desenharMuda(input.muda ?? [], input.comando)}
|
|
|
124
133
|
</html>
|
|
125
134
|
`;
|
|
126
135
|
}
|
|
136
|
+
/**
|
|
137
|
+
* O CAMINHO INTEIRO, numerado, com o que cada comando FAZ antes do que digitar.
|
|
138
|
+
*
|
|
139
|
+
* O botão no topo do bloco não é decoração: quem leu a conta e decidiu adotar tem um alvo único
|
|
140
|
+
* para o olho, e o passo a passo logo abaixo para quando ele perguntar "e depois?". Ele leva para a
|
|
141
|
+
* primeira linha - não para fora da página, porque a página não faz requisição nenhuma.
|
|
142
|
+
*/
|
|
143
|
+
function desenharPassos(passos) {
|
|
144
|
+
if (passos.length === 0)
|
|
145
|
+
return "";
|
|
146
|
+
const itens = passos
|
|
147
|
+
.map((p, i) => ` <li>
|
|
148
|
+
<div class="passo-topo"><b>${i + 1}</b><h3>${escapar(p.titulo)}</h3></div>
|
|
149
|
+
<code class="comando grande">${escapar(p.comando)}</code>
|
|
150
|
+
<p>${escapar(p.porque)}</p>
|
|
151
|
+
</li>`)
|
|
152
|
+
.join("\n");
|
|
153
|
+
return ` <section class="chapter passos" style="--ordem:12">
|
|
154
|
+
<div class="passos-topo">
|
|
155
|
+
<h2><span>How to install it, start to finish</span></h2>
|
|
156
|
+
<a class="botao" href="${INSTALL_URL}" target="_blank" rel="noreferrer">Open the install page</a>
|
|
157
|
+
</div>
|
|
158
|
+
<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. They are all here, so this works with no internet at all.</p>
|
|
159
|
+
<ol class="lista-passos" id="passo-1">
|
|
160
|
+
${itens}
|
|
161
|
+
</ol>
|
|
162
|
+
</section>`;
|
|
163
|
+
}
|
|
127
164
|
/**
|
|
128
165
|
* A ÚLTIMA COISA QUE ELA LÊ: a conta, e não mais um inventário.
|
|
129
166
|
*
|
|
@@ -398,15 +435,21 @@ body {
|
|
|
398
435
|
.bar-in {
|
|
399
436
|
max-width: 1200px;
|
|
400
437
|
margin-inline: auto;
|
|
401
|
-
padding:
|
|
438
|
+
padding: 0 24px;
|
|
439
|
+
min-height: 64px;
|
|
440
|
+
display: grid;
|
|
441
|
+
grid-template-columns: 230px minmax(0, 1fr);
|
|
442
|
+
gap: 40px;
|
|
443
|
+
align-items: center;
|
|
444
|
+
}
|
|
445
|
+
.bar-repo { margin: 2px 0 0; font-weight: 600; }
|
|
446
|
+
.bar-fim {
|
|
402
447
|
display: flex;
|
|
448
|
+
align-items: center;
|
|
449
|
+
gap: 14px;
|
|
403
450
|
flex-wrap: wrap;
|
|
404
|
-
gap: 8px 24px;
|
|
405
|
-
align-items: baseline;
|
|
406
451
|
justify-content: space-between;
|
|
407
452
|
}
|
|
408
|
-
.bar-repo { margin: 2px 0 0; font-weight: 600; }
|
|
409
|
-
.bar-fim { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
|
|
410
453
|
|
|
411
454
|
/* O COMANDO NO TOPO, sem rolar: quem decidiu adotar no meio da leitura nao volta para procura-lo. */
|
|
412
455
|
.comando {
|
|
@@ -692,10 +735,54 @@ footer { margin-top: 40px; color: var(--ds-color-semantic-muted); font-size: 13p
|
|
|
692
735
|
@keyframes girar { from { --fatia: 0%; } }
|
|
693
736
|
|
|
694
737
|
@media (max-width: 900px) {
|
|
695
|
-
.wrap { grid-template-columns: minmax(0, 1fr); gap:
|
|
738
|
+
.wrap, .bar-in { grid-template-columns: minmax(0, 1fr); gap: 8px; }
|
|
739
|
+
.bar-in { padding-block: 10px; }
|
|
696
740
|
.lado { position: static; max-height: none; padding-bottom: 20px; }
|
|
697
741
|
}
|
|
698
742
|
|
|
743
|
+
/* O BOTAO: um alvo unico para quem leu a conta e decidiu, no topo direito do capitulo. Ele abre a
|
|
744
|
+
pagina publica de instalacao - e isso nao quebra o auto-contido, porque um endereco so e buscado
|
|
745
|
+
se a pessoa clicar. Os tres comandos seguem escritos aqui embaixo, para quem esta sem rede. */
|
|
746
|
+
.passos-topo {
|
|
747
|
+
display: flex;
|
|
748
|
+
align-items: center;
|
|
749
|
+
justify-content: space-between;
|
|
750
|
+
gap: 16px;
|
|
751
|
+
flex-wrap: wrap;
|
|
752
|
+
}
|
|
753
|
+
.passos-topo h2 { margin-bottom: 0; }
|
|
754
|
+
.botao {
|
|
755
|
+
display: inline-block;
|
|
756
|
+
margin: 0;
|
|
757
|
+
padding: 12px 22px;
|
|
758
|
+
border-radius: var(--ds-radius-lg, 12px);
|
|
759
|
+
background: var(--ds-color-semantic-accent);
|
|
760
|
+
color: var(--ds-color-semantic-canvas);
|
|
761
|
+
font-weight: 600;
|
|
762
|
+
font-size: 14px;
|
|
763
|
+
text-decoration: none;
|
|
764
|
+
}
|
|
765
|
+
.botao:hover { opacity: 0.9; }
|
|
766
|
+
|
|
767
|
+
.lista-passos { list-style: none; margin: 0; padding: 0; display: grid; gap: 22px; }
|
|
768
|
+
.lista-passos li {
|
|
769
|
+
border-left: 2px solid var(--ds-color-semantic-border);
|
|
770
|
+
padding-left: 18px;
|
|
771
|
+
}
|
|
772
|
+
.passo-topo { display: flex; align-items: center; gap: 10px; }
|
|
773
|
+
.passo-topo b {
|
|
774
|
+
width: 22px;
|
|
775
|
+
height: 22px;
|
|
776
|
+
border-radius: 50%;
|
|
777
|
+
display: grid;
|
|
778
|
+
place-items: center;
|
|
779
|
+
font-size: 12px;
|
|
780
|
+
background: var(--ds-color-semantic-accent);
|
|
781
|
+
color: var(--ds-color-semantic-canvas);
|
|
782
|
+
}
|
|
783
|
+
.passo-topo h3 { margin: 0; font-size: 15px; }
|
|
784
|
+
.lista-passos p { margin: 10px 0 0; color: var(--ds-color-semantic-muted); font-size: 14px; }
|
|
785
|
+
|
|
699
786
|
@media print {
|
|
700
787
|
.bar { position: static; }
|
|
701
788
|
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