workbite 0.1.19 → 0.1.21

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 CHANGED
@@ -1,164 +1,221 @@
1
- # workbite
2
-
3
- WorkBite installs and opens **Work Stack** (organizes the work) and
4
- **StackBite** (gets it moving) as one native suite.
5
-
6
- Launcher 0.1.19 pins verified **Windows x64 and Linux x64** native bundles
7
- from the same immutable source. The archive sizes, SHA-256 and bundle digests
8
- are sealed in `release.json` and verified before execution. Install on either
9
- platform with `npm install -g workbite@0.1.19`; both `latest` and `windows`
10
- channels are intended for this paired release after registry publication.
11
- See the [release notes](https://github.com/Shinick-Han/WorkBite-releases/releases/tag/v0.1.19).
12
- It opens the familiar TypeScript Work Stack UI by default, which
13
- has one Tasks workbench: switch Focus/Table/Board without losing your selected
14
- Task, open its persistent Room's plain terminal, and control it beside or below
15
- the Tasks. A compact terminal action is the default Task workspace entry;
16
- advanced Run deployment, history and result review remain available. Horizontal
17
- Seat tabs and the vertical Seat list share selection, input state and one native
18
- terminal host; switching presentation does not launch or stop a Seat.
19
- Use F6 to move focus, Ctrl+B to hide the sidebar, Alt+Shift+L to switch layouts,
20
- Alt+Shift+arrows to resize, and Alt+Shift+Z to expand the active pane. Existing
21
- Runs and Seats remain available while navigating. Cursor and Grok remain raw
22
- native providers in opted-in Rooms (you approve their trust; native lifecycle,
23
- completion and resume remain unsupported/unqualified). The unified Rust UI stays
24
- an explicit alternative per open: `workbite open --frontend rust` (or bare
25
- `workbite --frontend rust`). Either frontend reuses the same owner and
26
- StackBite backend; the choice is not saved. Leaving the view or closing the UI
27
- keeps the agent running, and Task completion stays an explicit action.
28
-
29
- The Linux archive passed all 12 ELF gates with a glibc 2.28 floor and 29 packaged
30
- AlmaLinux 8 userspace probes. Real AI agent turns on Linux, a booted AlmaLinux 8
31
- kernel and SSH/VM use are not yet proven. Updating an existing native bundle
32
- requires an operator handover of existing backend processes; the launcher does not stop
33
- them or clear startup records automatically.
34
-
35
- ```sh
36
- npm install -g workbite@0.1.19 # Windows/Linux x64 after registry publication
37
- workbite install
38
- workbite open --workspace /abs/path/new-folder --init # first time, once
39
- workbite # afterwards (TypeScript UI)
40
- workbite --frontend rust # unified Rust UI with 9 Execution
41
- ```
42
-
43
- Node.js 20+ on Windows x64 or Linux x64 (glibc 2.28+).
44
-
45
- - `workbite install` downloads the pinned bundle for your platform from
46
- `github.com/Shinick-Han/WorkBite-releases`, verifies its size and SHA-256 and
47
- every file listed in its `bundle.json`, and installs it into an immutable
48
- per-user version folder. No auto-update, no install scripts, no dependencies.
49
- - `workbite check` re-verifies installed bundle integrity without downloading;
50
- it does not test backend health, workspace admission or UI behavior.
51
- - `workbite open --workspace ABS [--init] [--no-ui] [--frontend typescript|rust]`
52
- starts or reuses the workspace's Work Stack owner and a StackBite backend
53
- (only processes it can prove it started), then runs the TypeScript Work Stack
54
- UI, or the unified Rust UI with `--frontend rust` (0.1.4+ execution bundle
55
- only; an older bundle refuses it before starting anything). Backends keep
56
- running after the UI exits.
57
- - `workbite` (or `workbite open` without `--workspace`) reopens the last
58
- workspace that opened successfully; an explicit `--workspace` always wins.
59
- It refuses, starting nothing, if that workspace is missing, moved or its
60
- `workspace.json` id changed, and never picks another folder by itself.
61
- `--init` always needs an explicit `--workspace`.
62
- - Each backend's startup record (private token, launch id, port) is saved in
63
- the state folder *before* the process is started. A later `open` reuses
64
- that same attempt once it authenticates (also after a slow start), and
65
- otherwise refuses. Unreadable/invalid records remain untouched; an
66
- unreachable process is not assumed stopped. The unreleased source's narrow
67
- archival path requires trusted same-host previous-boot evidence for eligible
68
- owner/backend records. It does not resolve foreign hosts or native intents.
69
- Diagnose the exact host/boot, workspace, backend and native intent before
70
- operator handover. Age or a missing local PID cannot establish that a process
71
- on another NFS client has stopped; preserve uncertain records.
72
-
73
- WorkBite keeps its own state (`%LOCALAPPDATA%\WorkBite` on Windows,
74
- `~/.local/share/workbite` and `~/.local/state/workbite` on Linux; override
75
- with absolute `WORKBITE_HOME` / `WORKBITE_STATE_DIR`) and never touches
76
- separately installed Work Stack or StackBite apps, their state or ports. It
77
- never approves provider trust or starts paid agents by itself.
78
-
79
- Startup diagnostics include `workbite status [--json]`,
80
- `workbite doctor [--json]` and `workbite recover --dry-run [--json]`. They inspect evidence and plan
81
- only: no process starts/stops, record reset, native intent repair or migration.
82
- `open --no-ui` does start/reuse the backend stack (including native selection for
83
- v2) and prints JSON, but never launches or validates the foreground UI. Startup
84
- stage messages distinguish that UI launch from backend readiness; the launcher
85
- continues waiting while the UI runs. Full installed-file hashing still occurs
86
- on reuse, so these changes do not promise faster opens.
87
-
88
- For NFS shared homes, configure the existing absolute `WORKBITE_STATE_DIR`
89
- override to a distinct host-local runtime directory per host after coordinating
90
- any existing owners and active Seats. This does not move old state or permit
91
- parallel writers to one shared workspace. `WORKBITE_HOME` separately overrides
92
- the installation root (`app/` beneath it); changing it is not a universal tar
93
- fix. See the source repository's
94
- [startup troubleshooting guide](../../docs/STARTUP-TROUBLESHOOTING.md) for tcsh
95
- `setenv` examples, failure diagnosis, bounded tar stderr and safe handover
96
- requirements. Keep workspace locks and unknown native intents intact.
97
-
98
- Coding agents read and record Tasks of a workspace whose owner `workbite open`
99
- already runs; nothing is started for them:
100
-
101
- ```sh
102
- workbite agent status # bound workspace path + UUID
103
- workbite agent --workspace ABS --workspace-uid UUID context --task T-0001
104
- workbite agent --workspace ABS --workspace-uid UUID tasks create --intent-id ID --input-file FILE
105
- workbite mcp --workspace ABS --workspace-uid UUID # MCP stdio server
106
- ```
107
-
108
- Writes (`tasks create`, `tasks update`, `checkpoint`) always need the explicit
109
- `--workspace` + `--workspace-uid` pair. `workbite mcp` binds one workspace when
110
- it starts. The `workbite-native` agent skill shipped in this package
111
- (`skills/workbite-native/`) describes the commands, packets and recovery
112
- rules.
113
-
114
- The 0.1.19 release retains **Connect agent** in Task Execution (`a`),
115
- the global 9 Execution monitor and launch picker (`+`), clickable controls and
116
- scoped command palettes (`:`). Claude Code, Codex, Cursor and Grok Build use
117
- their official CLI login and credential storage. Missing CLIs offer install
118
- guides; nothing installs automatically. Connecting preserves the Task/draft,
119
- folder, instructions and watched Run/Seat, and never deploys or changes Task
120
- status. Selection rechecks current authentication and launch readiness; an old
121
- login receipt cannot establish current authentication.
122
-
123
- Codex discovers model IDs and supported effort choices with a bounded cache;
124
- CLI defaults remain selectable and unsupported saved choices stay visible.
125
- An official Grok login success marker can show
126
- `provider_login_completed_status_unverified`; it does not show a connected
127
- badge or prove current CLI authentication. Generic exit zero and refresh alone
128
- do not prove login. No authoritative local Grok auth-status probe is qualified;
129
- launch-ready CLI settings can be selected explicitly with that label.
130
- Automated login process ownership is qualified on Windows only;
131
- POSIX automated connection remains refused pending cleanup qualification.
132
- Source checks used disposable fixtures, with no live account login, browser
133
- completion, account-entitlement proof or paid provider turn acceptance. See the
134
- [source acceptance record](../../docs/WORKBITE-AGENT-CONNECTION-ACCEPTANCE-2026-10-16.md).
135
-
136
- The Windows 0.1.19 release retains the read-only phone companion pilot from 0.1.14.
137
- Linux Phone support remains unsupported; paired releases do not imply identical
138
- platform capabilities.
139
- Phone actions preserve their selected target during status reads, show pending
140
- work and reuse the managed Windows helper within actions. Pairing links retain
141
- their complete URL. New hosts supply a compact pairing URL and an inline TUI
142
- QR with an enlarged view; this path creates no PNG and opens no external
143
- viewer automatically. Small terminals show size guidance instead of a partial
144
- QR. Link opening and supported image actions remain explicit choices; older
145
- hosts retain their compatibility path. QR opening has an explicit Edge
146
- alternative. A successful system handoff does not establish that a browser
147
- or viewer rendered the target. Open Settings
148
- with `,`, select Phone, enable it, then pair using the expiring QR and compare
149
- the complete fingerprint before approving on the PC. Remembered browsers can
150
- reconnect; devices can be revoked. Initial PC enrollment requires an operator
151
- invitation through the supported embedding/bootstrap surface; this release
152
- does not include a public invitation-entry UI. The hosted relay needs no user
153
- domain or Cloudflare client. CurrentUser DPAPI on local NTFS is required.
154
- Mobile Task writes, deployment, terminal input, replies, notifications and
155
- background connectivity are not supported. The PC must remain online.
156
-
157
- This package is `UNLICENSED` (all rights reserved). Third-party licenses ship
158
- in each bundle's `licenses/` folder.
159
-
160
- The candidate retains the 0.1.16 Phone control-file sharing fix and existing
161
- protected-store and OS lease checks. Hosted mobile assets must accept both
162
- old object offers and compact tuples before the new PC emitter is installed.
163
- Source tests and rendered fixtures do not qualify physical phone cameras,
164
- actual terminal fonts, LTE or background behavior.
1
+ # workbite
2
+
3
+ WorkBite installs and opens **Work Stack** (organizes the work) and
4
+ **StackBite** (gets it moving) as one native suite.
5
+
6
+ Launcher 0.1.21 is a **sealed Windows x64 and Linux x64 release candidate**.
7
+ Both native bundles were built from source
8
+ `e3fddfbdca1206e16281014b4c04935d206563c9`, tree
9
+ `ca0d86685adff33143fac209748d5d77b854f8da`. Actual sizes, SHA-256 hashes
10
+ and embedded bundle digests are pinned in `release.json`; full archive audits,
11
+ packaged probes and the paired candidate gate passed. Intended delivery is
12
+ `workbite-0.1.21-windows-x64.zip` and `workbite-0.1.21-linux-x64.tar.gz`
13
+ under tag `v0.1.21` in `Shinick-Han/WorkBite-releases`.
14
+ Publication and installation remain separate maintainer steps; this record
15
+ makes no public delivery or registry acceptance claim. The operator selected
16
+ manual publication because hosted Actions quota is exhausted; no hosted CI or
17
+ OIDC success is claimed and the existing CI publication helper is unchanged.
18
+ It opens the familiar TypeScript Work Stack UI by default, which
19
+ has one Tasks workbench: switch Focus/Table/Board without losing your selected
20
+ Task, open its persistent Room's plain terminal, and control it beside or below
21
+ the Tasks. A compact terminal action is the default Task workspace entry;
22
+ advanced Run deployment, history and result review remain available. Horizontal
23
+ Seat tabs and the vertical Seat list share selection, input state and one native
24
+ terminal host; switching presentation does not launch or stop a Seat.
25
+ Use F6 to move focus, Ctrl+B to hide the sidebar, Alt+Shift+L to switch layouts,
26
+ Alt+Shift+arrows to resize, and Alt+Shift+Z to expand the active pane. Existing
27
+ Runs and Seats remain available while navigating. Cursor and Grok remain raw
28
+ native providers in opted-in Rooms (you approve their trust; native lifecycle,
29
+ completion and resume remain unsupported/unqualified). The unified Rust UI stays
30
+ an explicit alternative per open: `workbite open --frontend rust` (or bare
31
+ `workbite --frontend rust`). Either frontend reuses the same owner and
32
+ StackBite backend; the choice is not saved. Leaving the view or closing the UI
33
+ keeps the agent running, and Task completion stays an explicit action.
34
+
35
+ The 0.1.21 pair passed fresh native archive/runtime qualification: Windows
36
+ 10 stages and 17 packaged probes; Linux 15 stages, all 12 packaged ELF
37
+ version-needs checks and 29 AlmaLinux 8.10 userspace probes, preserving the
38
+ glibc 2.28 floor. Alma8 userspace ran under bwrap on WSL. Linux frozen mandatory
39
+ UX modules and symbols passed; two unwired source helpers (grok_hooks and
40
+ input_evidence) are excluded, so this is not full tracked PYZ or native Grok
41
+ hook qualification. See the [qualification record](../../docs/releases/0.1.21/README.md).
42
+ Source fixtures do not prove real agent turns, a booted AlmaLinux 8 kernel,
43
+ SSH/VM, NFS or physical-phone behavior. Updating an existing native bundle
44
+ requires an operator handover of existing backend processes; the launcher does not
45
+ stop them or clear startup records automatically.
46
+
47
+ The candidate keeps a stable Seat across explicit shell restarts, with a fresh
48
+ generation and no inferred previous CLI/provider resume. Stop retains the Seat;
49
+ removal targets a confirmed finalized execution and retains bounded history.
50
+ History labels distinguish available, truncated, failed and unavailable capture.
51
+ The canonical Task Room includes older bound Rooms and truthful
52
+ running/waiting/exited/unknown summaries. Human terminals default to pinned;
53
+ verified spawned children default to temporary, with recorded parent provenance.
54
+ Bulk cleanup preserves pinned, live, stale and unknown targets; explicit removal
55
+ of a finalized pinned Seat is a separate user choice.
56
+
57
+ Arrow navigation previews; Enter or click requests the current exact Seat's
58
+ writer claim, and input begins only after acknowledgement. One Ctrl+] returns
59
+ to the UI. Native semantic instructions and mobile terminals remain unsupported
60
+ and unadvertised.
61
+
62
+ Mobile execution is source-qualified only: explicit PC execution permission is
63
+ separate from read pairing; deployment uses the PC's saved provider, folder,
64
+ model and effort defaults. A lost acknowledgement keeps the original operation
65
+ UUID for reconnect/status observation without replay. Offline or revoked requests
66
+ cannot dispatch. The joined 13-scenario production-adapter acceptance passed with
67
+ inert execution/terminal boundaries; it is not physical keyboard, native terminal,
68
+ physical-phone or packaged runtime proof. These source paths do not advertise
69
+ mobile execution as an installed Phone feature.
70
+
71
+ `workbite update` explicitly updates a global npm launcher to official npm
72
+ `latest` and stages its verified native suite. Local/npx copies print manual
73
+ guidance instead. Current latest is a no-op. Running owners, Seats and Phone
74
+ stay on their existing runtime; complete operator handover before opening the
75
+ new one. A failure can leave the launcher installed without its suite: inspect
76
+ `workbite --version`, then resolve the error and run `workbite install` and
77
+ `workbite check`. Never replay an unknown npm install without inspecting it.
78
+
79
+ ```sh
80
+ npm install -g workbite@0.1.21 # only after registry publication and public-asset verification
81
+ workbite install
82
+ workbite open --workspace /abs/path/new-folder --init # first time, once
83
+ workbite # afterwards (TypeScript UI)
84
+ workbite --frontend rust # unified Rust UI with 9 Execution
85
+ ```
86
+
87
+ Node.js 20+ on Windows x64 or Linux x64 (glibc 2.28+).
88
+
89
+ - `workbite install` downloads the pinned bundle for your platform from
90
+ `github.com/Shinick-Han/WorkBite-releases`, verifies its size and SHA-256 and
91
+ every file listed in its `bundle.json`, and installs it into an immutable
92
+ per-user version folder. No auto-update, no install scripts, no dependencies.
93
+ - `workbite check` re-verifies installed bundle integrity without downloading;
94
+ it does not test backend health, workspace admission or UI behavior.
95
+ - `workbite open --workspace ABS [--init] [--no-ui] [--frontend typescript|rust]`
96
+ starts or reuses the workspace's Work Stack owner and a StackBite backend
97
+ (only processes it can prove it started), then runs the TypeScript Work Stack
98
+ UI, or the unified Rust UI with `--frontend rust` (0.1.4+ execution bundle
99
+ only; an older bundle refuses it before starting anything). Backends keep
100
+ running after the UI exits.
101
+ - `workbite` (or `workbite open` without `--workspace`) reopens the last
102
+ workspace that opened successfully; an explicit `--workspace` always wins.
103
+ It refuses, starting nothing, if that workspace is missing, moved or its
104
+ `workspace.json` id changed, and never picks another folder by itself.
105
+ `--init` always needs an explicit `--workspace`.
106
+ - Each backend's startup record (private token, launch id, port) is saved in
107
+ the state folder *before* the process is started. A later `open` reuses
108
+ that same attempt once it authenticates (also after a slow start), and
109
+ otherwise refuses. Unreadable/invalid records remain untouched; an
110
+ unreachable process is not assumed stopped. The unreleased source's narrow
111
+ archival path requires trusted same-host previous-boot evidence for eligible
112
+ owner/backend records. It does not resolve foreign hosts or native intents.
113
+ Diagnose the exact host/boot, workspace, backend and native intent before
114
+ operator handover. Age or a missing local PID cannot establish that a process
115
+ on another NFS client has stopped; preserve uncertain records.
116
+
117
+ WorkBite keeps its own state (`%LOCALAPPDATA%\WorkBite` on Windows,
118
+ `~/.local/share/workbite` and `~/.local/state/workbite` on Linux; override
119
+ with absolute `WORKBITE_HOME` / `WORKBITE_STATE_DIR`) and never touches
120
+ separately installed Work Stack or StackBite apps, their state or ports. It
121
+ never approves provider trust or starts paid agents by itself.
122
+
123
+ Startup diagnostics include `workbite status [--json]`,
124
+ `workbite doctor [--json]` and `workbite recover --dry-run [--json]`. They inspect evidence and plan
125
+ only: no process starts/stops, record reset, native intent repair or migration.
126
+ `open --no-ui` does start/reuse the backend stack (including native selection for
127
+ v2) and prints JSON, but never launches or validates the foreground UI. Startup
128
+ stage messages distinguish that UI launch from backend readiness; the launcher
129
+ continues waiting while the UI runs. Full installed-file hashing still occurs
130
+ on reuse, so these changes do not promise faster opens.
131
+
132
+ For NFS shared homes, configure the existing absolute `WORKBITE_STATE_DIR`
133
+ override to a distinct host-local runtime directory per host after coordinating
134
+ any existing owners and active Seats. This does not move old state or permit
135
+ parallel writers to one shared workspace. `WORKBITE_HOME` separately overrides
136
+ the installation root (`app/` beneath it); changing it is not a universal tar
137
+ fix. See the source repository's
138
+ [startup troubleshooting guide](../../docs/STARTUP-TROUBLESHOOTING.md) for tcsh
139
+ `setenv` examples, failure diagnosis, bounded tar stderr and safe handover
140
+ requirements. Keep workspace locks and unknown native intents intact.
141
+
142
+ Coding agents read and record Tasks of a workspace whose owner `workbite open`
143
+ already runs; nothing is started for them:
144
+
145
+ ```sh
146
+ workbite agent status # bound workspace path + UUID
147
+ workbite agent --workspace ABS --workspace-uid UUID context --task T-0001
148
+ workbite agent --workspace ABS --workspace-uid UUID tasks create --intent-id ID --input-file FILE
149
+ workbite mcp --workspace ABS --workspace-uid UUID # MCP stdio server
150
+ ```
151
+
152
+ Writes (`tasks create`, `tasks update`, `checkpoint`) always need the explicit
153
+ `--workspace` + `--workspace-uid` pair. `workbite mcp` binds one workspace when
154
+ it starts. The `workbite-native` agent skill shipped in this package
155
+ (`skills/workbite-native/`) describes the commands, packets and recovery
156
+ rules.
157
+
158
+ In a Task-bound plain terminal, manually started CLIs can discover their
159
+ assigned Task through an already enabled WorkBite MCP server. The inherited
160
+ binding verifies workspace and Task identity, snapshot digest, Room, Seat and
161
+ the current live generation before exposing context. A changed or unverifiable
162
+ assignment refuses discovery. Standalone/unbound terminals retain the explicit
163
+ workspace/context path. WorkBite does not enable MCP or configure providers
164
+ automatically; source fixture checks do not prove an actual provider turn.
165
+
166
+ The 0.1.21 candidate also repairs initial Task Room capability discovery and
167
+ recovery notices after overlapping reads. Task Room inventory is filtered to
168
+ the requested Task's Rooms before runtime inventory is read. Selecting a Task
169
+ continues to create no Room, Seat or provider.
170
+
171
+ The 0.1.21 candidate retains **Connect agent** in Task Execution (`a`),
172
+ the global 9 Execution monitor and launch picker (`+`), clickable controls and
173
+ scoped command palettes (`:`). Claude Code, Codex, Cursor and Grok Build use
174
+ their official CLI login and credential storage. Missing CLIs offer install
175
+ guides; nothing installs automatically. Connecting preserves the Task/draft,
176
+ folder, instructions and watched Run/Seat, and never deploys or changes Task
177
+ status. Selection rechecks current authentication and launch readiness; an old
178
+ login receipt cannot establish current authentication.
179
+
180
+ Codex discovers model IDs and supported effort choices with a bounded cache;
181
+ CLI defaults remain selectable and unsupported saved choices stay visible.
182
+ An official Grok login success marker can show
183
+ `provider_login_completed_status_unverified`; it does not show a connected
184
+ badge or prove current CLI authentication. Generic exit zero and refresh alone
185
+ do not prove login. No authoritative local Grok auth-status probe is qualified;
186
+ launch-ready CLI settings can be selected explicitly with that label.
187
+ Automated login process ownership is qualified on Windows only;
188
+ POSIX automated connection remains refused pending cleanup qualification.
189
+ Source checks used disposable fixtures, with no live account login, browser
190
+ completion, account-entitlement proof or paid provider turn acceptance. See the
191
+ [source acceptance record](../../docs/WORKBITE-AGENT-CONNECTION-ACCEPTANCE-2026-10-16.md).
192
+
193
+ The Windows 0.1.21 candidate retains the read-only phone companion pilot from 0.1.14.
194
+ Linux Phone support remains unsupported; paired releases do not imply identical
195
+ platform capabilities.
196
+ Phone actions preserve their selected target during status reads, show pending
197
+ work and reuse the managed Windows helper within actions. Pairing links retain
198
+ their complete URL. New hosts supply a compact pairing URL and an inline TUI
199
+ QR with an enlarged view; this path creates no PNG and opens no external
200
+ viewer automatically. Small terminals show size guidance instead of a partial
201
+ QR. Link opening and supported image actions remain explicit choices; older
202
+ hosts retain their compatibility path. QR opening has an explicit Edge
203
+ alternative. A successful system handoff does not establish that a browser
204
+ or viewer rendered the target. Open Settings
205
+ with `,`, select Phone, enable it, then pair using the expiring QR and compare
206
+ the complete fingerprint before approving on the PC. Remembered browsers can
207
+ reconnect; devices can be revoked. Initial PC enrollment requires an operator
208
+ invitation through the supported embedding/bootstrap surface; this release
209
+ does not include a public invitation-entry UI. The hosted relay needs no user
210
+ domain or Cloudflare client. CurrentUser DPAPI on local NTFS is required.
211
+ The retained read-only Phone pilot does not support Task writes, deployment,
212
+ terminal input, replies, notifications or background connectivity. The PC must remain online.
213
+
214
+ This package is `UNLICENSED` (all rights reserved). Third-party licenses ship
215
+ in each bundle's `licenses/` folder.
216
+
217
+ The candidate retains the 0.1.16 Phone control-file sharing fix and existing
218
+ protected-store and OS lease checks. Hosted mobile assets must accept both
219
+ old object offers and compact tuples before the new PC emitter is installed.
220
+ Source tests and rendered fixtures do not qualify physical phone cameras,
221
+ actual terminal fonts, LTE or background behavior.
package/bin/workbite.js CHANGED
@@ -1,13 +1,13 @@
1
- #!/usr/bin/env node
2
- 'use strict';
3
- const { main } = require('../lib/cli');
4
- main().then(({ code, signal }) => {
5
- if (signal && process.platform !== 'win32') {
6
- process.kill(process.pid, signal);
7
- } else {
8
- process.exitCode = code === null ? 1 : code;
9
- }
10
- }).catch(error => {
11
- console.error(`WorkBite: ${error.message}`);
12
- process.exitCode = 1;
13
- });
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+ const { main } = require('../lib/cli');
4
+ main().then(({ code, signal }) => {
5
+ if (signal && process.platform !== 'win32') {
6
+ process.kill(process.pid, signal);
7
+ } else {
8
+ process.exitCode = code === null ? 1 : code;
9
+ }
10
+ }).catch(error => {
11
+ console.error(`WorkBite: ${error.message}`);
12
+ process.exitCode = 1;
13
+ });