@bitefoundry/retrieviewer 0.0.3 → 0.0.4

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.
Files changed (254) hide show
  1. package/ASSET-PROVENANCE.md +6 -0
  2. package/ASSETS-LICENSE.md +2 -1
  3. package/ATTRIBUTION.md +6 -1
  4. package/COMFORT-ART.md +65 -0
  5. package/DESKTOP-PLATFORMS.md +6 -1
  6. package/PLUGIN.md +13 -10
  7. package/PREREQUISITES.md +95 -0
  8. package/PUPPY-MEMORY.md +102 -1
  9. package/README.ko.md +110 -0
  10. package/README.md +117 -59
  11. package/RELEASING.md +23 -12
  12. package/THIRD-PARTY-NOTICES.md +5 -3
  13. package/braille.mjs +35 -9
  14. package/examples/live.mjs +2 -2
  15. package/integrations/linux-overlay/overlay.py +2 -2
  16. package/integrations/macos-overlay/overlay.jxa +8 -6
  17. package/integrations/opencode/runtime.mjs +4 -4
  18. package/integrations/opencode/tui.tsx +1 -1
  19. package/integrations/windows-overlay/Overlay.cs +4 -4
  20. package/integrations/windows-overlay/protocol.mjs +11 -7
  21. package/package.json +34 -13
  22. package/puppy-comfort-sprites.mjs +25 -0
  23. package/puppy-companion-comfort-q5.bin.gz +0 -0
  24. package/puppy-companion-comfort.json +77 -0
  25. package/puppy-companion-life.mjs +49 -16
  26. package/puppy-companion-objects.mjs +12 -0
  27. package/puppy-frame-predictive.mjs +15 -9
  28. package/puppy-frame-store.mjs +2 -2
  29. package/puppy-paper-world.mjs +14 -0
  30. package/puppy-paper.mjs +65 -14
  31. package/retrieviewer-plugin.d.mts +1 -1
  32. package/retrieviewer-plugin.mjs +1 -1
  33. package/retrieviewer.d.mts +10 -4
  34. package/retrieviewer.mjs +20 -14
  35. package/locomotion-core.mjs +0 -21
  36. package/locomotion-puppy.animal +0 -0
  37. package/vendor/procedural-animals/package.json +0 -40
  38. package/vendor/procedural-animals/src/animal.js +0 -146
  39. package/vendor/procedural-animals/src/bake.js +0 -51
  40. package/vendor/procedural-animals/src/build.js +0 -81
  41. package/vendor/procedural-animals/src/core/build/coatKit.js +0 -121
  42. package/vendor/procedural-animals/src/core/build/featherCards.js +0 -189
  43. package/vendor/procedural-animals/src/core/build/finEdges.js +0 -85
  44. package/vendor/procedural-animals/src/core/build/furSlope.js +0 -115
  45. package/vendor/procedural-animals/src/core/build/mesh.js +0 -67
  46. package/vendor/procedural-animals/src/core/build/pipeline.js +0 -272
  47. package/vendor/procedural-animals/src/core/build/seams.js +0 -183
  48. package/vendor/procedural-animals/src/core/build/warp.js +0 -112
  49. package/vendor/procedural-animals/src/core/build/weights.js +0 -393
  50. package/vendor/procedural-animals/src/core/math/vec.js +0 -81
  51. package/vendor/procedural-animals/src/core/motion/actions.js +0 -800
  52. package/vendor/procedural-animals/src/core/motion/bird.js +0 -3063
  53. package/vendor/procedural-animals/src/core/motion/birdActions.js +0 -1059
  54. package/vendor/procedural-animals/src/core/motion/common.js +0 -158
  55. package/vendor/procedural-animals/src/core/motion/index.js +0 -22
  56. package/vendor/procedural-animals/src/core/motion/quadruped.js +0 -2875
  57. package/vendor/procedural-animals/src/core/motion/snake.js +0 -1594
  58. package/vendor/procedural-animals/src/core/motion/spider.js +0 -1810
  59. package/vendor/procedural-animals/src/core/motion/swimmer.js +0 -1047
  60. package/vendor/procedural-animals/src/core/motion/swimmerActions.js +0 -613
  61. package/vendor/procedural-animals/src/core/render/animalObject.js +0 -262
  62. package/vendor/procedural-animals/src/core/render/coatMaterial.js +0 -1301
  63. package/vendor/procedural-animals/src/core/render/dqs.js +0 -159
  64. package/vendor/procedural-animals/src/core/render/eyes.js +0 -676
  65. package/vendor/procedural-animals/src/core/render/membranes.js +0 -77
  66. package/vendor/procedural-animals/src/core/render/skeleton.js +0 -41
  67. package/vendor/procedural-animals/src/core/rig/bird.js +0 -327
  68. package/vendor/procedural-animals/src/core/rig/quadruped.js +0 -76
  69. package/vendor/procedural-animals/src/core/rig/rig.js +0 -79
  70. package/vendor/procedural-animals/src/core/rig/snake.js +0 -76
  71. package/vendor/procedural-animals/src/core/rig/spider.js +0 -110
  72. package/vendor/procedural-animals/src/core/rig/swimmer.js +0 -181
  73. package/vendor/procedural-animals/src/core/sdf/eyeSocket.js +0 -53
  74. package/vendor/procedural-animals/src/core/sdf/mesher.js +0 -238
  75. package/vendor/procedural-animals/src/core/sdf/sdf.js +0 -263
  76. package/vendor/procedural-animals/src/index.d.ts +0 -98
  77. package/vendor/procedural-animals/src/index.js +0 -29
  78. package/vendor/procedural-animals/src/registry.js +0 -48
  79. package/vendor/procedural-animals/src/species/bear/behaviour.js +0 -463
  80. package/vendor/procedural-animals/src/species/bear/claws.js +0 -147
  81. package/vendor/procedural-animals/src/species/bear/coat.js +0 -726
  82. package/vendor/procedural-animals/src/species/bear/index.js +0 -139
  83. package/vendor/procedural-animals/src/species/bear/motion.js +0 -112
  84. package/vendor/procedural-animals/src/species/bear/regions.js +0 -78
  85. package/vendor/procedural-animals/src/species/bear/rig.js +0 -112
  86. package/vendor/procedural-animals/src/species/bear/sculpt.js +0 -272
  87. package/vendor/procedural-animals/src/species/boar/behaviour.js +0 -335
  88. package/vendor/procedural-animals/src/species/boar/coat.js +0 -372
  89. package/vendor/procedural-animals/src/species/boar/index.js +0 -110
  90. package/vendor/procedural-animals/src/species/boar/motion.js +0 -85
  91. package/vendor/procedural-animals/src/species/boar/regions.js +0 -88
  92. package/vendor/procedural-animals/src/species/boar/rig.js +0 -111
  93. package/vendor/procedural-animals/src/species/boar/sculpt.js +0 -285
  94. package/vendor/procedural-animals/src/species/cat/behaviour.js +0 -559
  95. package/vendor/procedural-animals/src/species/cat/coat.js +0 -841
  96. package/vendor/procedural-animals/src/species/cat/index.js +0 -211
  97. package/vendor/procedural-animals/src/species/cat/motion.js +0 -101
  98. package/vendor/procedural-animals/src/species/cat/regions.js +0 -82
  99. package/vendor/procedural-animals/src/species/cat/rig.js +0 -100
  100. package/vendor/procedural-animals/src/species/cat/sculpt.js +0 -266
  101. package/vendor/procedural-animals/src/species/cat/whiskers.js +0 -110
  102. package/vendor/procedural-animals/src/species/cheetah/coat.js +0 -427
  103. package/vendor/procedural-animals/src/species/cheetah/index.js +0 -51
  104. package/vendor/procedural-animals/src/species/cheetah/joints.js +0 -3
  105. package/vendor/procedural-animals/src/species/cheetah/motion.js +0 -77
  106. package/vendor/procedural-animals/src/species/cheetah/regions.js +0 -95
  107. package/vendor/procedural-animals/src/species/cheetah/rig.js +0 -66
  108. package/vendor/procedural-animals/src/species/cheetah/sculpt.js +0 -158
  109. package/vendor/procedural-animals/src/species/chicken/coat.js +0 -313
  110. package/vendor/procedural-animals/src/species/chicken/coverts.js +0 -320
  111. package/vendor/procedural-animals/src/species/chicken/index.js +0 -110
  112. package/vendor/procedural-animals/src/species/chicken/motion.js +0 -177
  113. package/vendor/procedural-animals/src/species/chicken/regions.js +0 -66
  114. package/vendor/procedural-animals/src/species/chicken/rig.js +0 -144
  115. package/vendor/procedural-animals/src/species/chicken/sculpt.js +0 -389
  116. package/vendor/procedural-animals/src/species/chicken/wingLook.js +0 -66
  117. package/vendor/procedural-animals/src/species/chicken/wingStack.js +0 -124
  118. package/vendor/procedural-animals/src/species/cow/behaviour.js +0 -521
  119. package/vendor/procedural-animals/src/species/cow/coat.js +0 -465
  120. package/vendor/procedural-animals/src/species/cow/index.js +0 -118
  121. package/vendor/procedural-animals/src/species/cow/motion.js +0 -81
  122. package/vendor/procedural-animals/src/species/cow/regions.js +0 -98
  123. package/vendor/procedural-animals/src/species/cow/rig.js +0 -116
  124. package/vendor/procedural-animals/src/species/cow/sculpt.js +0 -339
  125. package/vendor/procedural-animals/src/species/crow/coat.js +0 -145
  126. package/vendor/procedural-animals/src/species/crow/index.js +0 -70
  127. package/vendor/procedural-animals/src/species/crow/joints.js +0 -3
  128. package/vendor/procedural-animals/src/species/crow/motion.js +0 -101
  129. package/vendor/procedural-animals/src/species/crow/regions.js +0 -50
  130. package/vendor/procedural-animals/src/species/crow/rig.js +0 -83
  131. package/vendor/procedural-animals/src/species/crow/sculpt.js +0 -118
  132. package/vendor/procedural-animals/src/species/deer/behaviour.js +0 -513
  133. package/vendor/procedural-animals/src/species/deer/coat.js +0 -391
  134. package/vendor/procedural-animals/src/species/deer/index.js +0 -106
  135. package/vendor/procedural-animals/src/species/deer/motion.js +0 -97
  136. package/vendor/procedural-animals/src/species/deer/regions.js +0 -60
  137. package/vendor/procedural-animals/src/species/deer/rig.js +0 -124
  138. package/vendor/procedural-animals/src/species/deer/sculpt.js +0 -297
  139. package/vendor/procedural-animals/src/species/dog/behaviour.js +0 -521
  140. package/vendor/procedural-animals/src/species/dog/coat.js +0 -495
  141. package/vendor/procedural-animals/src/species/dog/index.js +0 -144
  142. package/vendor/procedural-animals/src/species/dog/motion.js +0 -118
  143. package/vendor/procedural-animals/src/species/dog/regions.js +0 -61
  144. package/vendor/procedural-animals/src/species/dog/rig.js +0 -129
  145. package/vendor/procedural-animals/src/species/dog/sculpt.js +0 -246
  146. package/vendor/procedural-animals/src/species/eagle/coat.js +0 -250
  147. package/vendor/procedural-animals/src/species/eagle/index.js +0 -76
  148. package/vendor/procedural-animals/src/species/eagle/joints.js +0 -3
  149. package/vendor/procedural-animals/src/species/eagle/motion.js +0 -137
  150. package/vendor/procedural-animals/src/species/eagle/regions.js +0 -57
  151. package/vendor/procedural-animals/src/species/eagle/rig.js +0 -107
  152. package/vendor/procedural-animals/src/species/eagle/sculpt.js +0 -137
  153. package/vendor/procedural-animals/src/species/fish/coat.js +0 -271
  154. package/vendor/procedural-animals/src/species/fish/index.js +0 -88
  155. package/vendor/procedural-animals/src/species/fish/motion.js +0 -92
  156. package/vendor/procedural-animals/src/species/fish/regions.js +0 -27
  157. package/vendor/procedural-animals/src/species/fish/rig.js +0 -143
  158. package/vendor/procedural-animals/src/species/fish/sculpt.js +0 -214
  159. package/vendor/procedural-animals/src/species/fish/variants.js +0 -126
  160. package/vendor/procedural-animals/src/species/fox/behaviour.js +0 -314
  161. package/vendor/procedural-animals/src/species/fox/coat.js +0 -444
  162. package/vendor/procedural-animals/src/species/fox/index.js +0 -120
  163. package/vendor/procedural-animals/src/species/fox/motion.js +0 -81
  164. package/vendor/procedural-animals/src/species/fox/regions.js +0 -59
  165. package/vendor/procedural-animals/src/species/fox/rig.js +0 -91
  166. package/vendor/procedural-animals/src/species/fox/sculpt.js +0 -202
  167. package/vendor/procedural-animals/src/species/frog/behaviour.js +0 -590
  168. package/vendor/procedural-animals/src/species/frog/coat.js +0 -305
  169. package/vendor/procedural-animals/src/species/frog/index.js +0 -97
  170. package/vendor/procedural-animals/src/species/frog/motion.js +0 -69
  171. package/vendor/procedural-animals/src/species/frog/regions.js +0 -46
  172. package/vendor/procedural-animals/src/species/frog/rig.js +0 -156
  173. package/vendor/procedural-animals/src/species/frog/sculpt.js +0 -240
  174. package/vendor/procedural-animals/src/species/goat/behaviour.js +0 -509
  175. package/vendor/procedural-animals/src/species/goat/coat.js +0 -590
  176. package/vendor/procedural-animals/src/species/goat/index.js +0 -149
  177. package/vendor/procedural-animals/src/species/goat/motion.js +0 -95
  178. package/vendor/procedural-animals/src/species/goat/regions.js +0 -98
  179. package/vendor/procedural-animals/src/species/goat/rig.js +0 -181
  180. package/vendor/procedural-animals/src/species/goat/sculpt.js +0 -547
  181. package/vendor/procedural-animals/src/species/horse/coat.js +0 -361
  182. package/vendor/procedural-animals/src/species/horse/coatSeam.js +0 -122
  183. package/vendor/procedural-animals/src/species/horse/index.js +0 -80
  184. package/vendor/procedural-animals/src/species/horse/motion.js +0 -245
  185. package/vendor/procedural-animals/src/species/horse/regions.js +0 -60
  186. package/vendor/procedural-animals/src/species/horse/rig.js +0 -117
  187. package/vendor/procedural-animals/src/species/horse/sculpt.js +0 -316
  188. package/vendor/procedural-animals/src/species/horse/seamWeights.js +0 -272
  189. package/vendor/procedural-animals/src/species/lion/behaviour.js +0 -509
  190. package/vendor/procedural-animals/src/species/lion/coat.js +0 -1016
  191. package/vendor/procedural-animals/src/species/lion/index.js +0 -111
  192. package/vendor/procedural-animals/src/species/lion/motion.js +0 -87
  193. package/vendor/procedural-animals/src/species/lion/regions.js +0 -106
  194. package/vendor/procedural-animals/src/species/lion/rig.js +0 -110
  195. package/vendor/procedural-animals/src/species/lion/sculpt.js +0 -384
  196. package/vendor/procedural-animals/src/species/lion/whiskers.js +0 -132
  197. package/vendor/procedural-animals/src/species/pig/behaviour.js +0 -575
  198. package/vendor/procedural-animals/src/species/pig/coat.js +0 -730
  199. package/vendor/procedural-animals/src/species/pig/ears.js +0 -242
  200. package/vendor/procedural-animals/src/species/pig/index.js +0 -161
  201. package/vendor/procedural-animals/src/species/pig/motion.js +0 -105
  202. package/vendor/procedural-animals/src/species/pig/regions.js +0 -100
  203. package/vendor/procedural-animals/src/species/pig/rig.js +0 -152
  204. package/vendor/procedural-animals/src/species/pig/sculpt.js +0 -382
  205. package/vendor/procedural-animals/src/species/rabbit/behaviour.js +0 -605
  206. package/vendor/procedural-animals/src/species/rabbit/coat.js +0 -285
  207. package/vendor/procedural-animals/src/species/rabbit/index.js +0 -85
  208. package/vendor/procedural-animals/src/species/rabbit/motion.js +0 -85
  209. package/vendor/procedural-animals/src/species/rabbit/regions.js +0 -48
  210. package/vendor/procedural-animals/src/species/rabbit/rig.js +0 -99
  211. package/vendor/procedural-animals/src/species/rabbit/sculpt.js +0 -148
  212. package/vendor/procedural-animals/src/species/rat/behaviour.js +0 -539
  213. package/vendor/procedural-animals/src/species/rat/coat.js +0 -341
  214. package/vendor/procedural-animals/src/species/rat/index.js +0 -111
  215. package/vendor/procedural-animals/src/species/rat/motion.js +0 -90
  216. package/vendor/procedural-animals/src/species/rat/regions.js +0 -92
  217. package/vendor/procedural-animals/src/species/rat/rig.js +0 -112
  218. package/vendor/procedural-animals/src/species/rat/sculpt.js +0 -163
  219. package/vendor/procedural-animals/src/species/rat/whiskers.js +0 -119
  220. package/vendor/procedural-animals/src/species/shark/coat.js +0 -383
  221. package/vendor/procedural-animals/src/species/shark/index.js +0 -104
  222. package/vendor/procedural-animals/src/species/shark/motion.js +0 -69
  223. package/vendor/procedural-animals/src/species/shark/regions.js +0 -34
  224. package/vendor/procedural-animals/src/species/shark/rig.js +0 -194
  225. package/vendor/procedural-animals/src/species/shark/sculpt.js +0 -343
  226. package/vendor/procedural-animals/src/species/shark/variants.js +0 -105
  227. package/vendor/procedural-animals/src/species/sheep/behaviour.js +0 -522
  228. package/vendor/procedural-animals/src/species/sheep/coat.js +0 -529
  229. package/vendor/procedural-animals/src/species/sheep/index.js +0 -152
  230. package/vendor/procedural-animals/src/species/sheep/motion.js +0 -86
  231. package/vendor/procedural-animals/src/species/sheep/neck.js +0 -41
  232. package/vendor/procedural-animals/src/species/sheep/regions.js +0 -62
  233. package/vendor/procedural-animals/src/species/sheep/rig.js +0 -163
  234. package/vendor/procedural-animals/src/species/sheep/sculpt.js +0 -542
  235. package/vendor/procedural-animals/src/species/snake/coat.js +0 -315
  236. package/vendor/procedural-animals/src/species/snake/index.js +0 -73
  237. package/vendor/procedural-animals/src/species/snake/motion.js +0 -51
  238. package/vendor/procedural-animals/src/species/snake/regions.js +0 -51
  239. package/vendor/procedural-animals/src/species/snake/rig.js +0 -108
  240. package/vendor/procedural-animals/src/species/snake/sculpt.js +0 -122
  241. package/vendor/procedural-animals/src/species/spider/coat.js +0 -279
  242. package/vendor/procedural-animals/src/species/spider/index.js +0 -78
  243. package/vendor/procedural-animals/src/species/spider/motion.js +0 -72
  244. package/vendor/procedural-animals/src/species/spider/regions.js +0 -87
  245. package/vendor/procedural-animals/src/species/spider/rig.js +0 -118
  246. package/vendor/procedural-animals/src/species/spider/sculpt.js +0 -182
  247. package/vendor/procedural-animals/src/species/wolf/behaviour.js +0 -160
  248. package/vendor/procedural-animals/src/species/wolf/coat.js +0 -749
  249. package/vendor/procedural-animals/src/species/wolf/index.js +0 -107
  250. package/vendor/procedural-animals/src/species/wolf/motion.js +0 -80
  251. package/vendor/procedural-animals/src/species/wolf/regions.js +0 -57
  252. package/vendor/procedural-animals/src/species/wolf/rig.js +0 -87
  253. package/vendor/procedural-animals/src/species/wolf/sculpt.js +0 -339
  254. package/vendor/procedural-animals/src/worker.js +0 -29
@@ -35,6 +35,12 @@ must be checked again for the final release bytes.
35
35
 
36
36
  ## Remaining limits
37
37
 
38
+ Later source candidate: belly/sleep reuse existing licensed roll/rest frames.
39
+ Tug adds eight built-in imagegen keys referenced only from the existing generated
40
+ puppy sheet, not new photographs. COMFORT-ART.md records the prompt, source hash
41
+ and fixed-scale preparation. The ninth archive is covered explicitly by
42
+ ASSETS-LICENSE.md and ATTRIBUTION.md. Original sheet PNGs remain outside npm.
43
+
38
44
  Copyrightability of AI-generated expression, the precise derivative-work analysis,
39
45
  and worldwide name clearance are not conclusively determined here. Existing
40
46
  domestic trademark research records possible similar marks; owning an npm scope
package/ASSETS-LICENSE.md CHANGED
@@ -15,7 +15,7 @@ photographers retain their rights under their original licenses.
15
15
 
16
16
  ## Covered assets
17
17
 
18
- These eight artwork archives and their associated pose/registration metadata,
18
+ These nine artwork archives and their associated pose/registration metadata,
19
19
  decoded images and alternative encodings are covered:
20
20
 
21
21
  - `puppy-stride-tweens-q5.bin.gz`
@@ -26,6 +26,7 @@ decoded images and alternative encodings are covered:
26
26
  - `puppy-paper-behaviors-q5.bin.gz`
27
27
  - `puppy-paper-actions-v9-q5.bin.gz`
28
28
  - `puppy-companion-interactions-v3-q5.bin.gz`
29
+ - `puppy-companion-comfort-q5.bin.gz`
29
30
 
30
31
  ## Practical summary
31
32
 
package/ATTRIBUTION.md CHANGED
@@ -47,7 +47,12 @@ change description if you modify it, in a manner reasonable to the medium.
47
47
 
48
48
  AI-generated pose sheets were extracted, aligned, interpolated, contact-corrected
49
49
  and encoded as 32-level Q5 frame stores. These are modifications, not unaltered
50
- photographs or motion capture. The package contains eight generated-art archives.
50
+ photographs or motion capture. The package contains nine generated-art archives.
51
+ The comfort extension reuses the existing roll/rest poses and adds eight
52
+ AI-generated tug keys, registered at one scale with the existing seat as its
53
+ animation endpoint. No additional photographic or video inputs were used for
54
+ this extension. Its source hash and preparation are recorded in COMFORT-ART.md
55
+ and puppy-companion-comfort.json; the same artwork license applies.
51
56
  Reference photo collections, YouTube footage, experimental Meshy models,
52
57
  noncommercial motion research/datasets, interpolation tools/model weights and
53
58
  worker logs are not distributed in this package. No exclusive copyright in
package/COMFORT-ART.md ADDED
@@ -0,0 +1,65 @@
1
+ # Comfort extension art record
2
+
3
+ Source code MIT; generated puppy art and frame data CC BY-SA4.0, retaining the
4
+ credits in ATTRIBUTION.md. This is a development-source record, not new legal
5
+ clearance. No external photograph, YouTube frame or downloaded rig was introduced.
6
+
7
+ ## Assets and preparation
8
+
9
+ - Belly-up: existing v9 `roll-down`, eased to its measured `roll7` edge boundary,
10
+ held without a new bitmap, then completed to the existing seat.
11
+ - Sleep: existing `rest` eyes-closed endpoint. The body does not zoom or squash.
12
+ A small code-drawn rising z cue is silent; no audio engine is installed.
13
+ - Tug: built-in imagegen output from the existing generated
14
+ `puppy-behaviors16-sheet.png` identity reference. Original PNG is preserved at
15
+ `dist/comfort-art/tug-source-v1.png` locally and is not bundled in npm.
16
+ SHA-256: `10fde9dacca5cb45acd68f387e7ed3bcf88cd72cf0f9c4220d31d819db91731e`.
17
+ Eight keys plus the original seat are packed in
18
+ `puppy-companion-comfort-q5.bin.gz`; registration/hash/byte counts are in
19
+ `puppy-companion-comfort.json`. One scale is applied to all poses; only ground
20
+ and body-center translation varies. Playback repeats discrete authored keys,
21
+ not opacity crossfades, whole-body scale animation or a pre-expanded30fps film.
22
+
23
+ Rebuild (development only, Python Pillow plus existing Node codec):
24
+
25
+ ```sh
26
+ node tools/prepare-comfort-art.mjs /absolute/path/to/tug-source-v1.png
27
+ node tools/check-comfort.mjs
28
+ ```
29
+
30
+ Runtime does not use Python/Pillow or image-generation services for these poses.
31
+ The reference/output/preparation originals are preserved; existing runtime art
32
+ archives were not overwritten. Windows off-screen snapshots are diagnostic,
33
+ not final end-user approval. Other-platform live appearance remains unverified.
34
+
35
+ ## Generation prompt (built-in tool)
36
+
37
+ Use case: stylized-concept. Project asset: Retrieviewer tiny tug-play sprite
38
+ sheet, faithful to the input reference puppy. The reference image is identity/style
39
+ reference, not an output to edit. Create ONE2048x1024 sprite sheet: exactly4 equal
40
+ columns and2 equal rows, eight separate full-body isolated sprites on absolutely
41
+ pure black, no borders, no lettering or grid. Every cell is exactly512x512. Same
42
+ adorable fluffy pale golden retriever puppy, realistic soft long fine fur, black
43
+ nose/eyes, small dark bandana as input. Grayscale only. Fixed frontal slightly
44
+ elevated viewpoint matching reference third row seated puppy. Fixed optical focal
45
+ length, same head/body proportions and puppy scale, identical grounded paw
46
+ baselines at y=456 inside every cell and centered body. Body silhouette about290px
47
+ wide. ALL eight cells show the puppy seated with front paws planted in exact same
48
+ place: no jumps, no camera moves, no size changes, no head squashing or body
49
+ inflation. A small pale braided rope tug toy runs horizontally through mouth and
50
+ extends to puppy's right, without human/hand. First cell: puppy curious, mouth just
51
+ about to grip rope. Second: gently closing jaws around rope, naturally opening
52
+ mouth. Third: firm grip, lower jaw and muzzle believable. Fourth: gently leaning
53
+ just the head back8px while rump and paws planted. Fifth: holding same toy, head
54
+ tugs8px left, both eyes focused on toy. Sixth: head tugs8px right (tiny sideways
55
+ pull), ears follow naturally. Seventh: eases back to center and loosens grip.
56
+ Eighth: lets go and faces viewer, happy soft closed mouth; toy end just below nose.
57
+ Make each cell an adjacent pose of the SAME animation with extremely small
58
+ differences. No dot dithering, no ASCII, no pixel blocks; preserve detailed soft
59
+ fur, runtime will convert to fine Braille. No extra limbs, no new collar, no
60
+ cartoony cylinders, no shadows or floor background. Full tail/body entirely inside
61
+ each cell, ample pure-black margin.
62
+
63
+ Observed output is1774×887 rather than the requested size; the preparation script
64
+ extracts equal cells from actual dimensions. The resulting authored keys still
65
+ need visual review for small body/face differences at transitions.
@@ -1,10 +1,15 @@
1
- # Native desktop adapters — 0.0.3
1
+ # Native desktop adapters — 0.0.4
2
2
 
3
3
  Version0.0.3 includes Windows, Linux X11 and experimental macOS adapters. Windows
4
4
  and the AlmaLinux8 X11 baseline have live verification; macOS has no runtime verification.
5
5
  Installation takes two steps: `npm install -g @bitefoundry/retrieviewer`,
6
6
  then `retrieviewer desktop`. No app patch, wrapper, shell profile or auto-start entry.
7
7
 
8
+ Version0.0.4 adds compact comfort behaviors and the tug control. Windows native
9
+ checks were repeated. New Linux/macOS control changes have grammar/protocol
10
+ checks, not new live GUI verification; the Linux live evidence below is the
11
+ earlier0.0.3 baseline. macOS remains experimental.
12
+
8
13
  ## Design and status
9
14
 
10
15
  | Platform | Adapter | Current verification boundary |
package/PLUGIN.md CHANGED
@@ -1,6 +1,6 @@
1
- # Retrieviewer plugin · 0.0.1
1
+ # Retrieviewer plugin
2
2
 
3
- An autonomous Braille dog, embedded in **your pane**. Only ball and treat need user
3
+ An autonomous Braille dog, embedded in **your pane**. Ball, treat and tug need user
4
4
  input. The rest is its own seeded behavior. No screen, stdin or layout takeover.
5
5
  No telemetry, keys, account signup or paid APIs in the runtime.
6
6
 
@@ -9,21 +9,22 @@ No telemetry, keys, account signup or paid APIs in the runtime.
9
9
  Install from npm:
10
10
 
11
11
  ```sh
12
- npm install @bitefoundry/retrieviewer@0.0.1
12
+ npm install @bitefoundry/retrieviewer
13
13
  ```
14
14
 
15
15
  Portable distribution (independent of the source directory):
16
16
 
17
17
  ```sh
18
- npm install /path/to/bitefoundry-retrieviewer-0.0.1.tgz
18
+ npm install /path/to/bitefoundry-retrieviewer-VERSION.tgz
19
19
  ```
20
20
 
21
21
  The generated tarball is in `dist/`. Node >=20, ESM and a monospaced Unicode
22
22
  Braille font are required. The npm package name is `@bitefoundry/retrieviewer`;
23
23
  imports from the old playground name must be updated.
24
24
  The tarball carries Q5 art, runtime code, types and examples. npm installs the pinned
25
- `three` dependency separately (network/cache or host provisioning required).
26
- No install/build scripts. Offline install requires that dependency already cached.
25
+ `jsonc-parser` dependency for configuration editing separately. The current source
26
+ runtime does not require Three.js; it remains a development-only comparison tool.
27
+ No install/build scripts. Offline install requires the production dependency cached.
27
28
 
28
29
  For supported agent-native installation use `retrieviewer enable`; see
29
30
  [INSTALLING.md](./INSTALLING.md). The library contract below remains unchanged.
@@ -49,6 +50,7 @@ const puppy = await createPetPlugin({
49
50
  puppy.start();
50
51
  ballButton.on('click', () => puppy.interact('ball'));
51
52
  treatButton.on('click', () => puppy.interact('treat'));
53
+ tugButton.on('click', () => puppy.interact('tug'));
52
54
  // pane unmount / host shutdown:
53
55
  puppy.dispose();
54
56
  ```
@@ -87,7 +89,7 @@ synchronous; avoid retaining borrowed frame pixels. See types for custom schedul
87
89
  | JS/TS terminal widget | `/plugin` host callbacks, or core `step/frame` | Generic contract + installed consumer tested |
88
90
  | Ink/React, Blessed | Lifecycle calls plugin, render text in widget | Contract fits; framework-specific mounts not tested |
89
91
  | Python/Rust/Go TUI | JSONL subprocess, one `tick` request per frame | Bridge + Python sample; Node required |
90
- | Browser | Core/plugin + deployed assets + `three` mapping | Existing browser core preview checked; arbitrary bundlers untested |
92
+ | Browser | Core/plugin + deployed assets; no Three.js import map | Existing browser core preview checked; arbitrary bundlers untested |
91
93
 
92
94
  Not a native binary, editor extension, MCP plugin, or automatic injection into
93
95
  closed-source TUI apps. Such hosts need an extension hook to display a pane.
@@ -105,6 +107,7 @@ The package check creates a tarball, installs it into a fresh temp consumer offl
105
107
  with lifecycle scripts disabled, exercises exports, default art, interactions,
106
108
  start/pause/dispose, all JS examples and JSONL. Evidence is retained in
107
109
  `dist/package-check.json`. It does not publish. Art originals/references/workers
108
- are excluded. Source art is18.7 MB gzip; full tarball is approximately20.6 MB,
109
- excluding npm's separate Three dependency. This is still a substantial pet, not
110
- a kilobyte icon; see memory/startup tradeoffs in the comparison document.
110
+ are excluded. Q5 art is about18.8 MB gzip; the0.0.4 tarball
111
+ is about18.9 MB. Installed production files total about19.5 MB in the local consumer
112
+ check, including dependencies. This is still a substantial pet, not a kilobyte icon;
113
+ see measurements and release distinctions in [PUPPY-MEMORY.md](./PUPPY-MEMORY.md).
@@ -0,0 +1,95 @@
1
+ # Node, npm and your desktop
2
+
3
+ [한국어 안내](README.ko.md#nodejs가-없다면) · [Install Retrieviewer](README.md#bring-one-home)
4
+
5
+ ## Choose the computer first
6
+
7
+ Install where the app window is displayed. For Cursor/VS Code Remote SSH, this
8
+ usually means your local Windows/macOS computer, not the remote Linux terminal.
9
+ A Linux DISPLAY such as :1 may belong to a remote VNC desktop; it does not mean
10
+ the local Cursor window lives there. Desktop Linux needs X11 plus a compositor.
11
+
12
+ ## Install Node/npm
13
+
14
+ Check `node --version` and `npm --version`. The package needs Node>=20; prefer a
15
+ maintained release. Node22.23.4 is our tested Alma8 baseline.
16
+
17
+ - **Windows:** use the official [Node.js download page](https://nodejs.org/en/download)
18
+ and choose the Windows installer. Keep npm and Add to PATH enabled. Open a new
19
+ PowerShell afterwards; do not run inside your SSH terminal.
20
+ - **macOS:** use the official macOS installer from the same page; reopen Terminal.
21
+ Node installation does not mean our experimental Mac overlay has been verified.
22
+ - **AlmaLinux8:** an administrator can inspect `dnf module list nodejs`, then on
23
+ a system with no conflicting Node stream install `sudo dnf module install nodejs:22`.
24
+ See [RHEL8.10 stream instructions](https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/8/html/8.10_release_notes/new-features)
25
+ and [Alma8's Node22 packages](https://errata.almalinux.org/8/ALSA-2026-54530.html).
26
+ Do not reset/switch a company-managed stream without your administrator.
27
+ - **Other Linux:** use your distribution's maintained Node22+ package or the
28
+ official platform download; do not assume an old distribution's `nodejs` package
29
+ meets Node>=20. The official [Node22 release](https://nodejs.org/en/blog/release/v22.23.4/)
30
+ includes binaries and checksums. Avoid random install scripts and do not replace
31
+ system GLIBC to make a newer binary start.
32
+
33
+ No administrator access? Use an approved per-user Node installation or ask the
34
+ machine administrator. Node/npm and desktop libraries are prerequisites, not
35
+ dependencies that Retrieviewer silently installs.
36
+
37
+ ## Linux native prerequisites
38
+
39
+ System Python3.6+, libX11, libXrender and libXext, an ARGB32 visual, SHAPE input
40
+ extension, EWMH window manager and a compositor are required. No pip, GTK, Qt,
41
+ Electron, native npm build or C++ compiler is required by the Linux helper.
42
+ On AlmaLinux8, Python can fall back to `/usr/libexec/platform-python`.
43
+
44
+ On a managed machine, ask your administrator for missing desktop libraries;
45
+ don't change the login session, compositor or display permissions blindly.
46
+ Native Wayland is unsupported. Check session variables without shell-specific
47
+ unset-variable errors:
48
+
49
+ ```sh
50
+ printenv XDG_SESSION_TYPE DISPLAY WAYLAND_DISPLAY
51
+ ```
52
+
53
+ ## Command not found
54
+
55
+ First check the install location:
56
+
57
+ ```sh
58
+ npm ls -g @bitefoundry/retrieviewer --depth=0
59
+ npm prefix -g
60
+ ```
61
+
62
+ On Linux/macOS the executable is under `<printed-prefix>/bin`. On Windows it is
63
+ directly under the printed prefix. Add the actual directory to your user's PATH.
64
+ Retrieviewer never edits a shell profile automatically.
65
+
66
+ For **bash/zsh**, this fixes the current shell:
67
+
68
+ ```sh
69
+ export PATH="$(npm prefix -g)/bin:$PATH"
70
+ ```
71
+
72
+ For **csh/tcsh**, if the printed prefix is `/home/you/.npm-global`, replace that
73
+ example with your actual result:
74
+
75
+ ```csh
76
+ set path = ( /home/you/.npm-global/bin $path )
77
+ rehash
78
+ ```
79
+
80
+ Persist the appropriate line manually in your shell's own startup file if needed.
81
+ For Windows, reopen PowerShell first; if necessary add the printed npm prefix in
82
+ Windows User Environment Variables → Path. Do not overwrite the entire PATH.
83
+ If PowerShell policy blocks npm.ps1 or retrieviewer.ps1, use `npm.cmd` and
84
+ `retrieviewer.cmd` instead. Do not weaken your execution policy just for this pet.
85
+
86
+ If global npm install reports EACCES, use a properly configured per-user npm
87
+ prefix/Node installation with your administrator's guidance—not blanket sudo npm.
88
+ Meanwhile the one-off command does not require global PATH setup:
89
+
90
+ ```sh
91
+ npx --yes --package @bitefoundry/retrieviewer@latest retrieviewer desktop
92
+ ```
93
+
94
+ `npx` still needs Node/npm and a compatible GUI desktop, and may download the
95
+ package into npm's cache. It does not create a permanent global command.
package/PUPPY-MEMORY.md CHANGED
@@ -1,4 +1,105 @@
1
- # Lossless runtime cache reduction
1
+ # Runtime weight and performance
2
+
3
+ ## Comfort behaviors (0.0.4)
4
+
5
+ Belly-up flopping and eyes-closed sleeping reuse the existing action/rest art.
6
+ Tug adds eight authored keys and the exact existing seat endpoint, not a dense
7
+ tween film:103,549 compressed bytes and291,337 resident Q5 pixel bytes. The sampler
8
+ allocates its single RGBA output only on first use; source reconstruction remains
9
+ a two-frame LRU. No new runtime dependency, background process or timer is added.
10
+
11
+ The legacy interaction sheet contains101 unique frames that no active clip can
12
+ reach. The Q5 loader now retains only the23 unique frames used by treat/pickup/drop.
13
+ All active samples compare byte-for-byte against the full store. Normal codec
14
+ loading still retains every frame unless explicitly supplied a validated index
15
+ list; requesting an excluded frame fails rather than displaying a substitute.
16
+
17
+ | Resident cropped pixel payload | Bytes |
18
+ | --- | ---: |
19
+ | Before comfort extension | 66,515,834 |
20
+ | Remove unreachable interaction pixels | −4,444,163 |
21
+ | Add tug keys | +291,337 |
22
+ | Current total | 62,363,008 |
23
+
24
+ Thus new poses use about4.15 MB less resident art than the previous source version.
25
+ This is an art-payload measurement, not a guarantee that OS-reported RSS falls by
26
+ the same amount. In three fresh Windows benchmark samples, mean frame time median
27
+ was3.22 ms versus3.29 ms previously; peak process RSS median was262.3 versus263.3
28
+ MiB (small differences, not a meaningful promised performance improvement).
29
+ The same450-frame ball hash still matches exactly. Source measurements live in
30
+ `dist/performance/comfort-{1,2,3}.json` locally.
31
+
32
+ `puppy-comfort-runtime.test.mjs` checks repeated load/render/tug/dispose, allowing
33
+ native gzip callbacks and GC to finish before checking retained arrays. No pet
34
+ buffers or timer handles remain after this bounded test. RSS reclamation remains
35
+ allocator/GC-dependent; dispose is not advertised as an immediate RSS reduction.
36
+
37
+ `node tools/check-comfort.mjs` produces deterministic off-screen dot snapshots
38
+ for all three behaviors under `dist/comfort-qa/`. Snoring is a silent rising dot
39
+ cue, not audio playback. Ball/treat/tug wake a sleeping pet through the existing
40
+ recovery instead of waiting out the long sleep hold. Belly also shortens its hold
41
+ on interaction and finishes the authored roll safely.
42
+
43
+ ## Earlier runtime optimization (also included in0.0.4)
44
+
45
+ The dot-art actor already integrates its own travel, stride and perspective. Its
46
+ former Three.js animal only supplied a position copied from that actor's target;
47
+ mesh deformation and inverse kinematics were not used by the dot renderer. The
48
+ runtime now uses a small position adapter instead. The original 3D implementation
49
+ remains in the working tree for comparison, but is excluded from the npm package;
50
+ Three.js is a development dependency only.
51
+
52
+ Stable Braille conversion skips black/transparent background pixels and packs cell
53
+ masks directly, preserving the original Float32 luminance rounding and thresholds.
54
+ The native frame pump also skips identical output frames while continuing the
55
+ simulation clock. Art, palette, camera and frame rate are unchanged.
56
+
57
+ Median of three paired fresh-process measurements on Windows, Node24.19.0:
58
+
59
+ | Metric | Before | After |
60
+ | --- | ---: | ---: |
61
+ | Asset load | 706.4 ms | 667.8 ms |
62
+ | 1,800 simulation steps | 114.3 ms | 3.2 ms |
63
+ | Mean render time per frame | 7.13 ms | 3.29 ms |
64
+ | Render time p95 | 9.93 ms | 5.77 ms |
65
+ | Peak benchmark-process RSS | 304.8 MiB | 263.3 MiB |
66
+
67
+ The rendering workload is450 frames at480×135 Braille cells (native4K output
68
+ with8px cells), seed731 and the same ball interaction. All six runs produced the
69
+ same SHA-256 text-frame hash:
70
+ `3a296d0a737eaa1d9a5923e3496e8c62b2d5e99fbe871806b907429515597a3d`.
71
+ The independent original-3D/body comparison also matches4,000 actor steps exactly.
72
+ Additional autonomous episodes reuse existing art: scanning, a same-depth patrol,
73
+ rolling, returning to the viewer and occasional playful turning. They are not part
74
+ of the fixed interactive benchmark trajectory.
75
+
76
+ Installed production files, including dependencies, decreased from45,188,203 to
77
+ 19,423,382 bytes. Tarball size decreased from20,615,763 to18,788,415 bytes. These
78
+ are different measures: installation shrank about57%, the tarball about9%.
79
+
80
+ These are local test-process samples, not desktop memory budgets or guarantees.
81
+ RSS includes loading transients, two sequential pet instances and allocator/GC
82
+ behavior. Browser, macOS and Linux performance were not measured in this pass.
83
+ The decoded Q5 art still occupies about66.5 MB; this change does not reduce that
84
+ resident art in that earlier pass; the comfort pass above reduces it further.
85
+
86
+ Reproduce from the development checkout:
87
+
88
+ ```sh
89
+ node --expose-gc tools/benchmark-pet.mjs ./retrieviewer.mjs ./dist/performance/current.json
90
+ npm test
91
+ npm run test:package
92
+ ```
93
+
94
+ The benchmark also accepts the absolute path to an installed older
95
+ `retrieviewer.mjs` as its first argument. It renders off-screen without changing
96
+ desktop settings. Paired results are retained under `dist/performance/` locally.
97
+
98
+ ## Earlier lossless runtime cache reduction
99
+
100
+ The measurements below describe the earlier RVF1 lossless pass, before Q5 art
101
+ and the current optimization. They are retained as historical comparisons, not
102
+ current package or memory figures. See `PUPPY-Q5-COMPARISON.md` for the palette pass.
2
103
 
3
104
  The weight came from 2,341 full-size grayscale frames stored as concatenated
4
105
  320² or 480² rasters, including exact duplicates and black padding. These are
package/README.ko.md ADDED
@@ -0,0 +1,110 @@
1
+ <p align="center"><a href="https://bitefoundry.github.io/retrieviewer/?lang=ko"><img src="https://raw.githubusercontent.com/BiteFoundry/retrieviewer/main/docs/assets/preview.png" alt="흑백 점자 도트로 그린 보송한 리트리버 Retrieviewer" width="960"></a></p>
2
+ <h1 align="center">Retrieviewer</h1>
3
+ <p align="center">일하는 화면에, 작은 친구 하나.</p>
4
+ <p align="center"><a href="https://bitefoundry.github.io/retrieviewer/?lang=ko">직접 만나 보기</a> · <a href="README.md">English</a> · <a href="https://www.npmjs.com/package/@bitefoundry/retrieviewer">npm</a> · <a href="https://github.com/BiteFoundry/retrieviewer/issues">피드백</a></p>
5
+
6
+ 앱 창 위에서 혼자 걷고, 뛰고, 앉아서 쉬는 보송한 점자 도트 리트리버예요.
7
+ 발라당 누워 쉬거나 눈을 감고 잠들기도 해요. 가끔 공·간식·터그로 놀아주세요.
8
+ 나머지 시간에는 각자의 일을 하면 돼요.
9
+ [BiteFoundry](https://github.com/BiteFoundry)가 만듭니다.
10
+ 런타임에는 계정, 모델 API, 텔레메트리가 필요하지 않아요.
11
+
12
+ ## 데려오기
13
+
14
+ **앱 화면이 보이는 컴퓨터**의 터미널에서 실행하세요.
15
+ Node.js/npm이 없다면 [먼저 설치](PREREQUISITES.md)해 주세요.
16
+
17
+ 1. 설치 또는 업데이트:
18
+
19
+ ```sh
20
+ npm install -g @bitefoundry/retrieviewer@latest
21
+ ```
22
+
23
+ 2. 실행한 뒤, 선택창에서 강아지를 붙일 앱 창을 고르세요.
24
+
25
+ ```sh
26
+ retrieviewer desktop
27
+ ```
28
+
29
+ 다음부터는 `retrieviewer desktop`만 실행하면 돼요. 앱을 개조하거나 MCP로
30
+ 그림을 주입하지 않아요. 별도의 투명 네이티브 창으로 따라다니며 일반 클릭은
31
+ 통과시킵니다. 앱 창 단위로 동작하고, 대상 창이 비활성화·최소화되면 숨습니다.
32
+ 자동 시작이나 셸 래퍼는 등록하지 않아요.
33
+
34
+ > **Cursor / VS Code Remote SSH 사용자:** 원격 서버의 터미널이 아닌,
35
+ > Cursor 화면이 떠 있는 **로컬 PC의 PowerShell/터미널**에 설치하세요.
36
+ > 서버의 `DISPLAY=:1`은 서버 쪽 X11 화면을 뜻합니다. VNC로 그 화면을 보고
37
+ > 있다면 그 안에서 쓸 수 있지만, 로컬 Cursor 창에 자동으로 붙는 것은 아니에요.
38
+
39
+ <details>
40
+ <summary>npx로 한 번 써보기 / 명령을 찾을 수 없을 때</summary>
41
+
42
+ ```sh
43
+ npx --yes --package @bitefoundry/retrieviewer@latest retrieviewer desktop
44
+ ```
45
+
46
+ `npx`는 영구 명령 등록이 아니에요. 이후 짧은 명령으로 실행하려면 위의 전역
47
+ 설치를 해주세요. 전역 설치 후에도 command not found라면 npm 실행 경로를
48
+ PATH에 넣어야 해요. [bash·csh/tcsh·Windows별 안내](PREREQUISITES.md#command-not-found).
49
+ 무조건 sudo npm으로 해결하지 마세요.
50
+
51
+ </details>
52
+
53
+ ## Node.js가 없다면
54
+
55
+ - **Windows:** [공식 Node.js 설치 페이지](https://nodejs.org/en/download)의
56
+ Windows 설치 파일을 쓰세요. npm·PATH 추가 옵션을 유지하고 PowerShell을 새로 여세요.
57
+ - **macOS:** 같은 공식 페이지의 macOS 설치 파일을 쓰세요. 다만 강아지의 macOS
58
+ 오버레이는 아직 실기 검증 전인 실험적 지원이에요.
59
+ - **AlmaLinux8:** 관리자와 Node22 모듈 사용을 확인하세요. 기존 Node 스트림이 없는
60
+ 환경이라면 `sudo dnf module install nodejs:22`를 사용할 수 있어요.
61
+ 회사 관리 환경의 모듈을 임의로 reset하거나 바꾸지 마세요.
62
+ - `node --version`, `npm --version`으로 확인하세요. 패키지는 Node20+를 요구하고,
63
+ Alma8에서는 Node22.23.4를 검증했어요. [자세한 의존 도구·PATH 안내](PREREQUISITES.md).
64
+
65
+ ## 지원 환경
66
+
67
+ | 환경 | 상태와 필요 조건 |
68
+ | --- | --- |
69
+ | Windows10/11 x64 | 실제 실행 검증. Node + .NET Framework4 컴파일러. 처음 실행 시 헬퍼 자동 빌드. |
70
+ | Linux X11 | AlmaLinux8 / GLIBC2.28 / Python3.6.8 / Node22.23.4를 격리된 GUI에서 검증. Python3.6+, X11/Xrender/Xext, compositor 필요. |
71
+ | macOS | **실험적 지원. 실제 Mac 실행 미검증.** 기본 osascript/AppKit 사용. |
72
+ | 네이티브 Wayland·화면 없는 SSH | 데스크톱 오버레이 미지원. 세션·보안 설정을 자동 변경하지 않아요. |
73
+
74
+ Linux는 저사양 기본값인 16px 셀·15fps, Windows는 8px 셀·30fps여서 Linux의
75
+ 점이 더 거칠게 보일 수 있어요. 그림 원본은 같은 Q5 자산입니다.
76
+ 무부하·초경량 도구는 아니에요. npm 압축본은 약19MB예요. 이전0.0.3의 작은
77
+ Alma8 테스트에서는 Node RSS가 약180MiB였고 Python 헬퍼는 별도였어요.
78
+ 이 값은 메모리 상한이나0.0.4의 새 Linux GUI 검증 결과는 아니에요.
79
+ [지원 범위와 검증 내용](DESKTOP-PLATFORMS.md).
80
+
81
+ ## 쉽게 종료하고 제거하기
82
+
83
+ 컨트롤에서 종료하거나 `retrieviewer desktop-stop`을 실행하세요.
84
+ 자체 캐시와 패키지를 제거하려면:
85
+
86
+ ```sh
87
+ retrieviewer desktop-remove --yes
88
+ npm uninstall -g @bitefoundry/retrieviewer
89
+ ```
90
+
91
+ 데스크톱 동반자는 에이전트 인증정보·실행 파일·셸 프로필을 수정하지 않아요.
92
+ 별도로 [OpenCode 네이티브 등록](INSTALLING.md)을 했다면 해당 등록을 disconnect한
93
+ 뒤 제거하세요. Codex/Claude/Cursor 등에 MCP만 연결해 내부 그림을 띄우는 기능은 없어요.
94
+
95
+ ## 직접 만든 TUI에 붙이기
96
+
97
+ JS 플러그인과 JSONL 브리지를 제공해요. 화면·입력·시간 제어는 호스트가 소유합니다.
98
+ [English 예제](README.md#put-it-inside-your-own-tui) · [플러그인 수명주기](PLUGIN.md) ·
99
+ [코어와 브리지](EMBEDDING.md) · [기여하기](CONTRIBUTING.md).
100
+
101
+ ## 코드와 그림의 라이선스는 달라요
102
+
103
+ **코드 MIT / 그림 CC BY-SA4.0.** 각 조건에 따른 상업적 재사용이 가능해요.
104
+ 그림은 출처 표시와 해당하는 동일조건변경허락 의무를 지켜주세요.
105
+ 패키지 전체가 MIT인 것은 아닙니다.
106
+ [그림 조건](ASSETS-LICENSE.md) · [필수 크레딧](ATTRIBUTION.md) ·
107
+ [서드파티 고지](THIRD-PARTY-NOTICES.md) · [브랜드 안내](TRADEMARKS.md).
108
+
109
+ AI로 생성한 그림에 자세 정렬·접지·프레임 처리를 적용한 애니메이션입니다.
110
+ 실제 모션 캡처나 자의식이 있는 강아지라고 주장하지 않아요.