pi-webapp 0.1.20 → 0.1.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -1
- package/README.zh-CN.md +14 -1
- package/bin/open-web-page.mjs +3 -0
- package/bin/pi-webapp.mjs +8 -0
- package/dist/extension.js +31 -28
- package/docs/desktop.md +124 -10
- package/docs/sentry.md +1 -1
- package/package.json +5 -5
- package/web/dist/.vite/manifest.json +63 -41
- package/web/dist/assets/app-D54rSb9U.js +542 -0
- package/web/dist/assets/app.js +2 -2
- package/web/dist/assets/{elixir-DI-tUE_U.js → elixir-R3IvWmT5.js} +1 -1
- package/web/dist/assets/{graphql-Bz9lYT3E.js → graphql-DSgZM88T.js} +1 -1
- package/web/dist/assets/{html-DfmEJESS.js → html-COcRjUs1.js} +1 -1
- package/web/dist/assets/{html-derivative-BaRuZAr6.js → html-derivative-C2Epw9Yg.js} +1 -1
- package/web/dist/assets/{http-oJQxPuUz.js → http-BnatDCTa.js} +1 -1
- package/web/dist/assets/{julia-VEDmabGN.js → julia-yApUWuwQ.js} +1 -1
- package/web/dist/assets/{perl-g_tPwekP.js → perl-CpGQZpC_.js} +1 -1
- package/web/dist/assets/{php-C_eP8QT0.js → php-C7wdcWqa.js} +1 -1
- package/web/dist/assets/{WorkspaceTerminal-DF87HK0D.js → plugin-CDXXKG8W.js} +12 -12
- package/web/dist/assets/plugin-DuICpslz.js +1 -0
- package/web/dist/assets/plugin-U9RqGH7R.js +3 -0
- package/web/dist/assets/{rst-D71MTZLw.js → rst-DXm1XNUD.js} +1 -1
- package/web/dist/assets/{ruby-DVYYFOy_.js → ruby-BM86KL0M.js} +1 -1
- package/web/dist/assets/style.css +2 -2
- package/web/dist/assets/{svelte-uHeUtAW3.js → svelte-Dizghd7i.js} +1 -1
- package/web/dist/assets/{vue-C1Yqc5Ux.js → vue-DJuuwuj_.js} +1 -1
- package/web/dist/assets/app-4px1DWHV.js +0 -544
package/docs/desktop.md
CHANGED
|
@@ -20,7 +20,13 @@ npm run desktop:start
|
|
|
20
20
|
nodejs.org, verifies the archive against the official HTTPS SHA-256 manifest,
|
|
21
21
|
and installs the pinned production dependencies from
|
|
22
22
|
`desktop/runtime-manifest/package-lock.json`. It verifies the bundled Pi version
|
|
23
|
-
and actually starts
|
|
23
|
+
and actually starts an interactive PTY, answers terminal queries, and checks its
|
|
24
|
+
output and clean exit before declaring success. Linux compiles only the pinned
|
|
25
|
+
`node-pty` lifecycle with the bundled Node and archive headers (the package has
|
|
26
|
+
no Linux prebuild); Windows stages its pinned ConPTY DLL/helper payload. No
|
|
27
|
+
Electron-ABI addon or host build is reused. Linux builders need Python and a C++
|
|
28
|
+
toolchain; end users do not need these to run the packaged PTY.
|
|
29
|
+
Internet is required while
|
|
24
30
|
building, not to install Node/Pi on the end user's machine. Model calls,
|
|
25
31
|
authorization and package installation can still require internet.
|
|
26
32
|
|
|
@@ -46,17 +52,26 @@ npm run desktop:package -- --dir # unpacked application for QA
|
|
|
46
52
|
|
|
47
53
|
Output is in `desktop-release/`. The macOS bundle is **pi.app**, the native menu
|
|
48
54
|
and window name are **pi**, and installer names include a desktop build number,
|
|
49
|
-
e.g. `pi-0.1.
|
|
55
|
+
e.g. `pi-0.1.20-desktop.5-mac-arm64.dmg`. “pi → 关于 pi” shows the build number
|
|
50
56
|
and executable location, so different desktop rebuilds are distinguishable even
|
|
51
57
|
when their shared backend stays at the same npm version. `desktop/release.json`
|
|
52
58
|
is the single source for the desktop name/build; increment its build number for
|
|
53
|
-
each delivered rebuild. The CFBundleVersion / Windows file version also changes.
|
|
59
|
+
each delivered rebuild. The CFBundleVersion / Windows file version also changes. AppImage filenames use
|
|
60
|
+
electron-builder's Linux deployment spelling `x86_64`; the runner/runtime
|
|
61
|
+
architecture and release target ID remain `x64` / `linux-x64`.
|
|
54
62
|
|
|
55
63
|
Cross-platform/architecture flags are
|
|
56
64
|
intentionally rejected by the wrapper: using the current machine's Node/native
|
|
57
65
|
modules in another platform's installer would create a broken application. Use
|
|
58
|
-
native runners for each target.
|
|
59
|
-
|
|
66
|
+
native runners for each target. `desktop.yml` remains a manual cross-platform
|
|
67
|
+
packaging/artifact workflow. The separate `desktop-release.yml` below handles
|
|
68
|
+
verified macOS arm64 prereleases, not every main push.
|
|
69
|
+
|
|
70
|
+
The embedded runtime never automatically launches a second browser for its Web
|
|
71
|
+
page: the shared browser opener honors `PI_WEBAPP_AUTO_OPEN=0` and desktop runtime
|
|
72
|
+
identity. In particular, startup does not await a long-lived `xdg-open` browser
|
|
73
|
+
before announcing backend readiness. The explicit native “在浏览器中打开” menu and
|
|
74
|
+
confirmed connection-recovery actions remain available.
|
|
60
75
|
|
|
61
76
|
The application embeds Node and Pi. Git, SSH, project compilers and other system
|
|
62
77
|
tools are **not** bundled. Missing tools must be installed by the user. Model
|
|
@@ -73,8 +88,9 @@ These are two separate release responsibilities:
|
|
|
73
88
|
- **Safe updates** verify an update's publisher/integrity and replace a compatible
|
|
74
89
|
application/runtime without destroying user data.
|
|
75
90
|
|
|
76
|
-
|
|
77
|
-
|
|
91
|
+
The installers remain **unsigned/unnotarized test builds**, with no certificate
|
|
92
|
+
discovery or automatic desktop updater. A GitHub prerelease is a download channel,
|
|
93
|
+
not a claim of formal signed-distribution readiness.
|
|
78
94
|
macOS Gatekeeper / Windows SmartScreen may warn or block an unsigned download.
|
|
79
95
|
Do not disable OS security globally to use it. Public distribution needs a
|
|
80
96
|
separately configured, authorized signing/notarization workflow; local successful
|
|
@@ -82,7 +98,8 @@ packaging is not proof of public-distribution readiness.
|
|
|
82
98
|
|
|
83
99
|
For now, install a newer desktop package to upgrade; if replacing a running
|
|
84
100
|
desktop-owned runtime, first finish tasks and stop that owned service. A desktop
|
|
85
|
-
attached to an external Web service can simply close without stopping the service.
|
|
101
|
+
attached to an external Web service can simply close without stopping the service.
|
|
102
|
+
Desktop-managed backends reject the Web/npm update and restart paths,
|
|
86
103
|
so the UI cannot overwrite the bundled runtime. A desktop window attached to an
|
|
87
104
|
existing npm-managed backend preserves that backend's original update behavior.
|
|
88
105
|
|
|
@@ -95,7 +112,7 @@ existing npm-managed backend preserves that backend's original update behavior.
|
|
|
95
112
|
If pi.app already exists, confirm Replace. The formerly named Pi Webapp.app
|
|
96
113
|
is a separate Finder item and is not silently deleted or overwritten.
|
|
97
114
|
3. Explicitly open `/Applications/pi.app`, not the old Dock shortcut, an older
|
|
98
|
-
mounted disk image, or Pi Webapp.app. Verify **pi → 关于 pi
|
|
115
|
+
mounted disk image, or Pi Webapp.app. Verify the expected build in **pi → 关于 pi**.
|
|
99
116
|
4. Remove the old pinned Dock shortcut and pin the new pi.app. Once verified,
|
|
100
117
|
the old Pi Webapp.app may be removed manually; do not delete `~/.pi`.
|
|
101
118
|
|
|
@@ -106,6 +123,67 @@ preferences or allow a second independent desktop instance. Explicit
|
|
|
106
123
|
sessions still live in their existing directory. The shared Web document/CLI
|
|
107
124
|
keeps its existing name; this rename is for the native desktop application.
|
|
108
125
|
|
|
126
|
+
## GitHub desktop prereleases
|
|
127
|
+
|
|
128
|
+
Download builds from **[GitHub Releases](https://github.com/chengzhiyi/pi-webapp/releases)**,
|
|
129
|
+
not the npm package, source ZIP or an expired Actions artifact. The current
|
|
130
|
+
release channel only offers tested macOS Apple Silicon DMGs; Windows/Linux and
|
|
131
|
+
Intel macOS need their own acceptance before becoming release targets.
|
|
132
|
+
|
|
133
|
+
`.github/workflows/desktop-release.yml` supports:
|
|
134
|
+
|
|
135
|
+
- **Tag push**: `desktop-v<backend-version>-b<desktop-build>`, such as
|
|
136
|
+
`desktop-v0.1.20-b5`. The tag must match package.json and desktop/release.json
|
|
137
|
+
at that exact source commit; mismatches fail before installation/build.
|
|
138
|
+
- **Manual build only** (default): `gh workflow run desktop-release.yml --ref main`.
|
|
139
|
+
This produces checksummed Actions artifacts without a public release.
|
|
140
|
+
- **Explicit manual publication**: add `-f publish=true`. The workflow pins the
|
|
141
|
+
dispatch commit, derives the tag from it, and only creates a missing tag at
|
|
142
|
+
that same commit. Existing tags pointing elsewhere are never moved.
|
|
143
|
+
|
|
144
|
+
For repeatable publication, commit the intended version/build and push a tag
|
|
145
|
+
pointing to that verified source SHA; do not silently follow a moving main while
|
|
146
|
+
its independent npm pipeline may write another version. Increment the desktop
|
|
147
|
+
build number for each delivered rebuild. Tag creation/release is an intentional
|
|
148
|
+
publication action, not part of an ordinary main commit.
|
|
149
|
+
|
|
150
|
+
The candidate build-6 pipeline adds four **native** targets:
|
|
151
|
+
|
|
152
|
+
| Target | Runner | Installer payload tested |
|
|
153
|
+
| --- | --- | --- |
|
|
154
|
+
| macOS arm64 | macos-15 | Read-only mounted DMG / pi.app |
|
|
155
|
+
| macOS x64 | macos-15-intel | Read-only mounted DMG / pi.app |
|
|
156
|
+
| Windows x64 | windows-2022 | NSIS silently installed pi.exe on disposable CI runner |
|
|
157
|
+
| Linux x64 | ubuntu-22.04 | Extracted AppImage AppRun under Xvfb, without requiring FUSE |
|
|
158
|
+
|
|
159
|
+
Each uses locked dependencies, standalone Node/Pi, full unit tests and actual
|
|
160
|
+
installer-payload desktop/browser/PTY smoke. The smoke reads the installed Pi
|
|
161
|
+
package and requires the same pinned version. Signing discovery and Sentry are
|
|
162
|
+
disabled. ARM Windows/Linux and other targets are not implicitly supported.
|
|
163
|
+
|
|
164
|
+
A read-only aggregation job requires **all four** verified receipts from the
|
|
165
|
+
same source/version/build/Pi pair. It collects four installers, SHA256SUMS,
|
|
166
|
+
`desktop-release.json` (schema 2, per-target runtime and smoke evidence), and
|
|
167
|
+
release-notes.md. A missing/failed target prevents the complete release; matrix
|
|
168
|
+
entries alone are not an acceptance claim. Build-only runs also exercise this
|
|
169
|
+
aggregation, but never create a public Release.
|
|
170
|
+
|
|
171
|
+
Only the final Ubuntu publish job gets `contents: write`, with no npm installation
|
|
172
|
+
or app execution. It checks the bundle, creates a **draft prerelease**, uploads
|
|
173
|
+
four installers plus checksums and metadata, downloads all six assets to verify
|
|
174
|
+
their bytes, then publishes with `latest=false`. An interrupted upload stays a
|
|
175
|
+
draft; retries may repair it. Published assets are never clobbered: a retry only
|
|
176
|
+
succeeds if every downloaded file is byte-identical. Conflicting source/tag or
|
|
177
|
+
bytes fail rather than replacing a public download.
|
|
178
|
+
|
|
179
|
+
The original public build 5 remains macOS-arm64-only with Pi 0.87.1. Do not
|
|
180
|
+
advertise candidate target support or point users to candidate installer links
|
|
181
|
+
until native jobs pass and that new build has actually been published.
|
|
182
|
+
|
|
183
|
+
The packing wrapper deliberately retains `--publish never`: explicit CI Release
|
|
184
|
+
upload owns publication. The manual cross-platform package workflow remains
|
|
185
|
+
artifact-only. npm/Web publishing is unchanged and independent.
|
|
186
|
+
|
|
109
187
|
## Application icon
|
|
110
188
|
|
|
111
189
|
The desktop uses an original deep-teal rounded tile with an ivory **π** monogram
|
|
@@ -187,7 +265,21 @@ without global Node/Pi. It tests renderer isolation, real PTY interaction,
|
|
|
187
265
|
authentication, file listing, desktop update protection, a browser connected to
|
|
188
266
|
the same service, and confirmed shutdown/process cleanup. It does **not** submit
|
|
189
267
|
a paid model request, log in to a provider, or use the user's saved credentials.
|
|
190
|
-
Screenshots/results are written to `artifacts/desktop/`.
|
|
268
|
+
Screenshots/results are written to `artifacts/desktop/`. CI also persists a
|
|
269
|
+
secret-free phase receipt before each major step, bounds installer smoke to six
|
|
270
|
+
minutes, and bounds cleanup of its exact isolated Electron child. Failures retain
|
|
271
|
+
only bounded, redacted tails of that fixture's launcher log and Electron stderr,
|
|
272
|
+
plus allowlisted launcher metadata (never the URL, nonce, auth files or user
|
|
273
|
+
sessions). Locale is seeded before navigation; the first UI must become usable
|
|
274
|
+
before a real reload is tested, avoiding interruption of initial bootstrap.
|
|
275
|
+
The locale seed touches only the actual HTTP loopback root, not opaque/error
|
|
276
|
+
pages; real loopback storage errors still fail the test. Smoke opts into
|
|
277
|
+
`PI_WEBAPP_STARTUP_TRACE=1`: the launcher records fixed RPC startup milestones,
|
|
278
|
+
never RPC payloads, command bodies, URLs or access/control tokens. POSIX SDK and
|
|
279
|
+
shell/Git integration tests run on macOS/Linux. Windows runs portable SDK/launcher
|
|
280
|
+
boundaries, desktop/release invariants, an interactive native cmd PTY test, and
|
|
281
|
+
the actual installed-payload GUI smoke; Unix executable fixtures are not treated
|
|
282
|
+
as Windows tests. All four installer receipts remain mandatory for assembly.
|
|
191
283
|
|
|
192
284
|
The legacy smoke uses a temporary HOME/agent directory and copies the old package
|
|
193
285
|
without changing its launcher or extension JavaScript. It prepares node-pty's
|
|
@@ -203,6 +295,28 @@ may observe that author instead of its fixture author. Run tests with the normal
|
|
|
203
295
|
system Git in PATH in an isolated test environment; do not change global Git
|
|
204
296
|
configuration to make a fixture pass.
|
|
205
297
|
|
|
298
|
+
## Why the bundled Pi may not be the latest upstream version
|
|
299
|
+
|
|
300
|
+
The build-6 candidate pins **Pi 1.3.0**, the upstream latest checked on
|
|
301
|
+
2026-10-20. The previously published build 5 bundles **Pi 0.87.1**. A source
|
|
302
|
+
upgrade does not mutate that old download or a running external Web service. `package.json` and `desktop/runtime-manifest/package-lock.json`
|
|
303
|
+
pin both `@earendil-works/pi-coding-agent` and `@earendil-works/pi-ai` together.
|
|
304
|
+
The standalone Node runtime and native PTY are verified as part of that unit.
|
|
305
|
+
The app version, desktop build number and bundled Pi version are separate.
|
|
306
|
+
|
|
307
|
+
The public npm `latest` for both Pi packages was **1.3.0 when checked on
|
|
308
|
+
2026-10-20**. Thus the older build's 0.87.1 is **not** the latest Pi. The candidate upgrade
|
|
309
|
+
has passed typechecks and existing tests; native package gates still decide
|
|
310
|
+
whether it may be offered as a new public download.
|
|
311
|
+
Moving from the tested 0.x SDK to 1.x needs API/type compatibility review, paired
|
|
312
|
+
lockfile updates, authentication/plugin/session regressions, native PTY checks,
|
|
313
|
+
and packaged desktop/Web smoke tests before publishing a new installer.
|
|
314
|
+
|
|
315
|
+
Do not replace the signed/packaged runtime in place or install `latest` on every
|
|
316
|
+
startup. Upgrade it deliberately through a new tested desktop build, recording
|
|
317
|
+
the exact Pi version in `desktop-release.json` and release notes. This preserves
|
|
318
|
+
reproducibility and prevents silently changing a user's running tasks.
|
|
319
|
+
|
|
206
320
|
## Updating runtime dependencies
|
|
207
321
|
|
|
208
322
|
When production dependencies or pinned Pi versions in the root manifest change:
|
package/docs/sentry.md
CHANGED
|
@@ -108,7 +108,7 @@ node scripts/publish-verified-release.mjs
|
|
|
108
108
|
|
|
109
109
|
`verify:sentry` first checks credentials and the package, then invokes the packaged Node verification entry and serves the packaged browser assets on loopback with synthetic configuration. It sends only synthetic events to the configured Sentry DSNs with `environment=sentry-verification`; normal imports and normal browser environments do not run these probes. The Node entry requires `PI_WEB_SENTRY_VERIFY_RELEASE=true` and the verification environment; the browser requires a verification-configured server and the explicit `sentry_release_probe=1` URL flag. The CLI sets up these guards itself.
|
|
110
110
|
|
|
111
|
-
The verifier waits at most 120 seconds for the real events, checks release/build/side/Debug IDs, and requires original application frames to resolve to TypeScript. The synthetic exception must resolve to the exact source file and line recorded in the archived map. Browser maps give application sources stable `app:///
|
|
111
|
+
The verifier waits at most 120 seconds for the real events, checks release/build/side/Debug IDs, and requires original application frames to resolve to TypeScript. The synthetic exception must resolve to the exact source file and line recorded in the archived map. Browser maps give application sources stable `app:///src/` and `app:///web/src/` paths before upload. Unmapped external SDK dependencies do not invalidate resolved application frames. A successful run writes `.ci/release/verified.json` with event IDs and the tarball SHA-256. The publisher verifies that receipt and hash before publishing that tarball with lifecycle scripts disabled. Missing credentials, failed uploads, mismatched package assets, unmapped application frames, missing receipts, or changed tarballs block publication. Version synchronization to main occurs only after these checks succeed.
|
|
112
112
|
|
|
113
113
|
For mapping failures, use Sentry's event source-map debugger or its `source-map-debug` API, and inspect matching Debug IDs for application bundles. Old tool-result events without original stacks remain limited even after source maps are uploaded.
|
|
114
114
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-webapp",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.22",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A browser interface for Pi with live chat, workspaces, models, and attachments",
|
|
6
6
|
"repository": {
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"pi-webapp": "./bin/pi-webapp.mjs"
|
|
16
16
|
},
|
|
17
17
|
"pi": {
|
|
18
|
-
"image": "https://cdn.jsdelivr.net/npm/pi-webapp@0.1.
|
|
18
|
+
"image": "https://cdn.jsdelivr.net/npm/pi-webapp@0.1.22/assets/cover-webapp.png",
|
|
19
19
|
"extensions": [
|
|
20
20
|
"./dist/extension.js"
|
|
21
21
|
]
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"status": "node bin/pi-webapp.mjs status",
|
|
40
40
|
"stop": "node bin/pi-webapp.mjs stop",
|
|
41
41
|
"check": "tsc --noEmit && tsc -p web/tsconfig.json",
|
|
42
|
-
"test": "node --import ./test/setup-env.mjs --experimental-strip-types --test test/*.test.ts && npm run test:desktop",
|
|
42
|
+
"test": "node --import ./test/setup-env.mjs --experimental-strip-types --test --test-concurrency=4 test/*.test.ts && npm run test:desktop",
|
|
43
43
|
"test:desktop": "node --test desktop/test/*.test.mjs",
|
|
44
44
|
"desktop:icons": "node scripts/generate-desktop-icons.mjs",
|
|
45
45
|
"desktop:sync-runtime": "node scripts/sync-desktop-runtime.mjs",
|
|
@@ -69,8 +69,8 @@
|
|
|
69
69
|
},
|
|
70
70
|
"devDependencies": {
|
|
71
71
|
"@chengzhiyi/pi-web-protocol": "0.1.0",
|
|
72
|
-
"@earendil-works/pi-ai": "
|
|
73
|
-
"@earendil-works/pi-coding-agent": "
|
|
72
|
+
"@earendil-works/pi-ai": "1.3.0",
|
|
73
|
+
"@earendil-works/pi-coding-agent": "1.3.0",
|
|
74
74
|
"@playwright/test": "1.63.0",
|
|
75
75
|
"@sentry/esbuild-plugin": "5.4.0",
|
|
76
76
|
"@sentry/vite-plugin": "5.4.0",
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"isDynamicEntry": true
|
|
82
82
|
},
|
|
83
83
|
"../../node_modules/@shikijs/langs/dist/elixir.mjs": {
|
|
84
|
-
"file": "assets/elixir-
|
|
84
|
+
"file": "assets/elixir-R3IvWmT5.js",
|
|
85
85
|
"name": "elixir",
|
|
86
86
|
"src": "../../node_modules/@shikijs/langs/dist/elixir.mjs",
|
|
87
87
|
"isDynamicEntry": true,
|
|
@@ -122,13 +122,13 @@
|
|
|
122
122
|
"isDynamicEntry": true
|
|
123
123
|
},
|
|
124
124
|
"../../node_modules/@shikijs/langs/dist/graphql.mjs": {
|
|
125
|
-
"file": "assets/graphql-
|
|
125
|
+
"file": "assets/graphql-DSgZM88T.js",
|
|
126
126
|
"name": "graphql",
|
|
127
127
|
"src": "../../node_modules/@shikijs/langs/dist/graphql.mjs",
|
|
128
128
|
"isDynamicEntry": true,
|
|
129
129
|
"imports": [
|
|
130
130
|
"_javascript-D_ijBMSX.js",
|
|
131
|
-
"_app-
|
|
131
|
+
"_app-D54rSb9U.js",
|
|
132
132
|
"index.html"
|
|
133
133
|
]
|
|
134
134
|
},
|
|
@@ -151,7 +151,7 @@
|
|
|
151
151
|
"isDynamicEntry": true
|
|
152
152
|
},
|
|
153
153
|
"../../node_modules/@shikijs/langs/dist/html.mjs": {
|
|
154
|
-
"file": "assets/html-
|
|
154
|
+
"file": "assets/html-COcRjUs1.js",
|
|
155
155
|
"name": "html",
|
|
156
156
|
"src": "../../node_modules/@shikijs/langs/dist/html.mjs",
|
|
157
157
|
"isDynamicEntry": true,
|
|
@@ -161,12 +161,12 @@
|
|
|
161
161
|
]
|
|
162
162
|
},
|
|
163
163
|
"../../node_modules/@shikijs/langs/dist/http.mjs": {
|
|
164
|
-
"file": "assets/http-
|
|
164
|
+
"file": "assets/http-BnatDCTa.js",
|
|
165
165
|
"name": "http",
|
|
166
166
|
"src": "../../node_modules/@shikijs/langs/dist/http.mjs",
|
|
167
167
|
"isDynamicEntry": true,
|
|
168
168
|
"imports": [
|
|
169
|
-
"_app-
|
|
169
|
+
"_app-D54rSb9U.js",
|
|
170
170
|
"../../node_modules/@shikijs/langs/dist/xml.mjs",
|
|
171
171
|
"../../node_modules/@shikijs/langs/dist/graphql.mjs",
|
|
172
172
|
"index.html",
|
|
@@ -187,7 +187,7 @@
|
|
|
187
187
|
"isDynamicEntry": true
|
|
188
188
|
},
|
|
189
189
|
"../../node_modules/@shikijs/langs/dist/julia.mjs": {
|
|
190
|
-
"file": "assets/julia-
|
|
190
|
+
"file": "assets/julia-yApUWuwQ.js",
|
|
191
191
|
"name": "julia",
|
|
192
192
|
"src": "../../node_modules/@shikijs/langs/dist/julia.mjs",
|
|
193
193
|
"isDynamicEntry": true,
|
|
@@ -261,7 +261,7 @@
|
|
|
261
261
|
"isDynamicEntry": true
|
|
262
262
|
},
|
|
263
263
|
"../../node_modules/@shikijs/langs/dist/perl.mjs": {
|
|
264
|
-
"file": "assets/perl-
|
|
264
|
+
"file": "assets/perl-CpGQZpC_.js",
|
|
265
265
|
"name": "perl",
|
|
266
266
|
"src": "../../node_modules/@shikijs/langs/dist/perl.mjs",
|
|
267
267
|
"isDynamicEntry": true,
|
|
@@ -275,7 +275,7 @@
|
|
|
275
275
|
]
|
|
276
276
|
},
|
|
277
277
|
"../../node_modules/@shikijs/langs/dist/php.mjs": {
|
|
278
|
-
"file": "assets/php-
|
|
278
|
+
"file": "assets/php-C7wdcWqa.js",
|
|
279
279
|
"name": "php",
|
|
280
280
|
"src": "../../node_modules/@shikijs/langs/dist/php.mjs",
|
|
281
281
|
"isDynamicEntry": true,
|
|
@@ -284,7 +284,7 @@
|
|
|
284
284
|
"../../node_modules/@shikijs/langs/dist/xml.mjs",
|
|
285
285
|
"../../node_modules/@shikijs/langs/dist/sql.mjs",
|
|
286
286
|
"_javascript-D_ijBMSX.js",
|
|
287
|
-
"_app-
|
|
287
|
+
"_app-D54rSb9U.js",
|
|
288
288
|
"../../node_modules/@shikijs/langs/dist/css.mjs",
|
|
289
289
|
"../../node_modules/@shikijs/langs/dist/java.mjs",
|
|
290
290
|
"index.html"
|
|
@@ -315,16 +315,16 @@
|
|
|
315
315
|
"isDynamicEntry": true
|
|
316
316
|
},
|
|
317
317
|
"../../node_modules/@shikijs/langs/dist/rst.mjs": {
|
|
318
|
-
"file": "assets/rst-
|
|
318
|
+
"file": "assets/rst-DXm1XNUD.js",
|
|
319
319
|
"name": "rst",
|
|
320
320
|
"src": "../../node_modules/@shikijs/langs/dist/rst.mjs",
|
|
321
321
|
"isDynamicEntry": true,
|
|
322
322
|
"imports": [
|
|
323
|
-
"_html-derivative-
|
|
323
|
+
"_html-derivative-C2Epw9Yg.js",
|
|
324
324
|
"../../node_modules/@shikijs/langs/dist/cpp.mjs",
|
|
325
325
|
"../../node_modules/@shikijs/langs/dist/python.mjs",
|
|
326
326
|
"_javascript-D_ijBMSX.js",
|
|
327
|
-
"_app-
|
|
327
|
+
"_app-D54rSb9U.js",
|
|
328
328
|
"../../node_modules/@shikijs/langs/dist/yaml.mjs",
|
|
329
329
|
"../../node_modules/@shikijs/langs/dist/cmake.mjs",
|
|
330
330
|
"../../node_modules/@shikijs/langs/dist/ruby.mjs",
|
|
@@ -340,7 +340,7 @@
|
|
|
340
340
|
]
|
|
341
341
|
},
|
|
342
342
|
"../../node_modules/@shikijs/langs/dist/ruby.mjs": {
|
|
343
|
-
"file": "assets/ruby-
|
|
343
|
+
"file": "assets/ruby-BM86KL0M.js",
|
|
344
344
|
"name": "ruby",
|
|
345
345
|
"src": "../../node_modules/@shikijs/langs/dist/ruby.mjs",
|
|
346
346
|
"isDynamicEntry": true,
|
|
@@ -353,7 +353,7 @@
|
|
|
353
353
|
"../../node_modules/@shikijs/langs/dist/graphql.mjs",
|
|
354
354
|
"../../node_modules/@shikijs/langs/dist/cpp.mjs",
|
|
355
355
|
"../../node_modules/@shikijs/langs/dist/c.mjs",
|
|
356
|
-
"_app-
|
|
356
|
+
"_app-D54rSb9U.js",
|
|
357
357
|
"../../node_modules/@shikijs/langs/dist/lua.mjs",
|
|
358
358
|
"../../node_modules/@shikijs/langs/dist/yaml.mjs",
|
|
359
359
|
"../../node_modules/@shikijs/langs/dist/java.mjs",
|
|
@@ -388,13 +388,13 @@
|
|
|
388
388
|
"isDynamicEntry": true
|
|
389
389
|
},
|
|
390
390
|
"../../node_modules/@shikijs/langs/dist/svelte.mjs": {
|
|
391
|
-
"file": "assets/svelte-
|
|
391
|
+
"file": "assets/svelte-Dizghd7i.js",
|
|
392
392
|
"name": "svelte",
|
|
393
393
|
"src": "../../node_modules/@shikijs/langs/dist/svelte.mjs",
|
|
394
394
|
"isDynamicEntry": true,
|
|
395
395
|
"imports": [
|
|
396
396
|
"_javascript-D_ijBMSX.js",
|
|
397
|
-
"_app-
|
|
397
|
+
"_app-D54rSb9U.js",
|
|
398
398
|
"../../node_modules/@shikijs/langs/dist/css.mjs",
|
|
399
399
|
"index.html"
|
|
400
400
|
]
|
|
@@ -430,16 +430,16 @@
|
|
|
430
430
|
"isDynamicEntry": true
|
|
431
431
|
},
|
|
432
432
|
"../../node_modules/@shikijs/langs/dist/vue.mjs": {
|
|
433
|
-
"file": "assets/vue-
|
|
433
|
+
"file": "assets/vue-DJuuwuj_.js",
|
|
434
434
|
"name": "vue",
|
|
435
435
|
"src": "../../node_modules/@shikijs/langs/dist/vue.mjs",
|
|
436
436
|
"isDynamicEntry": true,
|
|
437
437
|
"imports": [
|
|
438
438
|
"../../node_modules/@shikijs/langs/dist/css.mjs",
|
|
439
439
|
"_javascript-D_ijBMSX.js",
|
|
440
|
-
"_app-
|
|
440
|
+
"_app-D54rSb9U.js",
|
|
441
441
|
"../../node_modules/@shikijs/langs/dist/html.mjs",
|
|
442
|
-
"_html-derivative-
|
|
442
|
+
"_html-derivative-C2Epw9Yg.js",
|
|
443
443
|
"index.html"
|
|
444
444
|
]
|
|
445
445
|
},
|
|
@@ -694,18 +694,47 @@
|
|
|
694
694
|
"file": "assets/KaTeX_Typewriter-Regular.woff2",
|
|
695
695
|
"src": "../../node_modules/katex/dist/fonts/KaTeX_Typewriter-Regular.woff2"
|
|
696
696
|
},
|
|
697
|
-
"
|
|
698
|
-
"file": "assets/
|
|
699
|
-
"name": "
|
|
700
|
-
"src": "
|
|
697
|
+
"../../src/host/client/telemetry-client.ts": {
|
|
698
|
+
"file": "assets/telemetry-client-CBQBug9X.js",
|
|
699
|
+
"name": "telemetry-client",
|
|
700
|
+
"src": "../../src/host/client/telemetry-client.ts",
|
|
701
|
+
"isDynamicEntry": true,
|
|
702
|
+
"imports": [
|
|
703
|
+
"index.html"
|
|
704
|
+
]
|
|
705
|
+
},
|
|
706
|
+
"../../src/plugins/builtin/files/client/plugin.tsx": {
|
|
707
|
+
"file": "assets/plugin-DuICpslz.js",
|
|
708
|
+
"name": "plugin",
|
|
709
|
+
"src": "../../src/plugins/builtin/files/client/plugin.tsx",
|
|
710
|
+
"isDynamicEntry": true,
|
|
711
|
+
"imports": [
|
|
712
|
+
"_app-D54rSb9U.js",
|
|
713
|
+
"index.html"
|
|
714
|
+
]
|
|
715
|
+
},
|
|
716
|
+
"../../src/plugins/builtin/git/client/plugin.tsx": {
|
|
717
|
+
"file": "assets/plugin-U9RqGH7R.js",
|
|
718
|
+
"name": "plugin",
|
|
719
|
+
"src": "../../src/plugins/builtin/git/client/plugin.tsx",
|
|
701
720
|
"isDynamicEntry": true,
|
|
702
721
|
"imports": [
|
|
703
|
-
"_app-
|
|
722
|
+
"_app-D54rSb9U.js",
|
|
704
723
|
"index.html"
|
|
705
724
|
]
|
|
706
725
|
},
|
|
707
|
-
"
|
|
708
|
-
"file": "assets/
|
|
726
|
+
"../../src/plugins/builtin/terminal/client/plugin.tsx": {
|
|
727
|
+
"file": "assets/plugin-CDXXKG8W.js",
|
|
728
|
+
"name": "plugin",
|
|
729
|
+
"src": "../../src/plugins/builtin/terminal/client/plugin.tsx",
|
|
730
|
+
"isDynamicEntry": true,
|
|
731
|
+
"imports": [
|
|
732
|
+
"_app-D54rSb9U.js",
|
|
733
|
+
"index.html"
|
|
734
|
+
]
|
|
735
|
+
},
|
|
736
|
+
"_app-D54rSb9U.js": {
|
|
737
|
+
"file": "assets/app-D54rSb9U.js",
|
|
709
738
|
"name": "app",
|
|
710
739
|
"isDynamicEntry": true,
|
|
711
740
|
"imports": [
|
|
@@ -769,7 +798,9 @@
|
|
|
769
798
|
"../../node_modules/@shikijs/langs/dist/make.mjs",
|
|
770
799
|
"../../node_modules/@shikijs/langs/dist/cmake.mjs",
|
|
771
800
|
"../../node_modules/@shikijs/langs/dist/groovy.mjs",
|
|
772
|
-
"
|
|
801
|
+
"../../src/plugins/builtin/files/client/plugin.tsx",
|
|
802
|
+
"../../src/plugins/builtin/terminal/client/plugin.tsx",
|
|
803
|
+
"../../src/plugins/builtin/git/client/plugin.tsx"
|
|
773
804
|
],
|
|
774
805
|
"assets": [
|
|
775
806
|
"assets/KaTeX_AMS-Regular.woff2",
|
|
@@ -833,8 +864,8 @@
|
|
|
833
864
|
"assets/KaTeX_Typewriter-Regular.ttf"
|
|
834
865
|
]
|
|
835
866
|
},
|
|
836
|
-
"_html-derivative-
|
|
837
|
-
"file": "assets/html-derivative-
|
|
867
|
+
"_html-derivative-C2Epw9Yg.js": {
|
|
868
|
+
"file": "assets/html-derivative-C2Epw9Yg.js",
|
|
838
869
|
"name": "html-derivative",
|
|
839
870
|
"imports": [
|
|
840
871
|
"../../node_modules/@shikijs/langs/dist/html.mjs"
|
|
@@ -850,21 +881,12 @@
|
|
|
850
881
|
"src": "index.html",
|
|
851
882
|
"isEntry": true,
|
|
852
883
|
"dynamicImports": [
|
|
853
|
-
"telemetry-client.ts",
|
|
854
|
-
"_app-
|
|
884
|
+
"../../src/host/client/telemetry-client.ts",
|
|
885
|
+
"_app-D54rSb9U.js"
|
|
855
886
|
]
|
|
856
887
|
},
|
|
857
888
|
"style.css": {
|
|
858
889
|
"file": "assets/style.css",
|
|
859
890
|
"src": "style.css"
|
|
860
|
-
},
|
|
861
|
-
"telemetry-client.ts": {
|
|
862
|
-
"file": "assets/telemetry-client-CBQBug9X.js",
|
|
863
|
-
"name": "telemetry-client",
|
|
864
|
-
"src": "telemetry-client.ts",
|
|
865
|
-
"isDynamicEntry": true,
|
|
866
|
-
"imports": [
|
|
867
|
-
"index.html"
|
|
868
|
-
]
|
|
869
891
|
}
|
|
870
892
|
}
|