shadok-ai 0.2.29 → 0.2.31
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/package.json +1 -1
- package/public/index.html +41 -12
package/package.json
CHANGED
package/public/index.html
CHANGED
|
@@ -843,7 +843,28 @@
|
|
|
843
843
|
.freetext-row { display: flex; gap: 8px; width: 100%; }
|
|
844
844
|
.freetext-row input { flex: 1; }
|
|
845
845
|
#thinking { display: none; align-self: flex-start; color: var(--text-dim); font-family: var(--mono); font-size: 12.5px; padding: 0 22px 6px; }
|
|
846
|
-
#thinking.visible { display:
|
|
846
|
+
#thinking.visible { display: flex; align-items: center; gap: 6px; }
|
|
847
|
+
/* Texte qui scintille (balayage ambre) + trois points qui rebondissent. */
|
|
848
|
+
#thinking .tw-text {
|
|
849
|
+
background: linear-gradient(90deg, var(--text-dim) 30%, var(--phosphor) 50%, var(--text-dim) 70%);
|
|
850
|
+
background-size: 220% 100%;
|
|
851
|
+
-webkit-background-clip: text; background-clip: text;
|
|
852
|
+
-webkit-text-fill-color: transparent; color: transparent;
|
|
853
|
+
animation: tw-shimmer 1.9s linear infinite;
|
|
854
|
+
}
|
|
855
|
+
@keyframes tw-shimmer { from { background-position: 200% 0; } to { background-position: -200% 0; } }
|
|
856
|
+
#thinking .tw-dots { display: inline-flex; align-items: flex-end; gap: 3px; }
|
|
857
|
+
#thinking .tw-dots i {
|
|
858
|
+
width: 3px; height: 3px; border-radius: 50%; background: var(--amber);
|
|
859
|
+
opacity: 0.3; animation: tw-dot 1.2s ease-in-out infinite;
|
|
860
|
+
}
|
|
861
|
+
#thinking .tw-dots i:nth-child(2) { animation-delay: 0.18s; }
|
|
862
|
+
#thinking .tw-dots i:nth-child(3) { animation-delay: 0.36s; }
|
|
863
|
+
@keyframes tw-dot { 0%, 100% { opacity: 0.25; transform: translateY(0); } 40% { opacity: 1; transform: translateY(-3px); } }
|
|
864
|
+
@media (prefers-reduced-motion: reduce) {
|
|
865
|
+
#thinking .tw-text { animation: none; color: var(--phosphor); -webkit-text-fill-color: currentColor; }
|
|
866
|
+
#thinking .tw-dots i { animation: none; opacity: 0.6; }
|
|
867
|
+
}
|
|
847
868
|
|
|
848
869
|
/* Composer */
|
|
849
870
|
#composer {
|
|
@@ -1287,10 +1308,6 @@
|
|
|
1287
1308
|
<span class="label">Name</span>
|
|
1288
1309
|
<input type="text" id="nameInput" placeholder="agent" autocomplete="off" spellcheck="false">
|
|
1289
1310
|
</div>
|
|
1290
|
-
<div class="field">
|
|
1291
|
-
<span class="label">Working directory</span>
|
|
1292
|
-
<input type="text" id="cwdInput" placeholder="/path/to/project">
|
|
1293
|
-
</div>
|
|
1294
1311
|
<label class="check" id="worktreeField">
|
|
1295
1312
|
<input type="checkbox" id="worktreeInput" checked>
|
|
1296
1313
|
<span>Isolate in a git worktree <span class="check-hint">— the agent edits a fresh branch; review & merge from the Diff panel. Auto-removed on close if unused, kept if it has changes. (new sessions only)</span></span>
|
|
@@ -1300,7 +1317,11 @@
|
|
|
1300
1317
|
<span>Mirror to Telegram <span class="check-hint">— gives this agent its own topic in the board group, so you can follow it and reply from your phone. Off by default; switchable later from the channel menu.</span></span>
|
|
1301
1318
|
</label>
|
|
1302
1319
|
<details class="fold" id="advancedField">
|
|
1303
|
-
<summary>Advanced — resume an existing session</summary>
|
|
1320
|
+
<summary>Advanced — working directory, resume an existing session</summary>
|
|
1321
|
+
<div class="field">
|
|
1322
|
+
<span class="label">Working directory <span class="check-hint">— defaults to where shadok-ai runs; point at another repo for a multi-project agent.</span></span>
|
|
1323
|
+
<input type="text" id="cwdInput" placeholder="/path/to/project">
|
|
1324
|
+
</div>
|
|
1304
1325
|
<div class="field">
|
|
1305
1326
|
<div class="radio-row">
|
|
1306
1327
|
<label><input type="radio" name="mode" value="new" checked> new session</label>
|
|
@@ -1471,7 +1492,7 @@
|
|
|
1471
1492
|
</div>
|
|
1472
1493
|
|
|
1473
1494
|
<div id="transcripts"></div>
|
|
1474
|
-
<div id="thinking">
|
|
1495
|
+
<div id="thinking"><span class="tw-text">Shadok is working</span><span class="tw-dots"><i></i><i></i><i></i></span></div>
|
|
1475
1496
|
|
|
1476
1497
|
<form id="composer" hidden>
|
|
1477
1498
|
<textarea id="promptInput" rows="1"
|
|
@@ -3302,10 +3323,16 @@
|
|
|
3302
3323
|
* à la place de la conversation qu'on regardait.
|
|
3303
3324
|
*/
|
|
3304
3325
|
function openSetup() {
|
|
3305
|
-
//
|
|
3306
|
-
|
|
3307
|
-
|
|
3308
|
-
|
|
3326
|
+
// Défauts PRÉVISIBLES à chaque ouverture. Le navigateur restaure l'état des
|
|
3327
|
+
// champs de formulaire (un mode "continue"/"resume" choisi une fois, une case
|
|
3328
|
+
// worktree décochée, un cwd de worktree) — c'est ce qui faisait retomber
|
|
3329
|
+
// « créer un agent » dans le répertoire de base, en silence. On réaffirme le
|
|
3330
|
+
// défaut : session NEUVE, worktree isolé, depuis la base.
|
|
3331
|
+
const newRadio = document.querySelector('input[name="mode"][value="new"]');
|
|
3332
|
+
newRadio.checked = true;
|
|
3333
|
+
newRadio.dispatchEvent(new Event("change")); // réactive worktree/profil, cache le resume
|
|
3334
|
+
$("worktreeInput").checked = true;
|
|
3335
|
+
$("cwdInput").value = serverCwd || "";
|
|
3309
3336
|
const last = localStorage.getItem("cp.session");
|
|
3310
3337
|
if (last && !$("resumeInput").value) $("resumeInput").value = last;
|
|
3311
3338
|
$("startBtn").disabled = false;
|
|
@@ -3320,7 +3347,9 @@
|
|
|
3320
3347
|
refreshRecoverList();
|
|
3321
3348
|
refreshLiveList();
|
|
3322
3349
|
$("setupOverlay").hidden = false;
|
|
3323
|
-
|
|
3350
|
+
// Le cwd est désormais dans le fold « Advanced » (replié) : on focus le nom,
|
|
3351
|
+
// premier champ du flux principal.
|
|
3352
|
+
$("nameInput").focus();
|
|
3324
3353
|
}
|
|
3325
3354
|
function closeSetup() { $("setupOverlay").hidden = true; }
|
|
3326
3355
|
|