deel-local-cli 1.6.0 → 1.6.2

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/src/ui/motion.js CHANGED
@@ -163,6 +163,20 @@ export const 그림들 = {
163
163
  ['......', '....##', '....##', '......'],
164
164
  ],
165
165
 
166
+ /*
167
+ * 멈춤 — ESC 를 눌렀을 때. **조여든다.**
168
+ *
169
+ * 지나가지도 왕복하지도 않는다. 둘 다 '아직 하는 중' 으로 읽히기 때문이다.
170
+ * 여기서 말해야 하는 것은 하나다 — 눌린 것이 닿았고, 지금 거두는 중이다.
171
+ * 그렇다고 멈춰 세우면 화면이 얼어붙은 것과 구별이 안 된다.
172
+ */
173
+ 멈춤: [
174
+ ['......', '######', '######', '......'],
175
+ ['......', '.####.', '.####.', '......'],
176
+ ['......', '..##..', '..##..', '......'],
177
+ ['......', '.####.', '.####.', '......'],
178
+ ],
179
+
166
180
  /*
167
181
  * 느긋 — 오래 걸릴 때. 왕복한다.
168
182
  *
@@ -307,6 +321,14 @@ const 기사그림들 = {
307
321
  ['...##.......', '..####......', '..####......', '..#..#......'],
308
322
  ],
309
323
 
324
+ // 멈춤 — 걸음을 멈추고 팔을 든다. "그만" 이라는 손짓이다.
325
+ 멈춤: [
326
+ ['.##.........', '####........', '####........', '#..#........'],
327
+ ['.##.#.......', '#####.......', '####........', '#..#........'],
328
+ ['.##.#.......', '#####.......', '####........', '#..#........'],
329
+ ['.##.........', '####........', '####........', '#..#........'],
330
+ ],
331
+
310
332
  /*
311
333
  * 느긋 — **넘어진다.** 45초가 넘어가면 이 그림으로 갈린다.
312
334
  *
@@ -417,6 +439,14 @@ const 동물그림들 = {
417
439
  ['..#..#......', '..####......', '.######.....', '..#..#......'],
418
440
  ],
419
441
 
442
+ // 멈춤 — 가던 걸음을 멈추고 다리를 모은다. 앉기 직전이다.
443
+ 멈춤: [
444
+ ['.#..#.......', '.####.......', '######......', '.#..#.......'],
445
+ ['.#..#.......', '.####.......', '######......', '..##........'],
446
+ ['.#..#.......', '.####.......', '######......', '..##........'],
447
+ ['.#..#.......', '.####.......', '######......', '.#..#.......'],
448
+ ],
449
+
420
450
  /*
421
451
  * 느긋 — 드러누워 잔다. 숨만 오르내린다.
422
452
  *
@@ -0,0 +1,87 @@
1
+ // 붙여넣은 덩이를 표 하나로 접는다.
2
+ //
3
+ // ── 무슨 일이 났었나 ────────────────────────────────────────────────────
4
+ //
5
+ // 「붙여넣기 해도 창에 붙여넣기된 내용이 다 뜨는게 아니야 claude/codex 처럼
6
+ // 압축된 거 처럼 보이면 더 좋을거같아, 그래야 자기가 뭘 붙여넣기 한건지
7
+ // 보기 더 편하잖아」
8
+ //
9
+ // 입력 상자는 여덟 줄까지만 보여 주고(안쪽최대), 넘치면 **끝 여덟 줄**만
10
+ // 남긴다. 그래서 마흔 줄을 붙이면 앞 서른두 줄이 화면에서 사라진다. 사람
11
+ // 눈에는 앞부분이 안 들어간 것으로 보이고, 그래서 다시 붙인다. 다시 붙이면
12
+ // 이번엔 진짜로 두 번 들어간다.
13
+ //
14
+ // 접는 쪽이 낫다. 무엇을 붙였는지는 줄 수와 크기로 알 수 있고, 상자에는
15
+ // 그 표만 한 줄로 남으니 앞뒤로 무슨 말을 덧붙였는지가 그대로 보인다.
16
+ //
17
+ // ── 여기서 지키는 것 ────────────────────────────────────────────────────
18
+ //
19
+ // **접은 것은 보낼 때 글자 하나 안 틀리고 되돌아와야 한다.** 접기는 보기
20
+ // 좋으라고 하는 짓이지, 내용을 줄이는 짓이 아니다. 줄바꿈도 탭도 이모지도
21
+ // 바이트 그대로다. 되돌릴 수 없는 접기는 접기가 아니라 잘라내기다.
22
+ import { 접어쓰기 } from './wrap.js';
23
+ import { 안쪽최대 } from './inputbox.js';
24
+
25
+ /** 사람이 읽는 크기. 47줄이 몇 KB 인지 알아야 뭘 붙였는지 감이 온다. */
26
+ export function 크기말(바이트) {
27
+ const n = Number(바이트) || 0;
28
+ if (n < 1024) return `${n}B`;
29
+ if (n < 1024 * 1024) return `${(n / 1024).toFixed(1)}KB`;
30
+ return `${(n / (1024 * 1024)).toFixed(1)}MB`;
31
+ }
32
+
33
+ /**
34
+ * 이 덩이가 상자에 안 들어가나.
35
+ *
36
+ * 들어가면 접지 않는다 — 세 줄짜리는 그냥 보이는 편이 낫다. 접을지는
37
+ * 줄 수만 세면 안 된다. 한 줄이어도 폭보다 길면 상자 안에서 여러 줄로
38
+ * 접히기 때문이다. 그래서 상자가 쓰는 접어쓰기 로 똑같이 세어 본다.
39
+ */
40
+ export function 접을까(글, { 폭 = 80, 최대 = 안쪽최대 } = {}) {
41
+ const 원 = String(글 ?? '');
42
+ if (!원) return false;
43
+ const 쓸폭 = Math.max(4, Number(폭) || 80);
44
+ let 줄수 = 0;
45
+ for (const 한줄 of 원.split('\n')) {
46
+ 줄수 += Math.max(1, 접어쓰기(한줄, 쓸폭).length);
47
+ if (줄수 > 최대) return true;
48
+ }
49
+ return false;
50
+ }
51
+
52
+ /** `[붙여넣기 #1 · 47줄 · 2.1KB]` */
53
+ export function 표만들기(번호, 글) {
54
+ const 원 = String(글 ?? '');
55
+ return `[붙여넣기 #${번호} · ${원.split('\n').length}줄 · ${크기말(Buffer.byteLength(원, 'utf8'))}]`;
56
+ }
57
+
58
+ /*
59
+ * 표를 알아보는 무늬.
60
+ *
61
+ * 대괄호를 안에 안 받는다. 안 그러면 표 두 개가 붙어 있을 때 욕심껏
62
+ * 한 덩이로 먹어서 둘 다 못 알아본다.
63
+ *
64
+ * /g 를 안 붙인다 — 붙이면 lastIndex 가 남아서 같은 무늬로 test() 를
65
+ * 두 번 부를 때 두 번째가 조용히 거짓이 된다. 훑는 자리에서만 새로 만든다.
66
+ */
67
+ export const 표무늬 = /\[붙여넣기 #(\d+) · [^[\]]*\]/;
68
+
69
+ /** 글 안의 표를 원문으로 되돌린다. 모르는 번호는 사람이 친 글로 보고 둔다. */
70
+ export function 펼치기(글, 붙인것들) {
71
+ const 원 = String(글 ?? '');
72
+ if (!붙인것들 || typeof 붙인것들.get !== 'function') return 원;
73
+ return 원.replace(new RegExp(표무늬.source, 'g'), (통째, 번호) => {
74
+ const 속 = 붙인것들.get(Number(번호));
75
+ return 속 === undefined ? 통째 : 속;
76
+ });
77
+ }
78
+
79
+ /** 이 글이 쓴 표 번호들. 다 쓴 것은 치워야 대화가 길어져도 안 쌓인다. */
80
+ export function 쓴번호들(글) {
81
+ const 본것 = [];
82
+ String(글 ?? '').replace(new RegExp(표무늬.source, 'g'), (_통째, 번호) => {
83
+ 본것.push(Number(번호));
84
+ return '';
85
+ });
86
+ return 본것;
87
+ }
package/src/ui/working.js CHANGED
@@ -66,6 +66,20 @@ export const 문구 = {
66
66
  '바쁘게 움직이는 중',
67
67
  '뭔가 하는 중',
68
68
  ],
69
+ /*
70
+ * ESC 를 눌렀을 때.
71
+ *
72
+ * 멈추는 데는 잠깐이 걸린다 — 돌던 자식 프로그램을 죽이고, 안 돈 도구 자리를
73
+ * 채우고, 대화를 성하게 닫아야 한다. 그 잠깐 동안 화면이 아까 하던 말을
74
+ * 그대로 하고 있으면 사람은 **안 먹었다고 판단하고 또 누른다.** 그러다
75
+ * Ctrl+C 로 손이 가고, 두 번 누르면 대화가 통째로 닫힌다.
76
+ *
77
+ * 그래서 여기는 문구를 돌리지 않는다. 한 마디만 붙박이로 둔다 — 지금 필요한
78
+ * 것은 재치가 아니라 **눌린 것이 닿았다는 신호**다.
79
+ */
80
+ 멈춤: [
81
+ '멈추는 중',
82
+ ],
69
83
  /*
70
84
  * 오래 걸릴 때.
71
85
  *