@lamemind/loom-deck 0.66.1 → 0.68.0
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/README.md +26 -10
- package/dist/actions.js +86 -26
- package/dist/cli.js +51 -6
- package/dist/deck-model.js +3 -3
- package/dist/frame.js +4 -0
- package/dist/glyphs.js +5 -5
- package/dist/hooks.js +36 -0
- package/dist/inbox.js +19 -0
- package/dist/input-modes.js +1 -0
- package/dist/input.js +16 -0
- package/dist/overlays/sheet.js +24 -23
- package/dist/overlays/spawn.js +240 -0
- package/dist/overlays/status.js +2 -2
- package/dist/overlays/wrap.js +2 -2
- package/dist/prompt-catalog.js +1 -1
- package/dist/sane-note.js +115 -0
- package/dist/spawn-catalog.js +338 -0
- package/dist/spawn-config.js +280 -0
- package/dist/spawn.js +69 -157
- package/dist/tasks.js +21 -1
- package/dist/ui/detail-screen.js +1 -1
- package/dist/ui/preview.js +1 -1
- package/dist/ui/screens.js +12 -1
- package/dist/ui/spawn-screen.js +99 -0
- package/dist/viewport.js +35 -0
- package/dist/wrap-scan.js +19 -13
- package/package.json +1 -1
- package/scripts/deck-run +28 -8
- package/scripts/prompt-catalog +17 -3
package/scripts/deck-run
CHANGED
|
@@ -56,6 +56,9 @@
|
|
|
56
56
|
# LOOM_DECK_PROFILE_UUID UUID profilo Ptyxis (default: cc-host)
|
|
57
57
|
# LOOM_DECK_WORKDIR dir di lavoro della tab (default: $PWD)
|
|
58
58
|
# LOOM_DECK_ENTER_PROMPT override del prompt iniziale, {TASK}=TaskID (vince sul kind, tranne `none`)
|
|
59
|
+
# T161: inerte sugli spawn che arrivano dal deck TUI —
|
|
60
|
+
# quelli passano SEMPRE `--prompt`, su cui non ha mai
|
|
61
|
+
# vinto. Resta per le invocazioni a mano e per i test.
|
|
59
62
|
# LOOM_DECK_INTAB_CMD override comando in-tab (default: la sessione CC; usato per i test)
|
|
60
63
|
# LOOM_DECK_STATE_PROFILE PTYXIS_PROFILE annunciata a compass (default: bindings/claude
|
|
61
64
|
# del progetto, letto da dconf; settata a vuoto = nessun annuncio)
|
|
@@ -269,16 +272,25 @@ WORKDIR="${LOOM_DECK_WORKDIR:-$PWD}"
|
|
|
269
272
|
# titolo finisce dentro apici singoli in `bash -lc "claude --name '…'"`, e la
|
|
270
273
|
# nota è testo digitato a mano — enumerare i caratteri pericolosi significa
|
|
271
274
|
# sbagliarne uno, enumerare quelli ammessi no. Restano lettere, cifre, accentate
|
|
272
|
-
# italiane, spazio, trattino, underscore e
|
|
275
|
+
# italiane, spazio, trattino, underscore e sei emoji (sotto); tutto il resto
|
|
273
276
|
# (apici, backslash, `$`, backtick, `;`, quadre, ogni altra emoji…) cade.
|
|
274
277
|
#
|
|
275
|
-
# T156 — le
|
|
276
|
-
#
|
|
277
|
-
#
|
|
278
|
-
#
|
|
279
|
-
# stessa conversazione portava due titoli diversi, senza errore. Le quadre che
|
|
278
|
+
# T156 — le emoji entrano per il PREFISSO del titolo che il deck compone
|
|
279
|
+
# (`🚀 slug`). Senza di loro il prefisso spariva qui e restava nella lista del
|
|
280
|
+
# deck, che riceve la nota grezza dal sidecar `session-tasks.jsonl`: la stessa
|
|
281
|
+
# conversazione portava due titoli diversi, senza errore. Le quadre che
|
|
280
282
|
# delimitavano il prefisso sono cadute col prefisso stesso: l'emoji da sola si
|
|
281
283
|
# stacca già dallo slug.
|
|
284
|
+
# T161 — le sei stanno tutte nei TEMPLATE di titolo del catalogo delle azioni
|
|
285
|
+
# (`SPAWN_ACTIONS` in `src/spawn-catalog.ts`), che il progetto può riscrivere:
|
|
286
|
+
# quattro nominano un'azione su una task (📐🚀📊🏁), 🧹 il file inbox che si
|
|
287
|
+
# drena, 📏 il path che si srotola.
|
|
288
|
+
# Questa whitelist ha un GEMELLO TypeScript (`saneNote` in `src/sane-note.ts`),
|
|
289
|
+
# che riduce il template al salvataggio perché quello che sta nel file di
|
|
290
|
+
# progetto sia quello che la tab mostrerà. I due lati non si leggono a vicenda e
|
|
291
|
+
# vanno cambiati insieme: il custode è il gate di `test/deck-run.test.ts`, che
|
|
292
|
+
# passa la stessa batteria di input a questa funzione e al gemello e pretende
|
|
293
|
+
# l'uguaglianza.
|
|
282
294
|
# La whitelist le nomina una per una e NON apre un intervallo di code point. Due
|
|
283
295
|
# ragioni: un'emoji arriva nella tab solo se il deck la mostra identica in lista,
|
|
284
296
|
# cioè se `sanitize` (`src/width.ts`) la lascia passare invece di renderla `·`, e
|
|
@@ -305,7 +317,7 @@ _sane_note() { # <raw> → nota ridotta, spazi collassati, cap 60 char
|
|
|
305
317
|
# `tr` non ne ha bisogno: squeeza uno spazio ASCII, e 0x20 non compare mai
|
|
306
318
|
# come byte di continuazione di una sequenza UTF-8.
|
|
307
319
|
s="$(printf '%s' "$1" \
|
|
308
|
-
| LC_ALL=C.UTF-8 sed 's/[^A-Za-z0-9 _
|
|
320
|
+
| LC_ALL=C.UTF-8 sed 's/[^A-Za-z0-9 _àèéìòùÀÈÉÌÒÙ📐🚀📊🏁🧹📏-]//g' \
|
|
309
321
|
| tr -s ' ')"
|
|
310
322
|
s="${s# }"; s="${s% }"
|
|
311
323
|
printf '%s' "${s:0:60}"
|
|
@@ -382,7 +394,15 @@ MODE_FLAG="--permission-mode ${PERM_MODE} "
|
|
|
382
394
|
|
|
383
395
|
# ── modello (T108 + T152) ────────────────────────────────────────────────────
|
|
384
396
|
# Precedenza: --model > env LOOM_DECK_MODEL > modello del kind nel catalogo >
|
|
385
|
-
# 'fable'.
|
|
397
|
+
# 'fable'.
|
|
398
|
+
#
|
|
399
|
+
# T161 — questa cascata vale per chi invoca deck-run A MANO. Il deck TUI passa
|
|
400
|
+
# SEMPRE `--model` già risolto (default del deck ← override di progetto nel
|
|
401
|
+
# blocco `spawn` di `.claude/loom-works.json`), quindi dal deck si ferma al primo
|
|
402
|
+
# gradino e i tre sotto non intervengono mai. Il blocco di progetto qui non si
|
|
403
|
+
# legge di proposito: `jq` è dipendenza opzionale di questo script, e dargli un
|
|
404
|
+
# JSON da consultare la renderebbe obbligatoria su un percorso che oggi degrada
|
|
405
|
+
# senza. L'ultimo gradino è il gemello bash di `MODEL_DEFAULT` in spawn.ts e
|
|
386
406
|
# va tenuto allineato a mano: i due lati non si leggono a vicenda (il deck deve
|
|
387
407
|
# poter MOSTRARE la selezione iniziale prima che deck-run esista come processo),
|
|
388
408
|
# quindi un cambio qui senza l'altro fa partire dalla lista un modello diverso
|
package/scripts/prompt-catalog
CHANGED
|
@@ -8,9 +8,23 @@
|
|
|
8
8
|
#
|
|
9
9
|
# Perché un file dati e non un `case` dentro deck-run: due lati hanno bisogno
|
|
10
10
|
# dello stesso testo — deck-run per comporre il comando in-tab, il deck TUI per
|
|
11
|
-
# pre-riempire
|
|
12
|
-
#
|
|
13
|
-
#
|
|
11
|
+
# pre-riempire i campi del detail con ciò che sta per essere eseguito. Come
|
|
12
|
+
# codice, il secondo lato dovrebbe riscriverlo, e le due copie divergono alla
|
|
13
|
+
# prima voce aggiunta da una parte sola.
|
|
14
|
+
#
|
|
15
|
+
# T161 — questo file resta la FONTE UNICA dei sette kind, e non è diventato un
|
|
16
|
+
# blocco JSON nel file di progetto per una ragione precisa: `jq` è dipendenza
|
|
17
|
+
# OPZIONALE di deck-run, e un JSON da consultare la renderebbe obbligatoria su
|
|
18
|
+
# un percorso che oggi degrada senza. Le sue righe sono il primo gradino del
|
|
19
|
+
# default di un'azione su task; il secondo è la riga di catalogo in
|
|
20
|
+
# `src/spawn-catalog.ts`, e sopra entrambi sta l'override di progetto nel blocco
|
|
21
|
+
# `spawn` di `.claude/loom-works.json`, che legge il solo deck.
|
|
22
|
+
#
|
|
23
|
+
# Le azioni SENZA kind (la sessione nuda, il drain di un file inbox, lo
|
|
24
|
+
# srotolamento dell'hard-wrap, il project status) non hanno una riga qui e non
|
|
25
|
+
# devono averla: le chiavi di questo file sono i valori di `--prompt-kind`, e
|
|
26
|
+
# quelle quattro non ne passano nessuno — una riga qui sarebbe irraggiungibile
|
|
27
|
+
# da ogni chiamante. I loro default vivono in `src/spawn-catalog.ts`.
|
|
14
28
|
#
|
|
15
29
|
# `none` non compare: nessun prompt non è un template vuoto, è l'assenza della
|
|
16
30
|
# voce. Chi chiede un kind fuori da questo file riceve un prompt vuoto e nessun
|