@bitefoundry/retrieviewer 0.0.16 → 0.0.18
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/ASSET-PROVENANCE.md +11 -0
- package/ASSETS-LICENSE.md +6 -0
- package/ATTRIBUTION.md +8 -0
- package/DESKTOP-PLATFORMS.md +1 -1
- package/EMBEDDING.md +15 -9
- package/INSTALLING.md +2 -1
- package/LICENSE +16 -16
- package/NATIVE-RUNTIME.md +89 -0
- package/PREREQUISITES.md +7 -0
- package/PUPPY-MEMORY.md +70 -0
- package/README.ko.md +13 -1
- package/README.md +14 -1
- package/RELEASING.md +36 -1
- package/THIRD-PARTY-NOTICES.md +8 -0
- package/WINDOWS-COMPANION.md +15 -6
- package/braille.mjs +2 -2
- package/integrations/native-windows/CMakeLists.txt +15 -0
- package/integrations/native-windows/THIRD-PARTY-LICENSES.txt +77 -0
- package/integrations/native-windows/application.manifest +8 -0
- package/integrations/native-windows/bin/win32-x64/retrieviewer-native.exe +0 -0
- package/integrations/native-windows/desktop.mjs +45 -0
- package/integrations/native-windows/host.cpp +84 -0
- package/integrations/native-windows/manifest.json +14 -0
- package/integrations/native-windows/native-control.hpp +41 -0
- package/integrations/native-windows/native-window.hpp +128 -0
- package/integrations/native-windows/runtime.bundle.mjs +4694 -0
- package/integrations/native-windows/runtime.mjs +55 -0
- package/integrations/native-windows/sources.json +23 -0
- package/integrations/purrviewer/ART.md +289 -0
- package/integrations/purrviewer/ASSETS-LICENSE.md +21 -0
- package/integrations/purrviewer/LICENSE +24 -0
- package/integrations/purrviewer/art/ginger.bin.gz +0 -0
- package/integrations/purrviewer/art/ginger.json +1707 -0
- package/integrations/purrviewer/art/ginger.rvz +0 -0
- package/integrations/purrviewer/src/contact.mjs +63 -0
- package/integrations/purrviewer/src/habitat.mjs +41 -0
- package/integrations/purrviewer/src/life.mjs +280 -0
- package/integrations/purrviewer/src/purrviewer-core.mjs +130 -0
- package/integrations/purrviewer/src/purrviewer.mjs +37 -0
- package/integrations/purrviewer/src/walk-cycle.mjs +3 -0
- package/integrations/purrviewer/src/world.mjs +216 -0
- package/integrations/purrviewer/vendor/retrieviewer/LICENSE-CODE +21 -0
- package/integrations/purrviewer/vendor/retrieviewer/braille.mjs +73 -0
- package/integrations/purrviewer/vendor/retrieviewer/puppy-frame-file.mjs +15 -0
- package/integrations/purrviewer/vendor/retrieviewer/puppy-frame-indexed.mjs +78 -0
- package/integrations/purrviewer/vendor/retrieviewer/puppy-frame-predictive.mjs +170 -0
- package/integrations/purrviewer/vendor/retrieviewer/puppy-frame-store.mjs +114 -0
- package/integrations/windows-overlay/desktop.mjs +11 -3
- package/integrations/windows-overlay/worker.mjs +9 -2
- package/package.json +53 -13
- package/pet-indexed-manifest.json +106 -0
- package/puppy-clean.mjs +2 -2
- package/puppy-companion-comfort-q5.rvz +0 -0
- package/puppy-companion-interactions-v3-q5.rvz +0 -0
- package/puppy-companion-sprites.mjs +2 -2
- package/puppy-frame-file.mjs +15 -0
- package/puppy-frame-indexed.mjs +78 -0
- package/puppy-frame-predictive.mjs +1 -1
- package/puppy-frame-store.mjs +6 -0
- package/puppy-paper-actions-v9-q5.rvz +0 -0
- package/puppy-paper-actions.mjs +2 -2
- package/puppy-paper-approach-q5.rvz +0 -0
- package/puppy-paper-arrival-seat-q5.rvz +0 -0
- package/puppy-paper-behaviors-q5.rvz +0 -0
- package/puppy-paper-behaviors.mjs +1 -1
- package/puppy-paper-contact.mjs +2 -2
- package/puppy-paper-rear-gallop-q5.rvz +0 -0
- package/puppy-paper-seat-q5.rvz +0 -0
- package/puppy-paper-seat.mjs +2 -2
- package/puppy-paper.mjs +12 -12
- package/puppy-stride-tweens-q5.rvz +0 -0
- package/retrieviewer-cli.mjs +10 -6
- package/retrieviewer.d.mts +1 -1
- package/retrieviewer.mjs +35 -14
- package/puppy-companion-comfort-q5.bin.gz +0 -0
- package/puppy-companion-interactions-v3-q5.bin.gz +0 -0
- package/puppy-paper-actions-v9-q5.bin.gz +0 -0
- package/puppy-paper-approach-q5.bin.gz +0 -0
- package/puppy-paper-arrival-seat-q5.bin.gz +0 -0
- package/puppy-paper-behaviors-q5.bin.gz +0 -0
- package/puppy-paper-rear-gallop-q5.bin.gz +0 -0
- package/puppy-paper-seat-q5.bin.gz +0 -0
- package/puppy-stride-tweens-q5.bin.gz +0 -0
package/ASSET-PROVENANCE.md
CHANGED
|
@@ -121,3 +121,14 @@ domestic trademark research records possible similar marks; owning an npm scope
|
|
|
121
121
|
does not resolve them. No trademark filing or legal service is part of this
|
|
122
122
|
release. The review records provenance, compatible release terms and exclusions;
|
|
123
123
|
it must not be advertised as comprehensive IP clearance.
|
|
124
|
+
|
|
125
|
+
## Ginger cat release · 2026-10-25
|
|
126
|
+
|
|
127
|
+
The owner explicitly selected CC BY-SA4.0 for the approved ginger cat and
|
|
128
|
+
authorized including it in this npm/website release. Code stays MIT.
|
|
129
|
+
Purrviewer source commit5452da3569623b26f1ea87f1097735a1606c5c67 records
|
|
130
|
+
the65-key artwork and code. The included ART.md records source-sheet hashes,
|
|
131
|
+
registration and approved extensions; research photos were observation only,
|
|
132
|
+
not generation inputs or bundled runtime assets. Original source sheets,
|
|
133
|
+
research media and the unused tuxedo prototype are excluded. Alternative RVZ5
|
|
134
|
+
encoding preserves every decoded Q5 pixel. See the cat ASSETS-LICENSE.md.
|
package/ASSETS-LICENSE.md
CHANGED
|
@@ -57,3 +57,9 @@ unrestricted. No warranty or legal-clearance certification is supplied.
|
|
|
57
57
|
사용·수정·재배포도 가능하며, 변경한 그림을 배포할 때는 동일조건을 지켜야
|
|
58
58
|
합니다. 코드에는 별도의 MIT 라이선스가 적용됩니다. 사진 참고 출처와 가공
|
|
59
59
|
경위는 ATTRIBUTION.md에 포함되며, 원본 사진은 패키지에 포함하지 않습니다.
|
|
60
|
+
|
|
61
|
+
## Ginger cat (0.0.18)
|
|
62
|
+
|
|
63
|
+
The included Purrviewer ginger-cat artwork and metadata also use CC BY-SA 4.0,
|
|
64
|
+
explicitly selected by the owner on 2026-10-25. See
|
|
65
|
+
[integrations/purrviewer/ASSETS-LICENSE.md](integrations/purrviewer/ASSETS-LICENSE.md).
|
package/ATTRIBUTION.md
CHANGED
|
@@ -57,3 +57,11 @@ Reference photo collections, YouTube footage, experimental Meshy models,
|
|
|
57
57
|
noncommercial motion research/datasets, interpolation tools/model weights and
|
|
58
58
|
worker logs are not distributed in this package. No exclusive copyright in
|
|
59
59
|
otherwise unprotected AI output is claimed. Code has its own MIT license.
|
|
60
|
+
|
|
61
|
+
## Purrviewer ginger cat
|
|
62
|
+
|
|
63
|
+
Ginger-cat artwork and motion assembly: BiteFoundry project maintainer, 2026.
|
|
64
|
+
AI-generated poses, registered and quantized into grayscale Q5 crops.
|
|
65
|
+
CC BY-SA 4.0; attribution and creation record in
|
|
66
|
+
[integrations/purrviewer/ASSETS-LICENSE.md](integrations/purrviewer/ASSETS-LICENSE.md)
|
|
67
|
+
and [ART.md](integrations/purrviewer/ART.md).
|
package/DESKTOP-PLATFORMS.md
CHANGED
|
@@ -14,7 +14,7 @@ earlier0.0.3 baseline. macOS remains experimental.
|
|
|
14
14
|
|
|
15
15
|
| Platform | Adapter | Current verification boundary |
|
|
16
16
|
| --- | --- | --- |
|
|
17
|
-
| Windows10/11 |
|
|
17
|
+
| Windows10/11 | QuickJS/Win32 basic; Node/.NET optional watching | Live verified; shared-adapter regression checks passed on this host |
|
|
18
18
|
| macOS | Built-in osascript/JXA AppKit, no Python/Xcode/browser runtime | Experimental; no macOS runtime available on this Windows host |
|
|
19
19
|
| Linux X11 | Python3.6+ stdlib ctypes + X11/Xrender/Xext | AlmaLinux8 GLIBC2.28/Python3.6.8/Node22.23.4 live checks passed on owned Xvfb + Openbox + xcompmgr |
|
|
20
20
|
| Linux native Wayland | No arbitrary-window tracking adapter | Refused, including sessions exposing an Xwayland DISPLAY; no insecure compositor workaround |
|
package/EMBEDDING.md
CHANGED
|
@@ -52,10 +52,16 @@ Redirected stdout prints one plain frame and exits.
|
|
|
52
52
|
## Assets / original option
|
|
53
53
|
|
|
54
54
|
Default files resolve against the module URL, never cwd (lazy Node fs or browser
|
|
55
|
-
HTTP fetch). getPetAssetFiles(profile?) returns
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
55
|
+
HTTP fetch). getPetAssetFiles(profile?) returns 19 filenames: nine art archives
|
|
56
|
+
plus ten metadata files. Copy these unchanged for bundlers. The default Q5 files
|
|
57
|
+
use `.rvz`, an index followed by individually gzip-compressed crops. A custom
|
|
58
|
+
loader returns the original ArrayBuffer/typed bytes, without unpacking the archive.
|
|
59
|
+
|
|
60
|
+
Local Node hosts using the default loader read only the indices at creation and
|
|
61
|
+
read/decode requested crops synchronously into a two-frame cache per family.
|
|
62
|
+
There is no background loader or extra process. The final pet's `dispose()` closes
|
|
63
|
+
the shared files. Custom loaders and browsers use the portable memory-backed
|
|
64
|
+
store; they do not receive the local file-backed memory reduction.
|
|
59
65
|
|
|
60
66
|
```js
|
|
61
67
|
import {createPet,getPetAssetFiles} from '@bitefoundry/retrieviewer';
|
|
@@ -74,11 +80,11 @@ They are **not bundled** in the small distribution. For external original art,
|
|
|
74
80
|
copy getPetAssetFiles('original') from the workspace and supply loadAsset. Missing
|
|
75
81
|
originals fail clearly, never silently fall back.
|
|
76
82
|
|
|
77
|
-
Q5 is lossy quantization (max source
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
See [PUPPY-
|
|
83
|
+
Q5 is lossy quantization (max original-source pixel error 4/255). The indexed
|
|
84
|
+
repack is lossless relative to the approved Q5 art: all 2,401 logical frames and
|
|
85
|
+
their timing remain unchanged. The nine indexed archives total 19,326,068 bytes;
|
|
86
|
+
their indices total 54,040 bytes. No Three.js dependency runs in the pet core.
|
|
87
|
+
See [PUPPY-MEMORY.md](./PUPPY-MEMORY.md) for measured costs and host limitations.
|
|
82
88
|
|
|
83
89
|
## JSONL bridge (Python/Rust/other process hosts)
|
|
84
90
|
|
package/INSTALLING.md
CHANGED
|
@@ -13,7 +13,8 @@ mask and native painter, without new color sprites or screen capture.
|
|
|
13
13
|
Windows and AlmaLinux8/GLIBC2.28 X11 have live test evidence. macOS support is
|
|
14
14
|
experimental and not runtime verified; native Wayland is unsupported. Linux needs
|
|
15
15
|
system Python3.6+, X11/Xrender/Xext and a compositor; Windows needs the .NET
|
|
16
|
-
Framework4 compiler
|
|
16
|
+
Framework4 compiler only for the optional compatibility engine. Windows x64
|
|
17
|
+
basic mode uses the bundled native engine. See [Windows controls and removal](WINDOWS-COMPANION.md).
|
|
17
18
|
|
|
18
19
|
## Optional native OpenCode integration
|
|
19
20
|
|
package/LICENSE
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
Retrieviewer licensing
|
|
2
|
-
|
|
3
|
-
Software source code: MIT License, see LICENSE-CODE.
|
|
4
|
-
Bundled puppy artwork/frame data: Creative Commons Attribution-ShareAlike 4.0
|
|
5
|
-
International (CC-BY-SA-4.0), see ASSETS-LICENSE.md and ATTRIBUTION.md.
|
|
6
|
-
https://creativecommons.org/licenses/by-sa/4.0/legalcode.en
|
|
7
|
-
|
|
8
|
-
The complete package is not MIT-only. Commercial use is allowed under the
|
|
9
|
-
applicable terms. Artwork adaptations retain ShareAlike obligations; the
|
|
10
|
-
separately licensed software does not become CC-licensed merely by bundling it.
|
|
11
|
-
|
|
12
|
-
Third-party components retain their original notices, including the MIT license
|
|
13
|
-
under vendor/procedural-animals. See THIRD-PARTY-NOTICES.md.
|
|
14
|
-
|
|
15
|
-
No exclusive copyright in AI-generated output, registered trademark status,
|
|
16
|
-
third-party endorsement or comprehensive legal clearance is claimed.
|
|
1
|
+
Retrieviewer licensing
|
|
2
|
+
|
|
3
|
+
Software source code: MIT License, see LICENSE-CODE.
|
|
4
|
+
Bundled puppy and ginger-cat artwork/frame data: Creative Commons Attribution-ShareAlike 4.0
|
|
5
|
+
International (CC-BY-SA-4.0), see ASSETS-LICENSE.md and ATTRIBUTION.md.
|
|
6
|
+
https://creativecommons.org/licenses/by-sa/4.0/legalcode.en
|
|
7
|
+
|
|
8
|
+
The complete package is not MIT-only. Commercial use is allowed under the
|
|
9
|
+
applicable terms. Artwork adaptations retain ShareAlike obligations; the
|
|
10
|
+
separately licensed software does not become CC-licensed merely by bundling it.
|
|
11
|
+
|
|
12
|
+
Third-party components retain their original notices, including the MIT license
|
|
13
|
+
under vendor/procedural-animals. See THIRD-PARTY-NOTICES.md.
|
|
14
|
+
|
|
15
|
+
No exclusive copyright in AI-generated output, registered trademark status,
|
|
16
|
+
third-party endorsement or comprehensive legal clearance is claimed.
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# Lightweight desktop runtime · 0.0.18
|
|
2
|
+
|
|
3
|
+
Windows x64 basic desktop mode runs the existing JavaScript pet behavior in
|
|
4
|
+
QuickJS-NG, inside the same native process that paints the transparent window.
|
|
5
|
+
Node/npm launches it and exits. There is no persistent Node worker, CLR runtime,
|
|
6
|
+
browser, Electron, extra npm dependency or install-time compiler in this mode.
|
|
7
|
+
|
|
8
|
+
```sh
|
|
9
|
+
retrieviewer desktop
|
|
10
|
+
retrieviewer desktop --pet cat
|
|
11
|
+
retrieviewer desktop-status --json
|
|
12
|
+
retrieviewer desktop-stop
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Choose Retriever or Ginger cat in the picker/control strip, or run the second
|
|
16
|
+
command to switch a running native companion. Only the selected pet is loaded.
|
|
17
|
+
Switching disposes its assets before creating the other one. No startup service,
|
|
18
|
+
agent patch or wrapper is installed. Removal is `retrieviewer desktop-remove --yes`
|
|
19
|
+
followed by `npm uninstall -g @bitefoundry/retrieviewer`.
|
|
20
|
+
|
|
21
|
+
## Artwork and behavior
|
|
22
|
+
|
|
23
|
+
The same pure dog/cat factories own motion, perspective, contacts, actions and
|
|
24
|
+
autonomy. The native host supplies gzip, Q5 reconstruction, grayscale raster and
|
|
25
|
+
stable Braille kernels. Individually compressed crops are read from indexed
|
|
26
|
+
files, with two borrowed decoded frames per store. The 256 Braille-mask stamp
|
|
27
|
+
atlas replaces thousands of GDI+ ellipse calls and preserves the original dots.
|
|
28
|
+
|
|
29
|
+
The actual native kernels were compared to portable Node across 64 dog and 128
|
|
30
|
+
cat output frames at 160×72 and 480×135 cells, including movement, eating,
|
|
31
|
+
attention, stretching, greeting, company, tower and wheel. All 234,455,040 RGBA
|
|
32
|
+
bytes matched. Tests retain SHA-256 results; no resampling or lossier art was
|
|
33
|
+
introduced. Code is MIT. Dog and cat artwork is CC BY-SA 4.0.
|
|
34
|
+
|
|
35
|
+
## Measured memory
|
|
36
|
+
|
|
37
|
+
On this Windows10/11 x64 host, one native process rendered an owned off-screen
|
|
38
|
+
3840×2160 window for150seconds per species, sampled twice per second. The
|
|
39
|
+
ordinary runtime used its diagnostic target, real GDI+ painter and scheduled
|
|
40
|
+
play/treat/attention or tower/wheel actions. No forced GC or working-set trimming.
|
|
41
|
+
|
|
42
|
+
| Pet | Median RSS | Sampled maximum | OS lifetime peak |
|
|
43
|
+
|---|---:|---:|---:|
|
|
44
|
+
| Retriever |29.4MiB|39.3MiB|39.9MiB|
|
|
45
|
+
| Ginger cat |44.2MiB|61.8MiB|65.3MiB|
|
|
46
|
+
|
|
47
|
+
The cat's scene also includes the tower and wheel. It is typically below50MiB
|
|
48
|
+
in this measurement, but its peaks exceed50MiB; this is not a strict50MiB cap.
|
|
49
|
+
The preceding Node/CLR dog had a sampled maximum170.7MiB on the same host.
|
|
50
|
+
Raw evidence: dist/native-product-memory/{dog,cat,report}.json (local QA output).
|
|
51
|
+
Reproduce with the measurement command below. Package/website figures are
|
|
52
|
+
rounded; memory remains dependent on scene, window dimensions and OS behavior.
|
|
53
|
+
|
|
54
|
+
## Scope
|
|
55
|
+
|
|
56
|
+
This default native runtime is **Windows x64**. `--watch stackbite` and
|
|
57
|
+
`--brain openrouter` retain the Node/.NET compatibility path on Windows;
|
|
58
|
+
`--engine node` explicitly selects it. Their memory use is higher. Linux X11
|
|
59
|
+
keeps Node + system Python; macOS keeps its experimental Node/JXA path. Both
|
|
60
|
+
species work through those adapters, with the existing three controls mapped
|
|
61
|
+
to toy/greeting, treat and company for the cat. Tower/wheel controls are in the
|
|
62
|
+
Windows native bar and website. Browser previews keep their portable loader.
|
|
63
|
+
The native memory figures do not describe optional watching, other operating
|
|
64
|
+
systems or browser tabs. No blanket memory ceiling is promised for every window.
|
|
65
|
+
|
|
66
|
+
## Build and lifecycle
|
|
67
|
+
|
|
68
|
+
Maintainers run `npm run build:native` on Windows x64 with Visual Studio 2022 C++
|
|
69
|
+
Build Tools, CMake and Bun. It bundles the ordinary factories without source
|
|
70
|
+
rewriting, verifies pinned QuickJS/zlib commits, statically links the CRT, and
|
|
71
|
+
writes a size/SHA-256 manifest for the shipped binary and bundle. Only Windows
|
|
72
|
+
system DLLs are required. Sources, source pins and upstream license texts ship
|
|
73
|
+
with the package. End users receive the prebuilt executable.
|
|
74
|
+
|
|
75
|
+
The short-lived launcher sends configuration over stdin, waits for readiness,
|
|
76
|
+
then acknowledges detach. EOF before detach stops the native process. A local
|
|
77
|
+
owner-only named pipe with a per-launch random token supports status, species
|
|
78
|
+
switching and stop; remote pipe clients are rejected. The process removes only
|
|
79
|
+
its own session file on exit. The picker follows one explicitly selected app;
|
|
80
|
+
it hides and freezes when that app is not foreground. It reads window geometry
|
|
81
|
+
and titles, not screen content or keyboard input. Watch/brain remain opt-in.
|
|
82
|
+
|
|
83
|
+
QA: `node --test native-desktop.test.mjs`, `npm run check:native-pixels`, and
|
|
84
|
+
`node tools/measure-native-pet.mjs 150`. These use isolated state and owned
|
|
85
|
+
off-screen diagnostic windows, preserving an already-running user companion.
|
|
86
|
+
|
|
87
|
+
The executable embeds the Windows UTF-8 process code-page manifest (Windows10
|
|
88
|
+
1903+ /11) so QuickJS stdio also reads Korean/non-ASCII installation paths.
|
|
89
|
+
A regression test launches both species from Korean bundle, art and state paths.
|
package/PREREQUISITES.md
CHANGED
|
@@ -93,3 +93,10 @@ npx --yes --package @bitefoundry/retrieviewer@latest retrieviewer desktop
|
|
|
93
93
|
|
|
94
94
|
`npx` still needs Node/npm and a compatible GUI desktop, and may download the
|
|
95
95
|
package into npm's cache. It does not create a permanent global command.
|
|
96
|
+
|
|
97
|
+
## Windows native basic mode (0.0.18)
|
|
98
|
+
|
|
99
|
+
Windows10/11 x64 + Node20+ for npm/launch. The shipped QuickJS/Win32 runtime
|
|
100
|
+
needs no compiler, CLR or additional runtime download. Node exits after launch.
|
|
101
|
+
Optional StackBite/LLM watching or --engine node keeps the existing .NET helper
|
|
102
|
+
and Node worker; that compatibility mode needs the Windows Framework4 compiler.
|
package/PUPPY-MEMORY.md
CHANGED
|
@@ -1,5 +1,75 @@
|
|
|
1
|
+
# 0.0.18 native desktop result
|
|
2
|
+
|
|
3
|
+
Windows x64 basic mode now uses a single QuickJS/Win32 process. In real4K
|
|
4
|
+
150second tests the dog median RSS was29.4MiB (OS lifetime peak39.9MiB),
|
|
5
|
+
and cat median44.2MiB (peak65.3MiB). Same artwork/motion; no forced GC/trim.
|
|
6
|
+
The cat typically fits50MiB here but peaks exceed it. These figures exclude
|
|
7
|
+
optional StackBite/LLM watching, other OS hosts and browser tabs.
|
|
8
|
+
See [method, architecture and compatibility scope](NATIVE-RUNTIME.md).
|
|
9
|
+
|
|
10
|
+
## Earlier Node measurements (historical)
|
|
11
|
+
|
|
1
12
|
# Runtime weight and performance
|
|
2
13
|
|
|
14
|
+
## Indexed local art (local candidate, 2026-10-25)
|
|
15
|
+
|
|
16
|
+
The default local Node loader opens nine RVZ5 files and reads only 54,040 bytes
|
|
17
|
+
of indices (plus 20-byte header probes). Each file contains the exact approved
|
|
18
|
+
RVQ5 filtered rows, individually gzip-compressed offline at level 9. Frame access
|
|
19
|
+
reads and inflates one requested crop into the existing two-frame-per-family
|
|
20
|
+
cache. No artwork family is decompressed/recompressed during startup; no loader
|
|
21
|
+
thread, process, dependency, polling timer or persistent user cache is added.
|
|
22
|
+
Shared pets hold one set of file descriptors. Last disposal closes all nine;
|
|
23
|
+
partial startup failure closes previously opened files. Repeated disposal is safe.
|
|
24
|
+
|
|
25
|
+
All 2,401 logical source frames are pixel-identical, including duplicates and
|
|
26
|
+
random seeks. The indexed repack round-trips to byte-identical RVQ5 archives.
|
|
27
|
+
The 450-frame fetch replay retains the same trajectory and visible SHA256
|
|
28
|
+
`76d5ec6c58622f4330a277852e0d6cb16f4bf2f9fd118688d9ec97b35f80f6a8`.
|
|
29
|
+
Timing, contacts, physics, palettes, art resolution and behavior are unchanged.
|
|
30
|
+
|
|
31
|
+
Fresh-process Windows Node 24 samples, seed 731, 480x135 cells, the existing
|
|
32
|
+
`tools/benchmark-pet.mjs` workload. ArrayBuffers/RSS samples below use diagnostic
|
|
33
|
+
GC after native zlib-close callbacks; these are not desktop memory guarantees.
|
|
34
|
+
|
|
35
|
+
| Metric | Previous | Indexed |
|
|
36
|
+
|---|---:|---:|
|
|
37
|
+
| Initial load | 1,481ms | 17ms |
|
|
38
|
+
| Loaded ArrayBuffers | 21,122,810B | 206,439B |
|
|
39
|
+
| Rendered ArrayBuffers | 27,658,258B | 6,741,887B |
|
|
40
|
+
| Loaded process RSS | 92,504,064B | 66,420,736B |
|
|
41
|
+
| Rendered process RSS | 166,457,344B | 148,267,008B |
|
|
42
|
+
| Peak benchmark process RSS | 207,421,440B | 158,302,208B |
|
|
43
|
+
| Mean frame time | 4.04ms | 4.09ms |
|
|
44
|
+
| P95 frame time | 6.44ms | 6.80ms |
|
|
45
|
+
|
|
46
|
+
This is a RAM/startup tradeoff, not a smaller download: art bytes increase from
|
|
47
|
+
19,095,012 to 19,326,068 (about 1.2%) to allow independent crop reads. The npm
|
|
48
|
+
candidate is about 19.5MB versus 19.3MB; it contains only indexed Q5 art, not
|
|
49
|
+
duplicate legacy archives. Legacy source archives remain for authoring and exact
|
|
50
|
+
regression comparisons. `pet-indexed-manifest.json` describes the shipped format;
|
|
51
|
+
the older `pet-q5-manifest.json` describes its legacy source inputs.
|
|
52
|
+
|
|
53
|
+
Random-access storage adds synchronous small reads during rendering. The local
|
|
54
|
+
sample used OS-cached files; cold disks, network filesystems, antivirus and other
|
|
55
|
+
platforms can have different latency. Frame access validates gzip length/CRC and
|
|
56
|
+
filtered pixels on demand; headers, maps, crop bounds and offsets are validated
|
|
57
|
+
at opening. This differs from the old eager whole-archive pixel validation.
|
|
58
|
+
|
|
59
|
+
Browser/custom-loader compatibility is retained by restoring each indexed family
|
|
60
|
+
into the existing portable store during async creation. Those hosts do not get
|
|
61
|
+
the local file-backed RAM reduction. Actual Aside browser loading, Braille output
|
|
62
|
+
and a ball interaction were checked; no Node file module was requested there.
|
|
63
|
+
An isolated npm-installed Windows native check painted real frames, accepted the
|
|
64
|
+
native ball button and exited worker/painter cleanly. Its short Node sample was
|
|
65
|
+
73MiB RSS, with native-helper memory separate; it is not a peak or long-run budget.
|
|
66
|
+
No live Linux/macOS check was performed for this storage change.
|
|
67
|
+
|
|
68
|
+
Evidence: local `dist/indexed-art-{before,after}.json`,
|
|
69
|
+
`dist/indexed-art-tests.txt`, `dist/package-check-*/package-check.json` and
|
|
70
|
+
`dist/windows-overlay-qa/`. Rebuild/check deterministic archives with
|
|
71
|
+
`npm run bake:art-index` / `npm run check:art-index` in the source checkout.
|
|
72
|
+
|
|
3
73
|
## Held-pose invalidation (local candidate, 2026-10-24)
|
|
4
74
|
|
|
5
75
|
The desktop pump now asks `pet.needsFrame(viewport)` before rasterization. Only
|
package/README.ko.md
CHANGED
|
@@ -80,7 +80,7 @@ PATH에 넣어야 해요. [bash·csh/tcsh·Windows별 안내](PREREQUISITES.md#c
|
|
|
80
80
|
|
|
81
81
|
| 환경 | 상태와 필요 조건 |
|
|
82
82
|
| --- | --- |
|
|
83
|
-
| Windows10/11 x64 | 실제 실행 검증.
|
|
83
|
+
| Windows10/11 x64 | 실제 실행 검증. Node20+. 기본 실행은 포함된 네이티브 엔진, 선택형 감시는 .NET 호환 엔진. |
|
|
84
84
|
| Linux X11 | AlmaLinux8 / GLIBC2.28 / Python3.6.8 / Node22.23.4를 격리된 GUI에서 검증. Python3.6+, X11/Xrender/Xext, compositor 필요. |
|
|
85
85
|
| macOS | **실험적 지원. 실제 Mac 실행 미검증.** 기본 osascript/AppKit 사용. |
|
|
86
86
|
| 네이티브 Wayland·화면 없는 SSH | 데스크톱 오버레이 미지원. 세션·보안 설정을 자동 변경하지 않아요. |
|
|
@@ -108,6 +108,9 @@ npm uninstall -g @bitefoundry/retrieviewer
|
|
|
108
108
|
|
|
109
109
|
## StackBite 알림
|
|
110
110
|
|
|
111
|
+
0.0.17은 기존 그림과 움직임을 유지하고, 기본 로컬 Node 실행에서 필요한 그림만
|
|
112
|
+
파일에서 읽어요. [메모리 측정 기록](PUPPY-MEMORY.md)을 참고하세요.
|
|
113
|
+
|
|
111
114
|
0.0.16은 앞발로 살살 부르기와 두 발로 서서 벽 박박 긁기를 번갈아 보여줘요.
|
|
112
115
|
홈페이지에서도 두 동작을 눌러볼 수 있어요. Windows의 npm 설치형 StackBite도
|
|
113
116
|
감시할 수 있게 했어요. 작업 완료 체크표시는 아직 알림 대상이 아니에요.
|
|
@@ -144,3 +147,12 @@ JS 플러그인과 JSONL 브리지를 제공해요. 화면·입력·시간 제
|
|
|
144
147
|
|
|
145
148
|
AI로 생성한 그림에 자세 정렬·접지·프레임 처리를 적용한 애니메이션입니다.
|
|
146
149
|
실제 모션 캡처나 자의식이 있는 강아지라고 주장하지 않아요.
|
|
150
|
+
|
|
151
|
+
## 0.0.18
|
|
152
|
+
|
|
153
|
+
Windows x64 기본 실행은 네이티브 프로세스 하나만 남고 Node는 종료돼요.
|
|
154
|
+
그림과 움직임은 그대로예요. `retrieviewer desktop --pet cat` 또는 창 선택창에서
|
|
155
|
+
치즈 고양이를 고를 수 있어요. 둘 중 선택한 펫만 불러옵니다.
|
|
156
|
+
StackBite·LLM 감시는 메모리를 더 쓰는 기존 Node 호환 엔진을 유지해요.
|
|
157
|
+
Linux·macOS·브라우저의 호스트 구조는 그대로이며, 로컬 그림은 두 펫 모두
|
|
158
|
+
필요한 프레임만 파일에서 읽어요. [지원 범위와 측정](NATIVE-RUNTIME.md).
|
package/README.md
CHANGED
|
@@ -77,7 +77,7 @@ Do not use `sudo npm install -g` as a blanket workaround.
|
|
|
77
77
|
|
|
78
78
|
| Desktop | Status / requirements |
|
|
79
79
|
| --- | --- |
|
|
80
|
-
| Windows 10/11 x64 | Live tested.
|
|
80
|
+
| Windows 10/11 x64 | Live tested. Node20+; bundled native engine for basic mode. Optional watching uses the .NET compatibility helper. |
|
|
81
81
|
| Linux X11 | AlmaLinux 8 / GLIBC 2.28 / Python 3.6.8 / Node 22.23.4 tested in an isolated composited X11 desktop. Requires system Python 3.6+, X11/Xrender/Xext and a compositor. |
|
|
82
82
|
| macOS | **Experimental; no Mac runtime verification yet.** Uses built-in osascript/AppKit. |
|
|
83
83
|
| Native Wayland / headless SSH | Not supported by the desktop overlay. No session/privacy workaround is installed. |
|
|
@@ -141,6 +141,9 @@ Version 0.0.15 alerts without waiting for the model, shows the Seat name and
|
|
|
141
141
|
pending kind locally on Windows, and lets the puppy approach before looking
|
|
142
142
|
toward the sidebar. It reuses existing artwork; names never enter model input.
|
|
143
143
|
|
|
144
|
+
Version 0.0.17 keeps the same artwork and motion while loading only requested
|
|
145
|
+
frames from disk in the default local Node host. See [memory measurements](PUPPY-MEMORY.md).
|
|
146
|
+
|
|
144
147
|
Version 0.0.16 adds two approved attention gestures: a gentle seated paw and a
|
|
145
148
|
standing two-paw glass scrabble. They alternate for new alerts; both are playable
|
|
146
149
|
in the website demo. Windows watching also supports npm's PowerShell launcher.
|
|
@@ -185,3 +188,13 @@ the complete package is **not MIT-only**.
|
|
|
185
188
|
The puppy artwork was developed with AI-generated imagery and programmatic pose,
|
|
186
189
|
grounding and frame processing. It is authored animation, not motion capture or
|
|
187
190
|
a claim of sentience.
|
|
191
|
+
|
|
192
|
+
## 0.0.18
|
|
193
|
+
|
|
194
|
+
Windows x64 basic mode now runs one native process; Node exits after launch.
|
|
195
|
+
The existing artwork and behavior stay the same. Use `retrieviewer desktop --pet cat`
|
|
196
|
+
for the ginger cat, or select it in the window picker. Only one pet is loaded.
|
|
197
|
+
Optional StackBite/LLM watching retains the higher-memory Node compatibility
|
|
198
|
+
engine. Linux/macOS and browser previews retain their existing host architecture.
|
|
199
|
+
Both species use indexed crops for local loading.
|
|
200
|
+
See [runtime scope and measurements](NATIVE-RUNTIME.md).
|
package/RELEASING.md
CHANGED
|
@@ -1,4 +1,39 @@
|
|
|
1
|
-
# Retrieviewer 0.0.
|
|
1
|
+
# Retrieviewer 0.0.18 release process
|
|
2
|
+
|
|
3
|
+
Current target: `@bitefoundry/retrieviewer@0.0.18`, public `latest`.
|
|
4
|
+
The owner authorized immediate npm and website deployment of the lightweight
|
|
5
|
+
shared engine on2026-10-25, and explicitly selected CC BY-SA4.0 for cat artwork.
|
|
6
|
+
Code remains MIT. Ship the real native Windows x64 basic runtime, ginger cat and
|
|
7
|
+
portable compatibility paths. Preserve approved artwork, physics, autonomy,
|
|
8
|
+
optional watcher/brain behavior and the user's already-running pet.
|
|
9
|
+
|
|
10
|
+
Validate exact native-vs-portable rendered pixels, authenticated control,
|
|
11
|
+
species switching, startup EOF cleanup, real picker lifecycle and real4K memory.
|
|
12
|
+
Build/install a fresh exact tarball, compare every shipped byte, run the full
|
|
13
|
+
suite and owned Windows checks, then publish that artifact. Verify registry
|
|
14
|
+
integrity, a fresh public-registry consumer and the deployed bilingual website.
|
|
15
|
+
Native low-memory figures apply only to Windows x64 basic mode; watch/brain,
|
|
16
|
+
other operating systems and browser previews keep their documented scope.
|
|
17
|
+
|
|
18
|
+
## Previous 0.0.17 scope (historical)
|
|
19
|
+
|
|
20
|
+
# Retrieviewer 0.0.17 release process
|
|
21
|
+
|
|
22
|
+
Current target: `@bitefoundry/retrieviewer@0.0.17`, public `latest`.
|
|
23
|
+
On 2026-10-25 the owner authorized publication of the indexed local-art update
|
|
24
|
+
and measurement of actual operating memory. Local Node hosts read only the art
|
|
25
|
+
indices at startup, then reconstruct requested crops from file-backed archives.
|
|
26
|
+
All 2,401 approved Q5 frames, timing and behavior remain unchanged. The browser
|
|
27
|
+
and custom-loader paths retain the compatible memory-backed representation.
|
|
28
|
+
No new dependency, background loader, process or persistent user cache is added.
|
|
29
|
+
|
|
30
|
+
Publish one fresh installed/native-tested tarball after Windows/Linux CI and
|
|
31
|
+
verify its registry integrity and a fresh registry consumer. Keep existing pets
|
|
32
|
+
running; measure only owned diagnostic windows and report Node and native-helper
|
|
33
|
+
working sets separately. No real approval, paid inference or user-window change
|
|
34
|
+
is needed for the measurement. Preserve all existing registry releases.
|
|
35
|
+
|
|
36
|
+
## Previous 0.0.16 scope (historical)
|
|
2
37
|
|
|
3
38
|
Current target: `@bitefoundry/retrieviewer@0.0.16`, public `latest`.
|
|
4
39
|
On2026-10-24 the owner accepted the gentle-paw and standing-wall gestures and
|
package/THIRD-PARTY-NOTICES.md
CHANGED
|
@@ -17,3 +17,11 @@ photographers (Scott, CC BY 2.0; Stefan Bauer, CC BY-SA 2.5) and adaptation hist
|
|
|
17
17
|
are credited in ATTRIBUTION.md. Original photographs are not bundled. See LICENSE,
|
|
18
18
|
LICENSE-CODE, ASSETS-LICENSE.md and the bounded ASSET-PROVENANCE.md review. No
|
|
19
19
|
comprehensive legal-clearance or exclusive AI-output ownership claim is made.
|
|
20
|
+
|
|
21
|
+
## Native Windows runtime
|
|
22
|
+
|
|
23
|
+
The prebuilt Windows x64 engine includes QuickJS-NG 0.17.0 (MIT) and zlib
|
|
24
|
+
1.3.2 (Zlib). Exact source commits and complete license notices are in
|
|
25
|
+
`integrations/native-windows/sources.json` and `THIRD-PARTY-LICENSES.txt`.
|
|
26
|
+
The optimized kernels and host are MIT. No downloaded runtime is installed
|
|
27
|
+
at launch; no additional npm runtime dependency was added.
|
package/WINDOWS-COMPANION.md
CHANGED
|
@@ -9,9 +9,10 @@ wrapper. Version0.0.2 includes it; version0.0.1 does not. Setup is two steps:
|
|
|
9
9
|
Choose a supported ordinary Windows app window (including a terminal containing
|
|
10
10
|
Codex). Then use your app normally, without a
|
|
11
11
|
wrapper, shell alias, patched binary, changed credentials, or agent configuration.
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
Windows10/11 x64 with Node20+
|
|
12
|
+
Basic mode uses the bundled QuickJS/Win32 engine in one process; Node exits
|
|
13
|
+
after launch. No Electron, Chromium, extra npm dependency or compiler is needed.
|
|
14
|
+
Windows10/11 x64 with Node20+ is required. Optional watch/brain or --engine node
|
|
15
|
+
keeps the existing Node/.NET compatibility path and its Framework4 compiler. Other
|
|
15
16
|
desktop platforms and exclusive fullscreen/security surfaces are not certified.
|
|
16
17
|
Launch reports
|
|
17
18
|
that the picker is ready, **not** that the user has selected a window or visually
|
|
@@ -35,8 +36,8 @@ approved the pet.
|
|
|
35
36
|
The picker locally reads window titles/process names; tracking reads window
|
|
36
37
|
geometry, foreground state, visibility and owning process ID.
|
|
37
38
|
- No automatic startup, background scheduled task, registry entry or MCP is added.
|
|
38
|
-
Exit stops
|
|
39
|
-
exits too. Losing the target hides the pet; tray selection can attach another.
|
|
39
|
+
Exit stops the native process. The compatibility path stops both painter and engine;
|
|
40
|
+
if either closes, its counterpart exits too. Losing the target hides the pet; tray selection can attach another.
|
|
40
41
|
|
|
41
42
|
## Stop, remove, and recover
|
|
42
43
|
|
|
@@ -52,7 +53,8 @@ One-command companion removal (stop, wait for exit, remove only its cache):
|
|
|
52
53
|
retrieviewer desktop-remove --yes
|
|
53
54
|
```
|
|
54
55
|
|
|
55
|
-
The
|
|
56
|
+
The control strip provides window selection, pause/resume and exit. The older
|
|
57
|
+
compatibility helper also has a tray menu. `desktop-stop`
|
|
56
58
|
asks the companion to exit through an authenticated local named pipe; it never
|
|
57
59
|
kills a PID from a stale file. The worker may terminate only its own stuck child
|
|
58
60
|
painter after a graceful timeout. Cache cleanup refuses a live/unreachable worker,
|
|
@@ -111,3 +113,10 @@ check (not total app memory or a4K performance claim). A Windows GUI startup bug
|
|
|
111
113
|
was fixed by building a GUI-subsystem helper and not applying SW_HIDE to it; the
|
|
112
114
|
real user picker was verified in Windows' visible main-window list. User visual
|
|
113
115
|
approval after selecting a terminal remains separate.
|
|
116
|
+
|
|
117
|
+
## Pet selection
|
|
118
|
+
|
|
119
|
+
Use retrieviewer desktop --pet cat, or select Ginger cat in the native picker
|
|
120
|
+
or control strip. Only one pet is loaded; the previous asset lease is disposed
|
|
121
|
+
on switch. Cat controls include greeting, treat, company, tower and wheel.
|
|
122
|
+
See [native runtime](NATIVE-RUNTIME.md) for measurements and scope.
|
package/braille.mjs
CHANGED
|
@@ -37,10 +37,10 @@ function stableBraille(rgba,width,height,brightness,contrast){
|
|
|
37
37
|
for(let y=0;y<rows;y++){for(let x=0;x<columns;x++)cells[x]=GLYPHS[masks[y*columns+x]];lines[y]=cells.join('');}
|
|
38
38
|
return{text:lines.join('\n'),columns,rows,dots};
|
|
39
39
|
}
|
|
40
|
-
export function rgbaToBraille(rgba,width,height,{brightness=1,contrast=1,method='floyd'}={}){
|
|
40
|
+
export function rgbaToBraille(rgba,width,height,{brightness=1,contrast=1,method='floyd',kernel=null}={}){
|
|
41
41
|
if(!Number.isInteger(width)||!Number.isInteger(height)||width<1||height<1||width*height>1_000_000||rgba.length!==width*height*4)throw Error('Invalid RGBA image');
|
|
42
42
|
if(!Number.isFinite(brightness)||brightness<=0||brightness>4||!Number.isFinite(contrast)||contrast<=0||contrast>4||!['floyd','bayer','stable'].includes(method))throw Error('Invalid dithering options');
|
|
43
|
-
if(method==='stable')return stableBraille(rgba,width,height,brightness,contrast);
|
|
43
|
+
if(method==='stable')return kernel?.braille?kernel.braille(rgba,width,height,brightness,contrast):stableBraille(rgba,width,height,brightness,contrast);
|
|
44
44
|
const values=new Float32Array(width*height),bits=new Uint8Array(width*height);
|
|
45
45
|
for(let i=0;i<values.length;i++){
|
|
46
46
|
const p=i*4,luma=(.2126*rgba[p]+.7152*rgba[p+1]+.0722*rgba[p+2])/255*(rgba[p+3]/255);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
cmake_minimum_required(VERSION 3.21)
|
|
2
|
+
project(retrieviewer_native LANGUAGES C CXX)
|
|
3
|
+
set(CMAKE_CXX_STANDARD 17)
|
|
4
|
+
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
|
|
5
|
+
set(QJS_ENABLE_INSTALL OFF CACHE BOOL "" FORCE)
|
|
6
|
+
get_filename_component(PET_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/../.." ABSOLUTE)
|
|
7
|
+
add_subdirectory("${PET_ROOT}/dist/native-memory/quickjs-src" quickjs-build EXCLUDE_FROM_ALL)
|
|
8
|
+
set(ZLIB_BUILD_TESTING OFF CACHE BOOL "" FORCE)
|
|
9
|
+
set(ZLIB_BUILD_SHARED OFF CACHE BOOL "" FORCE)
|
|
10
|
+
set(ZLIB_INSTALL OFF CACHE BOOL "" FORCE)
|
|
11
|
+
add_subdirectory("${PET_ROOT}/dist/native-memory/zlib-src" zlib-build EXCLUDE_FROM_ALL)
|
|
12
|
+
add_executable(retrieviewer-native host.cpp)
|
|
13
|
+
target_link_options(retrieviewer-native PRIVATE "/MANIFEST:EMBED" "/MANIFESTINPUT:${CMAKE_CURRENT_SOURCE_DIR}/application.manifest")
|
|
14
|
+
target_link_libraries(retrieviewer-native PRIVATE qjs qjs-libc zlibstatic gdiplus user32 gdi32 advapi32 psapi)
|
|
15
|
+
target_compile_definitions(retrieviewer-native PRIVATE _CRT_SECURE_NO_WARNINGS NOMINMAX UNICODE _UNICODE)
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
QuickJS-NG
|
|
2
|
+
|
|
3
|
+
The MIT License (MIT)
|
|
4
|
+
|
|
5
|
+
Copyright (c) 2017-2026 Fabrice Bellard
|
|
6
|
+
Copyright (c) 2017-2024 Charlie Gordon
|
|
7
|
+
Copyright (c) 2023-2026 Ben Noordhuis
|
|
8
|
+
Copyright (c) 2023-2026 Saúl Ibarra Corretgé
|
|
9
|
+
|
|
10
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
11
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
12
|
+
in the Software without restriction, including without limitation the rights
|
|
13
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
14
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
15
|
+
furnished to do so, subject to the following conditions:
|
|
16
|
+
|
|
17
|
+
The above copyright notice and this permission notice shall be included in
|
|
18
|
+
all copies or substantial portions of the Software.
|
|
19
|
+
|
|
20
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
21
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
22
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
23
|
+
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
24
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
25
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
26
|
+
THE SOFTWARE.
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
zlib
|
|
30
|
+
|
|
31
|
+
Copyright notice:
|
|
32
|
+
|
|
33
|
+
(C) 1995-2026 Jean-loup Gailly and Mark Adler
|
|
34
|
+
|
|
35
|
+
This software is provided 'as-is', without any express or implied
|
|
36
|
+
warranty. In no event will the authors be held liable for any damages
|
|
37
|
+
arising from the use of this software.
|
|
38
|
+
|
|
39
|
+
Permission is granted to anyone to use this software for any purpose,
|
|
40
|
+
including commercial applications, and to alter it and redistribute it
|
|
41
|
+
freely, subject to the following restrictions:
|
|
42
|
+
|
|
43
|
+
1. The origin of this software must not be misrepresented; you must not
|
|
44
|
+
claim that you wrote the original software. If you use this software
|
|
45
|
+
in a product, an acknowledgment in the product documentation would be
|
|
46
|
+
appreciated but is not required.
|
|
47
|
+
2. Altered source versions must be plainly marked as such, and must not be
|
|
48
|
+
misrepresented as being the original software.
|
|
49
|
+
3. This notice may not be removed or altered from any source distribution.
|
|
50
|
+
|
|
51
|
+
Jean-loup Gailly Mark Adler
|
|
52
|
+
jloup@gzip.org madler@alumni.caltech.edu
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
fflate
|
|
56
|
+
|
|
57
|
+
MIT License
|
|
58
|
+
|
|
59
|
+
Copyright (c) 2026 Arjun Barrett
|
|
60
|
+
|
|
61
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
62
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
63
|
+
in the Software without restriction, including without limitation the rights
|
|
64
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
65
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
66
|
+
furnished to do so, subject to the following conditions:
|
|
67
|
+
|
|
68
|
+
The above copyright notice and this permission notice shall be included in all
|
|
69
|
+
copies or substantial portions of the Software.
|
|
70
|
+
|
|
71
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
72
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
73
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
74
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
75
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
76
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
77
|
+
SOFTWARE.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
2
|
+
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
|
|
3
|
+
<application xmlns="urn:schemas-microsoft-com:asm.v3">
|
|
4
|
+
<windowsSettings>
|
|
5
|
+
<activeCodePage xmlns="http://schemas.microsoft.com/SMI/2019/WindowsSettings">UTF-8</activeCodePage>
|
|
6
|
+
</windowsSettings>
|
|
7
|
+
</application>
|
|
8
|
+
</assembly>
|