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