@fungi.computer/computer 0.0.0-stage → 0.0.1
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/Dockerfile +85 -0
- package/LICENSE +21 -0
- package/README.md +228 -2
- package/container/computer-init.mjs +119 -0
- package/container/computer-start.sh +24 -0
- package/container/package.json +14 -0
- package/container/pnpm-lock.yaml +378 -0
- package/container/pnpm-workspace.yaml +5 -0
- package/container/resource-bounds.mjs +54 -0
- package/container/runtime-privileges.cc +37 -0
- package/container/runtime-privileges.mjs +11 -0
- package/container/terminal-assets/README.md +35 -0
- package/container/terminal-assets/bashrc +49 -0
- package/container/terminal-assets/git-prompt.sh +586 -0
- package/container/terminal-protocol.mjs +58 -0
- package/container/terminal-runtime.mjs +10 -0
- package/container/terminal-server.mjs +243 -0
- package/dist/apply-patch/LICENSE.codex +201 -0
- package/dist/apply-patch/build.mjs +98 -0
- package/dist/apply-patch/cache.mjs +168 -0
- package/dist/apply-patch/compile.mjs +199 -0
- package/dist/apply-patch/docker/darwin.Dockerfile +15 -0
- package/dist/apply-patch/docker/linux-arm64.Dockerfile +38 -0
- package/dist/apply-patch/docker/linux-x64.Dockerfile +23 -0
- package/dist/apply-patch/main.rs +320 -0
- package/dist/apply-patch/notices.mjs +44 -0
- package/dist/apply-patch/pin.mjs +8 -0
- package/dist/apply-patch/toolchain.mjs +39 -0
- package/dist/computer-backends.d.ts +94 -0
- package/dist/computer-backends.js +103 -0
- package/dist/computerd.cjs +18010 -0
- package/dist/container-policy.d.ts +7 -0
- package/dist/container-policy.js +24 -0
- package/dist/container-system-trust.d.ts +8 -0
- package/dist/container-system-trust.js +66 -0
- package/dist/egress-policy.d.ts +89 -0
- package/dist/egress-policy.js +240 -0
- package/dist/execution-result.d.ts +3 -0
- package/dist/execution-result.js +28 -0
- package/dist/files-patch.d.ts +20 -0
- package/dist/files-patch.js +108 -0
- package/dist/files.d.ts +75 -0
- package/dist/files.js +136 -0
- package/dist/fleet/admission.d.ts +14 -0
- package/dist/fleet/admission.js +10 -0
- package/dist/fleet/backing.d.ts +52 -0
- package/dist/fleet/backing.js +242 -0
- package/dist/fleet/computers.d.ts +62 -0
- package/dist/fleet/computers.js +35 -0
- package/dist/fleet/index.d.ts +11 -0
- package/dist/fleet/index.js +11 -0
- package/dist/fleet/inventory-wire.d.ts +29 -0
- package/dist/fleet/inventory-wire.js +15 -0
- package/dist/fleet/inventory.d.ts +24 -0
- package/dist/fleet/inventory.js +152 -0
- package/dist/fleet/lifecycle.d.ts +99 -0
- package/dist/fleet/lifecycle.js +423 -0
- package/dist/fleet/runtime-usage.d.ts +50 -0
- package/dist/fleet/runtime-usage.js +145 -0
- package/dist/fleet/slots.d.ts +30 -0
- package/dist/fleet/slots.js +46 -0
- package/dist/fleet/wire.d.ts +228 -0
- package/dist/fleet/wire.js +127 -0
- package/dist/host-config.d.ts +12 -0
- package/dist/host-config.js +10 -0
- package/dist/index.d.ts +282 -0
- package/dist/index.js +1237 -0
- package/dist/light-shell.d.ts +44 -0
- package/dist/light-shell.js +376 -0
- package/dist/local-backend.d.ts +52 -0
- package/dist/local-backend.js +143 -0
- package/dist/metered-container-host.d.ts +26 -0
- package/dist/metered-container-host.js +48 -0
- package/dist/on-box-vm.d.ts +119 -0
- package/dist/on-box-vm.js +294 -0
- package/dist/operation-contract.d.ts +456 -0
- package/dist/operation-contract.js +452 -0
- package/dist/operation-record.d.ts +50 -0
- package/dist/operation-record.js +162 -0
- package/dist/preview.d.ts +55 -0
- package/dist/preview.js +151 -0
- package/dist/process-inventory.d.ts +80 -0
- package/dist/process-inventory.js +427 -0
- package/dist/pull-pending.d.ts +26 -0
- package/dist/pull-pending.js +35 -0
- package/dist/team-candidate-builder.mjs +28170 -0
- package/dist/transport-backend.d.ts +3 -0
- package/dist/transport-backend.js +99 -0
- package/dist/workspace-stream.d.ts +2 -0
- package/dist/workspace-stream.js +31 -0
- package/package.json +126 -3
|
@@ -0,0 +1,378 @@
|
|
|
1
|
+
lockfileVersion: '9.0'
|
|
2
|
+
|
|
3
|
+
settings:
|
|
4
|
+
autoInstallPeers: true
|
|
5
|
+
excludeLinksFromLockfile: false
|
|
6
|
+
|
|
7
|
+
importers:
|
|
8
|
+
|
|
9
|
+
.:
|
|
10
|
+
dependencies:
|
|
11
|
+
esbuild:
|
|
12
|
+
specifier: 0.28.2
|
|
13
|
+
version: 0.28.2
|
|
14
|
+
fuse-native:
|
|
15
|
+
specifier: 2.2.6
|
|
16
|
+
version: 2.2.6
|
|
17
|
+
node-pty:
|
|
18
|
+
specifier: 1.1.0
|
|
19
|
+
version: 1.1.0
|
|
20
|
+
ws:
|
|
21
|
+
specifier: 8.21.3
|
|
22
|
+
version: 8.21.3
|
|
23
|
+
|
|
24
|
+
packages:
|
|
25
|
+
|
|
26
|
+
'@esbuild/aix-ppc64@0.28.2':
|
|
27
|
+
resolution: {integrity: sha512-XExcO+dvLKvVtNTibSTBej1NCAbaGhWn9Ww1ZPx80qsahhPFe/8jgWP0IchNe0F3HwkU7n8ejhH8bjonqht8mQ==}
|
|
28
|
+
engines: {node: '>=18'}
|
|
29
|
+
cpu: [ppc64]
|
|
30
|
+
os: [aix]
|
|
31
|
+
|
|
32
|
+
'@esbuild/android-arm64@0.28.2':
|
|
33
|
+
resolution: {integrity: sha512-5YfKeeI8qWfBZIX+u2xZC3Zlb3Os/gLS2sbEKM+I4ZOcsWmHS2WLysCcQZDAFRslDUU5Oiq44gf6PYN1vGwG5A==}
|
|
34
|
+
engines: {node: '>=18'}
|
|
35
|
+
cpu: [arm64]
|
|
36
|
+
os: [android]
|
|
37
|
+
|
|
38
|
+
'@esbuild/android-arm@0.28.2':
|
|
39
|
+
resolution: {integrity: sha512-kXXoiPVVGQcnIYGOeaovwOURpniDBpSq4A03qkQ+BMQqtGG6HYap3xne9C1O1yo4TR3qxlCX5IqqmX6fFo2Lqg==}
|
|
40
|
+
engines: {node: '>=18'}
|
|
41
|
+
cpu: [arm]
|
|
42
|
+
os: [android]
|
|
43
|
+
|
|
44
|
+
'@esbuild/android-x64@0.28.2':
|
|
45
|
+
resolution: {integrity: sha512-O387ite7SzUyCcy3JQX4P4bLtEA7bLLkx+esve5JHnyYfNTxcVpXZo9jhdB0lTKN44gztELTdU7nS8Nr16Fs1Q==}
|
|
46
|
+
engines: {node: '>=18'}
|
|
47
|
+
cpu: [x64]
|
|
48
|
+
os: [android]
|
|
49
|
+
|
|
50
|
+
'@esbuild/darwin-arm64@0.28.2':
|
|
51
|
+
resolution: {integrity: sha512-n4KqkOQrraxHJcgjM1RvwbigfQKIKJVpM7xp+KsxiyUSrRdIXnt73VhrPAx0fV44hgfmIVKjxMN9J1t5jySVkw==}
|
|
52
|
+
engines: {node: '>=18'}
|
|
53
|
+
cpu: [arm64]
|
|
54
|
+
os: [darwin]
|
|
55
|
+
|
|
56
|
+
'@esbuild/darwin-x64@0.28.2':
|
|
57
|
+
resolution: {integrity: sha512-uq6suIWYP37qzGddBKPw5QEQPi6HiLGsO7UmkpfyaYNQ3D+rN6w6WfwH+nuqcGXWvawGwxOEroO4YGnFh95azw==}
|
|
58
|
+
engines: {node: '>=18'}
|
|
59
|
+
cpu: [x64]
|
|
60
|
+
os: [darwin]
|
|
61
|
+
|
|
62
|
+
'@esbuild/freebsd-arm64@0.28.2':
|
|
63
|
+
resolution: {integrity: sha512-n+I0BTSRIoy+d6RPKnEVwql5UwBJolytvY4mAOIEJorKlqgPII8ix6slVVrfZ5Tnj7glIZvloylbB/EJPMWEXw==}
|
|
64
|
+
engines: {node: '>=18'}
|
|
65
|
+
cpu: [arm64]
|
|
66
|
+
os: [freebsd]
|
|
67
|
+
|
|
68
|
+
'@esbuild/freebsd-x64@0.28.2':
|
|
69
|
+
resolution: {integrity: sha512-78XJTJkvPs0kz2w61301PJjXl4g7q3JqiYMZ/M/yVI73EHBrCRTgkhu9oqG7vPqq+a/yadEW8aD+agKlk5xrmg==}
|
|
70
|
+
engines: {node: '>=18'}
|
|
71
|
+
cpu: [x64]
|
|
72
|
+
os: [freebsd]
|
|
73
|
+
|
|
74
|
+
'@esbuild/linux-arm64@0.28.2':
|
|
75
|
+
resolution: {integrity: sha512-pW4AC0P3it8c7do9MVM4p51FzHzdM/TZrerurgRcHJ2WTa1VQ1CIq18xncfpBJw4ojkiZZrKW2yIBWBP92j6Ug==}
|
|
76
|
+
engines: {node: '>=18'}
|
|
77
|
+
cpu: [arm64]
|
|
78
|
+
os: [linux]
|
|
79
|
+
|
|
80
|
+
'@esbuild/linux-arm@0.28.2':
|
|
81
|
+
resolution: {integrity: sha512-XlDnu2q5yoqems+xay6wSAcg9DDD7K9RLKZEBOMZm3ckNpJBvOX20tSfby8KfrrhINDyv9V2YVZKY/SpoGJI8w==}
|
|
82
|
+
engines: {node: '>=18'}
|
|
83
|
+
cpu: [arm]
|
|
84
|
+
os: [linux]
|
|
85
|
+
|
|
86
|
+
'@esbuild/linux-ia32@0.28.2':
|
|
87
|
+
resolution: {integrity: sha512-CYbnj78HsIeA+DhgUKgFCfvNsTHFhMMrinUrMZpDXJXKN8T3XViTZ/+wtHeVxEWY8ewSzTFN+nRmSwO2tZaLUQ==}
|
|
88
|
+
engines: {node: '>=18'}
|
|
89
|
+
cpu: [ia32]
|
|
90
|
+
os: [linux]
|
|
91
|
+
|
|
92
|
+
'@esbuild/linux-loong64@0.28.2':
|
|
93
|
+
resolution: {integrity: sha512-buwkd8nsph4R+ajRvw0qM5Hja/TXQow3ptzWO2EbG/cqcIkHloRrdlBtQlshyYGTNFvfkfJ5tpPLVkY4DtsPfQ==}
|
|
94
|
+
engines: {node: '>=18'}
|
|
95
|
+
cpu: [loong64]
|
|
96
|
+
os: [linux]
|
|
97
|
+
|
|
98
|
+
'@esbuild/linux-mips64el@0.28.2':
|
|
99
|
+
resolution: {integrity: sha512-ZVykbDyk7519VwiNb9Lcj9m8XM6v5V9uKPvrEMkkEedVewf+0itkhahp4HDpgERXhwLRpWFypsGbG/J8s0QjJA==}
|
|
100
|
+
engines: {node: '>=18'}
|
|
101
|
+
cpu: [mips64el]
|
|
102
|
+
os: [linux]
|
|
103
|
+
|
|
104
|
+
'@esbuild/linux-ppc64@0.28.2':
|
|
105
|
+
resolution: {integrity: sha512-CAXl+Dtd9UUuJd8pKKdwh6MLm3MUMiqMPmhZ3tTSXPqfyQ3vDl6R5hZdZ/kYojK4ofXtdfSv1tFq8XzWx3heNQ==}
|
|
106
|
+
engines: {node: '>=18'}
|
|
107
|
+
cpu: [ppc64]
|
|
108
|
+
os: [linux]
|
|
109
|
+
|
|
110
|
+
'@esbuild/linux-riscv64@0.28.2':
|
|
111
|
+
resolution: {integrity: sha512-GeXCej4IQtU1B+QlDV8W/RRvbzI3O/Stss+/bCXv4lZls5WGRtu2a+3JkA3i4qIUlMXpcHebWpF8AkJhATowuA==}
|
|
112
|
+
engines: {node: '>=18'}
|
|
113
|
+
cpu: [riscv64]
|
|
114
|
+
os: [linux]
|
|
115
|
+
|
|
116
|
+
'@esbuild/linux-s390x@0.28.2':
|
|
117
|
+
resolution: {integrity: sha512-3H1weTYZPxt/WOhByszQZybS9w5lKzUn1FDMsgEChbHWQwHYQQRfBxgCcZvPhjHfKyJjIievvMmEUawJrdY9Dg==}
|
|
118
|
+
engines: {node: '>=18'}
|
|
119
|
+
cpu: [s390x]
|
|
120
|
+
os: [linux]
|
|
121
|
+
|
|
122
|
+
'@esbuild/linux-x64@0.28.2':
|
|
123
|
+
resolution: {integrity: sha512-4xTZr1FUmSoQW4XIWmit3tzQrUTZM+N3P0XV8xROKYF50XfI7xeO90+1bZvNwxIufQ9hDQVRJH5YhgPVF8A/HQ==}
|
|
124
|
+
engines: {node: '>=18'}
|
|
125
|
+
cpu: [x64]
|
|
126
|
+
os: [linux]
|
|
127
|
+
|
|
128
|
+
'@esbuild/netbsd-arm64@0.28.2':
|
|
129
|
+
resolution: {integrity: sha512-sSATRjPeDBg3pdgHoQfoYBob11Kk1FGa9lui5RIHZCoCkJa9QKlvl3/vKz2usCmYYjs7ymJR/2Nnsqe+Hjt5nw==}
|
|
130
|
+
engines: {node: '>=18'}
|
|
131
|
+
cpu: [arm64]
|
|
132
|
+
os: [netbsd]
|
|
133
|
+
|
|
134
|
+
'@esbuild/netbsd-x64@0.28.2':
|
|
135
|
+
resolution: {integrity: sha512-lqnzCV+mM0gIADaKihiCg6ifgfU2L3h5E33rNQBN1Y4MaVGnzryzmvvf7UHxprpQdE8hpqLolJ9Rl+SkIRDpyw==}
|
|
136
|
+
engines: {node: '>=18'}
|
|
137
|
+
cpu: [x64]
|
|
138
|
+
os: [netbsd]
|
|
139
|
+
|
|
140
|
+
'@esbuild/openbsd-arm64@0.28.2':
|
|
141
|
+
resolution: {integrity: sha512-AL2qJILH7lNjrDmCQDvdxMfAUIv8KMNZOvrwAQ8i8//ntL9FflhOyMJ8OZSMBb8/AWXe3/5v5S20y3zCoZWKoQ==}
|
|
142
|
+
engines: {node: '>=18'}
|
|
143
|
+
cpu: [arm64]
|
|
144
|
+
os: [openbsd]
|
|
145
|
+
|
|
146
|
+
'@esbuild/openbsd-x64@0.28.2':
|
|
147
|
+
resolution: {integrity: sha512-QtiuPytchRyC4rwUKhexJdQKvDuZ6hWloi3igqPQNUJCS1/v9EiO3UTOXR6A3FoMo4fnAKbWJdqaIwhOzh8qEw==}
|
|
148
|
+
engines: {node: '>=18'}
|
|
149
|
+
cpu: [x64]
|
|
150
|
+
os: [openbsd]
|
|
151
|
+
|
|
152
|
+
'@esbuild/openharmony-arm64@0.28.2':
|
|
153
|
+
resolution: {integrity: sha512-WkhYDmpTjLvGlScA1rwjRUmhl4k8oXR3cIbtqWmELgU/dFeHHlEllxDvdWcNJV9rbzCexB5vz8gtNewWLgCT7Q==}
|
|
154
|
+
engines: {node: '>=18'}
|
|
155
|
+
cpu: [arm64]
|
|
156
|
+
os: [openharmony]
|
|
157
|
+
|
|
158
|
+
'@esbuild/sunos-x64@0.28.2':
|
|
159
|
+
resolution: {integrity: sha512-GPMSkTOtMnv2U2F8gxe4Io6qmVs+YKyp832Etqqxr0hFngmXQ3rzwytelm3GIn7T4VviRUlf3sOgBOiTdvaf7g==}
|
|
160
|
+
engines: {node: '>=18'}
|
|
161
|
+
cpu: [x64]
|
|
162
|
+
os: [sunos]
|
|
163
|
+
|
|
164
|
+
'@esbuild/win32-arm64@0.28.2':
|
|
165
|
+
resolution: {integrity: sha512-PIhhEkE9uPBleRBrQEJpUn7MBnibZzbGzYWPmY3x+YoVg/95zbjB4CxPPOQ8l5tYYM4mMaCthF8/1DIfBQQyWQ==}
|
|
166
|
+
engines: {node: '>=18'}
|
|
167
|
+
cpu: [arm64]
|
|
168
|
+
os: [win32]
|
|
169
|
+
|
|
170
|
+
'@esbuild/win32-ia32@0.28.2':
|
|
171
|
+
resolution: {integrity: sha512-YmJbfTlvU7Sdn9BB+4PRES4oB6pxgS37MAONj+hBr/cpXS1aBPKXxNnDbu+QCWPj0o9dgyxeq79g6c5P8KeuYA==}
|
|
172
|
+
engines: {node: '>=18'}
|
|
173
|
+
cpu: [ia32]
|
|
174
|
+
os: [win32]
|
|
175
|
+
|
|
176
|
+
'@esbuild/win32-x64@0.28.2':
|
|
177
|
+
resolution: {integrity: sha512-5ebpxr3nWMzrL/rnUI755Jkuee0bHL/Gq0WTF9lvcpv73wAp5eu8MfBUgWK9bhWvZjj7yX8etf/8tI8Ney695g==}
|
|
178
|
+
engines: {node: '>=18'}
|
|
179
|
+
cpu: [x64]
|
|
180
|
+
os: [win32]
|
|
181
|
+
|
|
182
|
+
esbuild@0.28.2:
|
|
183
|
+
resolution: {integrity: sha512-HKVLS8dvII+xoKW9kmqxbRKrnWEXfJJr/FZhhJmiqIB0e053QNYFqOBouTMO/k5sID4MvCiUCvv8b9M4h32wIA==}
|
|
184
|
+
engines: {node: '>=18'}
|
|
185
|
+
hasBin: true
|
|
186
|
+
|
|
187
|
+
fuse-native@2.2.6:
|
|
188
|
+
resolution: {integrity: sha512-Y5wXd7vUsWWWIIHbjluv7jKZgPZaSVA5YWaW3I5fXIJfcGWL6IRUgoBUveQAq+D8cG9cCiGNahv9CeToccCXrw==}
|
|
189
|
+
hasBin: true
|
|
190
|
+
|
|
191
|
+
fuse-shared-library-darwin@1.1.3:
|
|
192
|
+
resolution: {integrity: sha512-4Q8gMxyMl1+gwHGpiYUoKKpi7xq8WcPo0TvJvjZzHMuCiszouu2GgEs6SJAqPB3LjfmEkl6kPV+2Oluczr0Nig==}
|
|
193
|
+
|
|
194
|
+
fuse-shared-library-linux-arm@1.0.0:
|
|
195
|
+
resolution: {integrity: sha512-Dj4ssxo1/MKGvOsVWRblSRu+o5F5OJTrVPDkjSyGDU2yKvVnIzQSwy1deiWA0qCcS/Q8iJMlZaCpCcZWSwvoug==}
|
|
196
|
+
|
|
197
|
+
fuse-shared-library-linux@1.0.1:
|
|
198
|
+
resolution: {integrity: sha512-07MQRSobrBKwW4D7oKm0gM2TwgvZWb+gC08JdiYDG4KBTncxk9ssqEDiDMKll8hpseZufsY2w1yc/feOu2DPmQ==}
|
|
199
|
+
|
|
200
|
+
fuse-shared-library@1.1.1:
|
|
201
|
+
resolution: {integrity: sha512-EfgTo/eS1euZFUe7x8KqyA40hV4DwP7kqp1VNZApu2nlPnJv8SanraBE3VXyX7ff41sxw7M0oWY7re3G3wnZVA==}
|
|
202
|
+
|
|
203
|
+
inherits@2.0.4:
|
|
204
|
+
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
|
|
205
|
+
|
|
206
|
+
nanoresource@1.3.0:
|
|
207
|
+
resolution: {integrity: sha512-OI5dswqipmlYfyL3k/YMm7mbERlh4Bd1KuKdMHpeoVD1iVxqxaTMKleB4qaA2mbQZ6/zMNSxCXv9M9P/YbqTuQ==}
|
|
208
|
+
|
|
209
|
+
napi-macros@2.2.2:
|
|
210
|
+
resolution: {integrity: sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g==}
|
|
211
|
+
|
|
212
|
+
node-addon-api@7.1.1:
|
|
213
|
+
resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==}
|
|
214
|
+
|
|
215
|
+
node-gyp-build@4.8.4:
|
|
216
|
+
resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==}
|
|
217
|
+
hasBin: true
|
|
218
|
+
|
|
219
|
+
node-pty@1.1.0:
|
|
220
|
+
resolution: {integrity: sha512-20JqtutY6JPXTUnL0ij1uad7Qe1baT46lyolh2sSENDd4sTzKZ4nmAFkeAARDKwmlLjPx6XKRlwRUxwjOy+lUg==}
|
|
221
|
+
|
|
222
|
+
ws@8.21.3:
|
|
223
|
+
resolution: {integrity: sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw==}
|
|
224
|
+
engines: {node: '>=10.0.0'}
|
|
225
|
+
peerDependencies:
|
|
226
|
+
bufferutil: ^4.0.1
|
|
227
|
+
utf-8-validate: '>=5.0.2'
|
|
228
|
+
peerDependenciesMeta:
|
|
229
|
+
bufferutil:
|
|
230
|
+
optional: true
|
|
231
|
+
utf-8-validate:
|
|
232
|
+
optional: true
|
|
233
|
+
|
|
234
|
+
snapshots:
|
|
235
|
+
|
|
236
|
+
'@esbuild/aix-ppc64@0.28.2':
|
|
237
|
+
optional: true
|
|
238
|
+
|
|
239
|
+
'@esbuild/android-arm64@0.28.2':
|
|
240
|
+
optional: true
|
|
241
|
+
|
|
242
|
+
'@esbuild/android-arm@0.28.2':
|
|
243
|
+
optional: true
|
|
244
|
+
|
|
245
|
+
'@esbuild/android-x64@0.28.2':
|
|
246
|
+
optional: true
|
|
247
|
+
|
|
248
|
+
'@esbuild/darwin-arm64@0.28.2':
|
|
249
|
+
optional: true
|
|
250
|
+
|
|
251
|
+
'@esbuild/darwin-x64@0.28.2':
|
|
252
|
+
optional: true
|
|
253
|
+
|
|
254
|
+
'@esbuild/freebsd-arm64@0.28.2':
|
|
255
|
+
optional: true
|
|
256
|
+
|
|
257
|
+
'@esbuild/freebsd-x64@0.28.2':
|
|
258
|
+
optional: true
|
|
259
|
+
|
|
260
|
+
'@esbuild/linux-arm64@0.28.2':
|
|
261
|
+
optional: true
|
|
262
|
+
|
|
263
|
+
'@esbuild/linux-arm@0.28.2':
|
|
264
|
+
optional: true
|
|
265
|
+
|
|
266
|
+
'@esbuild/linux-ia32@0.28.2':
|
|
267
|
+
optional: true
|
|
268
|
+
|
|
269
|
+
'@esbuild/linux-loong64@0.28.2':
|
|
270
|
+
optional: true
|
|
271
|
+
|
|
272
|
+
'@esbuild/linux-mips64el@0.28.2':
|
|
273
|
+
optional: true
|
|
274
|
+
|
|
275
|
+
'@esbuild/linux-ppc64@0.28.2':
|
|
276
|
+
optional: true
|
|
277
|
+
|
|
278
|
+
'@esbuild/linux-riscv64@0.28.2':
|
|
279
|
+
optional: true
|
|
280
|
+
|
|
281
|
+
'@esbuild/linux-s390x@0.28.2':
|
|
282
|
+
optional: true
|
|
283
|
+
|
|
284
|
+
'@esbuild/linux-x64@0.28.2':
|
|
285
|
+
optional: true
|
|
286
|
+
|
|
287
|
+
'@esbuild/netbsd-arm64@0.28.2':
|
|
288
|
+
optional: true
|
|
289
|
+
|
|
290
|
+
'@esbuild/netbsd-x64@0.28.2':
|
|
291
|
+
optional: true
|
|
292
|
+
|
|
293
|
+
'@esbuild/openbsd-arm64@0.28.2':
|
|
294
|
+
optional: true
|
|
295
|
+
|
|
296
|
+
'@esbuild/openbsd-x64@0.28.2':
|
|
297
|
+
optional: true
|
|
298
|
+
|
|
299
|
+
'@esbuild/openharmony-arm64@0.28.2':
|
|
300
|
+
optional: true
|
|
301
|
+
|
|
302
|
+
'@esbuild/sunos-x64@0.28.2':
|
|
303
|
+
optional: true
|
|
304
|
+
|
|
305
|
+
'@esbuild/win32-arm64@0.28.2':
|
|
306
|
+
optional: true
|
|
307
|
+
|
|
308
|
+
'@esbuild/win32-ia32@0.28.2':
|
|
309
|
+
optional: true
|
|
310
|
+
|
|
311
|
+
'@esbuild/win32-x64@0.28.2':
|
|
312
|
+
optional: true
|
|
313
|
+
|
|
314
|
+
esbuild@0.28.2:
|
|
315
|
+
optionalDependencies:
|
|
316
|
+
'@esbuild/aix-ppc64': 0.28.2
|
|
317
|
+
'@esbuild/android-arm': 0.28.2
|
|
318
|
+
'@esbuild/android-arm64': 0.28.2
|
|
319
|
+
'@esbuild/android-x64': 0.28.2
|
|
320
|
+
'@esbuild/darwin-arm64': 0.28.2
|
|
321
|
+
'@esbuild/darwin-x64': 0.28.2
|
|
322
|
+
'@esbuild/freebsd-arm64': 0.28.2
|
|
323
|
+
'@esbuild/freebsd-x64': 0.28.2
|
|
324
|
+
'@esbuild/linux-arm': 0.28.2
|
|
325
|
+
'@esbuild/linux-arm64': 0.28.2
|
|
326
|
+
'@esbuild/linux-ia32': 0.28.2
|
|
327
|
+
'@esbuild/linux-loong64': 0.28.2
|
|
328
|
+
'@esbuild/linux-mips64el': 0.28.2
|
|
329
|
+
'@esbuild/linux-ppc64': 0.28.2
|
|
330
|
+
'@esbuild/linux-riscv64': 0.28.2
|
|
331
|
+
'@esbuild/linux-s390x': 0.28.2
|
|
332
|
+
'@esbuild/linux-x64': 0.28.2
|
|
333
|
+
'@esbuild/netbsd-arm64': 0.28.2
|
|
334
|
+
'@esbuild/netbsd-x64': 0.28.2
|
|
335
|
+
'@esbuild/openbsd-arm64': 0.28.2
|
|
336
|
+
'@esbuild/openbsd-x64': 0.28.2
|
|
337
|
+
'@esbuild/openharmony-arm64': 0.28.2
|
|
338
|
+
'@esbuild/sunos-x64': 0.28.2
|
|
339
|
+
'@esbuild/win32-arm64': 0.28.2
|
|
340
|
+
'@esbuild/win32-ia32': 0.28.2
|
|
341
|
+
'@esbuild/win32-x64': 0.28.2
|
|
342
|
+
|
|
343
|
+
fuse-native@2.2.6:
|
|
344
|
+
dependencies:
|
|
345
|
+
fuse-shared-library: 1.1.1
|
|
346
|
+
nanoresource: 1.3.0
|
|
347
|
+
napi-macros: 2.2.2
|
|
348
|
+
node-gyp-build: 4.8.4
|
|
349
|
+
|
|
350
|
+
fuse-shared-library-darwin@1.1.3: {}
|
|
351
|
+
|
|
352
|
+
fuse-shared-library-linux-arm@1.0.0: {}
|
|
353
|
+
|
|
354
|
+
fuse-shared-library-linux@1.0.1: {}
|
|
355
|
+
|
|
356
|
+
fuse-shared-library@1.1.1:
|
|
357
|
+
dependencies:
|
|
358
|
+
fuse-shared-library-darwin: 1.1.3
|
|
359
|
+
fuse-shared-library-linux: 1.0.1
|
|
360
|
+
fuse-shared-library-linux-arm: 1.0.0
|
|
361
|
+
|
|
362
|
+
inherits@2.0.4: {}
|
|
363
|
+
|
|
364
|
+
nanoresource@1.3.0:
|
|
365
|
+
dependencies:
|
|
366
|
+
inherits: 2.0.4
|
|
367
|
+
|
|
368
|
+
napi-macros@2.2.2: {}
|
|
369
|
+
|
|
370
|
+
node-addon-api@7.1.1: {}
|
|
371
|
+
|
|
372
|
+
node-gyp-build@4.8.4: {}
|
|
373
|
+
|
|
374
|
+
node-pty@1.1.0:
|
|
375
|
+
dependencies:
|
|
376
|
+
node-addon-api: 7.1.1
|
|
377
|
+
|
|
378
|
+
ws@8.21.3: {}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/** The Computer ceiling shared by the platform image and on-box host. */
|
|
2
|
+
export const computerResourceBounds = Object.freeze({
|
|
3
|
+
vcpus: 4,
|
|
4
|
+
memoryMib: 12_288,
|
|
5
|
+
diskGib: 20,
|
|
6
|
+
pidsMax: 256,
|
|
7
|
+
maxRuntimeMs: 24 * 60 * 60 * 1_000,
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
/** Proofs may shorten a runtime, but no start may extend the ceiling. */
|
|
11
|
+
export function boundedRuntimeMs(value) {
|
|
12
|
+
if (value === undefined) return computerResourceBounds.maxRuntimeMs;
|
|
13
|
+
return boundedInteger(
|
|
14
|
+
"runtime deadline",
|
|
15
|
+
Number(value),
|
|
16
|
+
1_000,
|
|
17
|
+
computerResourceBounds.maxRuntimeMs,
|
|
18
|
+
);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function boundedInteger(name, value, minimum, maximum) {
|
|
22
|
+
const valid = Number.isInteger(value) && value >= minimum && value <= maximum;
|
|
23
|
+
if (!valid) throw new Error(`Computer ${name} exceeds its resource bound`);
|
|
24
|
+
return value;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export function computerRuntimeExpired(startedAt, now, maximumRuntimeMs) {
|
|
28
|
+
return now - startedAt >= maximumRuntimeMs;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/** The host may provision a smaller VM, never a larger Computer. */
|
|
32
|
+
export function boundedVmResources({ vcpus, memMib, diskGib, pidsMax }) {
|
|
33
|
+
return {
|
|
34
|
+
vcpus: boundedInteger("vcpus", vcpus, 1, computerResourceBounds.vcpus),
|
|
35
|
+
memMib: boundedInteger(
|
|
36
|
+
"memMib",
|
|
37
|
+
memMib,
|
|
38
|
+
1,
|
|
39
|
+
computerResourceBounds.memoryMib,
|
|
40
|
+
),
|
|
41
|
+
diskGib: boundedInteger(
|
|
42
|
+
"diskGib",
|
|
43
|
+
diskGib,
|
|
44
|
+
1,
|
|
45
|
+
computerResourceBounds.diskGib,
|
|
46
|
+
),
|
|
47
|
+
pidsMax: boundedInteger(
|
|
48
|
+
"pidsMax",
|
|
49
|
+
pidsMax,
|
|
50
|
+
1,
|
|
51
|
+
computerResourceBounds.pidsMax,
|
|
52
|
+
),
|
|
53
|
+
};
|
|
54
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
#include <node_api.h>
|
|
2
|
+
#include <grp.h>
|
|
3
|
+
#include <sys/prctl.h>
|
|
4
|
+
#include <unistd.h>
|
|
5
|
+
#include <cerrno>
|
|
6
|
+
#include <cstring>
|
|
7
|
+
|
|
8
|
+
// This runs only after FUSE is mounted and before any runtime listener opens.
|
|
9
|
+
// libc's credential calls update every thread, including FUSE's worker threads.
|
|
10
|
+
static napi_value enterRuntimePhase(napi_env env, napi_callback_info info) {
|
|
11
|
+
size_t count = 1;
|
|
12
|
+
napi_value args[1];
|
|
13
|
+
uint32_t uid;
|
|
14
|
+
if (napi_get_cb_info(env, info, &count, args, nullptr, nullptr) != napi_ok ||
|
|
15
|
+
count != 1 || napi_get_value_uint32(env, args[0], &uid) != napi_ok ||
|
|
16
|
+
uid < 100000 || uid > 2000099999 || getuid() != 0) {
|
|
17
|
+
napi_throw_error(env, nullptr, "Invalid privileged mount transition");
|
|
18
|
+
return nullptr;
|
|
19
|
+
}
|
|
20
|
+
if (prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0) != 0 ||
|
|
21
|
+
setgroups(0, nullptr) != 0 || setresgid(uid, uid, uid) != 0 ||
|
|
22
|
+
setresuid(uid, uid, uid) != 0) {
|
|
23
|
+
napi_throw_error(env, nullptr, strerror(errno));
|
|
24
|
+
return nullptr;
|
|
25
|
+
}
|
|
26
|
+
napi_value result;
|
|
27
|
+
napi_get_undefined(env, &result);
|
|
28
|
+
return result;
|
|
29
|
+
}
|
|
30
|
+
static napi_value initialize(napi_env env, napi_value exports) {
|
|
31
|
+
napi_value fn;
|
|
32
|
+
napi_create_function(env, "enterRuntimePhase", NAPI_AUTO_LENGTH,
|
|
33
|
+
enterRuntimePhase, nullptr, &fn);
|
|
34
|
+
napi_set_named_property(env, exports, "enterRuntimePhase", fn);
|
|
35
|
+
return exports;
|
|
36
|
+
}
|
|
37
|
+
NAPI_MODULE(NODE_GYP_MODULE_NAME, initialize)
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import process from "node:process";
|
|
2
|
+
import { createRequire } from "node:module";
|
|
3
|
+
const loadNative = createRequire(import.meta.url);
|
|
4
|
+
const native = loadNative("./runtime-privileges.node");
|
|
5
|
+
|
|
6
|
+
export function enterRuntimePhase() {
|
|
7
|
+
const uid = Number(process.env.COMPUTER_RUNTIME_UID);
|
|
8
|
+
if (!Number.isSafeInteger(uid) || uid < 100_000 || uid > 2_000_099_999)
|
|
9
|
+
throw new Error("Invalid Computer runtime UID");
|
|
10
|
+
native.enterRuntimePhase(uid);
|
|
11
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Computer shell assets
|
|
2
|
+
|
|
3
|
+
`git-prompt.sh` is the supplied Git v2.34.1 contrib implementation, retaining
|
|
4
|
+
its upstream license and branch detection. `bashrc` adapts the supplied
|
|
5
|
+
Botanical prompt to show the numeric exit status, user/Computer and short cwd,
|
|
6
|
+
with Caps/Stipe colors for the prompt and ls/grep. It honors `NO_COLOR` and
|
|
7
|
+
`TERM=dumb`. An interactive guard keeps command and agent shells quiet.
|
|
8
|
+
|
|
9
|
+
The retained client source is `terminal-banner.ts` from the reference snapshot
|
|
10
|
+
in `.botanical/old-terminal-juice`: welcome art, status and hint belong to Shed,
|
|
11
|
+
never to the shell. The spacing fix is `fdc3b2a9`; raw-terminal CRLF is
|
|
12
|
+
`d7872a5b`. Shared art now lives in `packages/lantern/src/art`, exported through
|
|
13
|
+
`@fungi.computer/lantern/banner` for Shed and the CLI family. No banner renderer
|
|
14
|
+
or art is copied into the Computer image.
|
|
15
|
+
|
|
16
|
+
The real path is Shed `TerminalPanel` → Agar `openComputerTerminal` → Hub
|
|
17
|
+
Computer admission → Computer `terminalAfterAcceptance` → terminal server
|
|
18
|
+
`TerminalSessions.#open` → Bash login → system bashrc/profile. The PTY's ready
|
|
19
|
+
control frame supplies bounded display facts separately from shell output. Agar
|
|
20
|
+
decodes them; Shed renders the width-aware welcome before reading buffered PTY
|
|
21
|
+
output. Socket reconnects reuse the session; theme swaps replay Shed's bounded
|
|
22
|
+
output history without opening another connection or adding a banner. A
|
|
23
|
+
deliberate reopen clears the prior display and welcomes the new session.
|
|
24
|
+
|
|
25
|
+
Team delivers the directory name to Computer on create/replay; Computer stores
|
|
26
|
+
it locally. The admitted private PTY URL supplies the name, owning Team ID and
|
|
27
|
+
`Team inference` model-door label, never credentials or provider URLs. Only the
|
|
28
|
+
Computer name enters Bash's environment for its prompt. Ready metadata reports
|
|
29
|
+
the terminal server's actual uptime and image package version.
|
|
30
|
+
|
|
31
|
+
The existing Shed renderer is Ghostty, as in the retained Dashboard. Its browser
|
|
32
|
+
proof checks real cells at wide and narrow widths, connection ordering, retries
|
|
33
|
+
and theme replay. Computerd command execution is separate and receives no
|
|
34
|
+
welcome bytes. Local image proof checks the prompt and absence of art/hints on
|
|
35
|
+
an interactive PTY, plus quiet non-interactive startup.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Retained interactive Bash prompt, adapted from Botanical's shell assets.
|
|
2
|
+
# This file is sourced by the image's system bashrc (including login shells).
|
|
3
|
+
case $- in
|
|
4
|
+
*i*) ;;
|
|
5
|
+
*) return ;;
|
|
6
|
+
esac
|
|
7
|
+
[[ ${_FUNGI_SHELL_READY:-} ]] && return
|
|
8
|
+
_FUNGI_SHELL_READY=1
|
|
9
|
+
|
|
10
|
+
shopt -s checkwinsize histappend
|
|
11
|
+
# Branches, Computer names and directories are data, not prompt shell code.
|
|
12
|
+
shopt -u promptvars
|
|
13
|
+
export HISTCONTROL=ignoreboth
|
|
14
|
+
export HISTSIZE=10000
|
|
15
|
+
. /opt/fungi/terminal-assets/git-prompt.sh
|
|
16
|
+
|
|
17
|
+
# Caps mocha: coral directories, teal links, green executables, pink archives.
|
|
18
|
+
if [[ -t 1 && ! ${NO_COLOR+x} && ${TERM:-dumb} != dumb ]]; then
|
|
19
|
+
export LS_COLORS='di=38;2;249;130;132:ln=38;2;148;226;213:ex=38;2;166;227;161:*.tar=38;2;245;194;231:*.gz=38;2;245;194;231:*.zip=38;2;245;194;231'
|
|
20
|
+
export GREP_COLORS='ms=38;2;249;130;132'
|
|
21
|
+
alias ls='ls --color=auto'
|
|
22
|
+
alias grep='grep --color=auto'
|
|
23
|
+
else
|
|
24
|
+
unset LS_COLORS
|
|
25
|
+
alias ls='ls --color=never'
|
|
26
|
+
alias grep='grep --color=never'
|
|
27
|
+
fi
|
|
28
|
+
|
|
29
|
+
_FUNGI_UPDATE_PS1() {
|
|
30
|
+
local exit_code=$? mark='✓' branch='' dirty='' tint='' reset=''
|
|
31
|
+
[[ $exit_code == 0 ]] || mark="✗ $exit_code"
|
|
32
|
+
if [[ -t 1 && ! ${NO_COLOR+x} && ${TERM:-dumb} != dumb ]]; then
|
|
33
|
+
tint='\[\e[38;2;249;130;132m\]'
|
|
34
|
+
reset='\[\e[0m\]'
|
|
35
|
+
fi
|
|
36
|
+
branch=$(__git_ps1 '%s' 2>/dev/null)
|
|
37
|
+
if [[ -n $branch ]]; then
|
|
38
|
+
[[ -z $(git status --porcelain 2>/dev/null) ]] || dirty=' *'
|
|
39
|
+
branch=" git:($branch)$dirty"
|
|
40
|
+
fi
|
|
41
|
+
local computer=${FUNGI_COMPUTER_NAME:-Computer}
|
|
42
|
+
# Strip prompt escapes/control bytes from names and branch text.
|
|
43
|
+
computer=${computer//[[:cntrl:]]/}
|
|
44
|
+
computer=${computer//\\/?}
|
|
45
|
+
branch=${branch//[[:cntrl:]]/}
|
|
46
|
+
branch=${branch//\\/?}
|
|
47
|
+
PS1="$tint$mark ${USER:-fungi}@$computer \W$branch$reset ➜ "
|
|
48
|
+
}
|
|
49
|
+
PROMPT_COMMAND=_FUNGI_UPDATE_PS1
|