agent-office-studio 0.7.0 → 0.9.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/CHANGELOG.md +61 -1
- package/README.md +13 -1
- package/bin/agentoffice.js +6 -1
- package/dist/assets/code-Dtdckl8K.js +32 -0
- package/dist/assets/index-DxWppRAd.css +1 -0
- package/dist/assets/index-Y1a-xw5C.js +5040 -0
- package/dist/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
- package/dist/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
- package/dist/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
- package/dist/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
- package/dist/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
- package/dist/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
- package/dist/assets/{jetbrains-mono-cyrillic-400-normal-CIEtRijs.woff → jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff} +0 -0
- package/dist/assets/{jetbrains-mono-greek-400-normal-CNojz0t3.woff → jetbrains-mono-greek-400-normal-B9oWc5Lo.woff} +0 -0
- package/dist/assets/{jetbrains-mono-latin-400-normal-B11XCQ5g.woff → jetbrains-mono-latin-400-normal-6-qcROiO.woff} +0 -0
- package/dist/assets/{jetbrains-mono-latin-ext-400-normal-DHMOLxAi.woff → jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff} +0 -0
- package/dist/assets/{jetbrains-mono-vietnamese-400-normal-BeU3T8wf.woff → jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff} +0 -0
- package/dist/assets/pdf-BtCWNl9F.js +55 -0
- package/dist/assets/pdf-a7kwa8Fi.js +1 -0
- package/dist/assets/pdf.worker.min-BJd0dv5W.js +53 -0
- package/dist/assets/pdf.worker.min-D_0FwaWY.js +1 -0
- package/dist/index.html +32 -26
- package/dist/theme-boot.js +13 -0
- package/docs/desktop.md +52 -0
- package/docs/phone.md +51 -3
- package/docs/security.md +8 -3
- package/package.json +20 -2
- package/server/changes.js +13 -2
- package/server/chief.js +17 -0
- package/server/cloudflared.js +84 -0
- package/server/economy.js +478 -0
- package/server/files.js +104 -0
- package/server/guests.js +59 -21
- package/server/index.js +743 -59
- package/server/journeys.js +101 -0
- package/server/links.js +11 -4
- package/server/machine.js +164 -0
- package/server/office-mcp.js +29 -0
- package/server/phone.js +70 -0
- package/server/procstat.js +12 -6
- package/server/settings.js +5 -0
- package/server/talk.js +51 -0
- package/server/tunnel.js +136 -0
- package/server/visits.js +14 -4
- package/shared/shop.js +134 -0
- package/dist/assets/index-BtHSEs3B.js +0 -4475
- package/dist/assets/index-DVuFVmWF.css +0 -1
- package/dist/assets/inter-cyrillic-ext-wght-normal-B2xhLi22.woff2 +0 -0
- package/dist/assets/inter-cyrillic-wght-normal-CMZtQduZ.woff2 +0 -0
- package/dist/assets/inter-greek-ext-wght-normal-CGAr0uHJ.woff2 +0 -0
- package/dist/assets/inter-greek-wght-normal-CaVNZxsx.woff2 +0 -0
- package/dist/assets/inter-latin-ext-wght-normal-CFHvXkgd.woff2 +0 -0
- package/dist/assets/inter-latin-wght-normal-C2S99t-D.woff2 +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -4,7 +4,67 @@ Notable changes to Agent Office. The format follows
|
|
|
4
4
|
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and versions follow
|
|
5
5
|
[Semantic Versioning](https://semver.org/).
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## 0.9.1 — 2026-10-15
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
- **Windows.** On a wide screen Chat, Jobs, Projects and Team each get their own window: drag the title bar, pull any edge or corner to resize, close with the x, click to bring one forward. Where each sits is remembered. On a phone they go back into the sidebar. In Dock mode the job card can be dragged by its top and resized from any edge; double-click puts it back.
|
|
11
|
+
- **Build mode.** Pick up a desk, the communal table, the pool table or anything the office has bought, slide it about on a snapped grid with a green or red patch under it, and put it down. The arrangement is saved per layout.
|
|
12
|
+
- **PDFs open in the file viewer** (pdf.js), loaded on the first PDF opened. The server serves a file as a PDF only if it really is one.
|
|
13
|
+
- **Lend only some of your agents.** A link can name which of your agents a guest may use; their jobs run on those alone.
|
|
14
|
+
- Setting to turn break-room chatter and pool off; off posts nothing to #chill-room.
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
- Every office layout is free to switch to.
|
|
18
|
+
- Answering a job (in its thread, by reply or through Chief) clears what it was waiting on you for, and the Needs you pane can dismiss one ask or all of them.
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
- The test scripts that copy the app into a temp folder now skip `desktop/`; its 4.5 GB Tauri build folder was filling the disk mid-suite.
|
|
22
|
+
|
|
23
|
+
## 0.9.0 — 2026-10-15
|
|
24
|
+
|
|
25
|
+
### Added
|
|
26
|
+
- **Edit files in the office.** Each project has an Edit files button that opens its folders and text files; Cmd/Ctrl+S saves, and a save is refused if the file changed on disk meanwhile. The editor is CodeMirror, with syntax highlighting by file type, line numbers, folding, bracket matching, find (Cmd/Ctrl+F) and undo, coloured from the office theme, and it loads only when opened.
|
|
27
|
+
- A job's "What changed" list has an Edit button on each changed file. Jobs also remember the files their agent wrote to, and where git can't say what changed they show them as "Files edited", each with an Edit button.
|
|
28
|
+
- **A desktop app** (Tauri) with a designed DMG installer. The dmg is ad-hoc signed as a whole bundle so a downloaded copy isn't reported damaged; the README covers the Gatekeeper workaround.
|
|
29
|
+
- Chief can hand out several jobs from one message, at most one per person.
|
|
30
|
+
- Quality badges: Straight through, Second wind, Team player, Second pair of eyes and Quick study.
|
|
31
|
+
|
|
32
|
+
### Security
|
|
33
|
+
- Two hardening passes over guests, links and the office page. The key cookie holds a MAC of the key, and the office page sends a CSP that limits images and forms. Leaderboard rate limits use the IPv6 /64.
|
|
34
|
+
- Guests: a guest's cache tokens are counted call by call (reads at a tenth), their replies and open jobs are held to the host's current limits, an unlinked guest's open jobs are stopped, and `guests.json` is written private to the account.
|
|
35
|
+
- Link handles and project names match exactly (case aside), and prototype names are refused as link ids.
|
|
36
|
+
- Snapshotting never runs a project's clean or smudge filters. Away jobs are limited to roster, flag and clear_context. Below Full autonomy, `attach_files` takes only files in the job's project. Job tokens stay out of the projects folder.
|
|
37
|
+
- Desktop: the office is proved before its key is sent, IPC is scoped to its port, and `tauri.localhost` is allowed only on Windows on its default port.
|
|
38
|
+
|
|
39
|
+
### Fixed
|
|
40
|
+
- A process-group kill happens only when the group's leader is the process we saw.
|
|
41
|
+
- A bet on a job handed over by one of its parties is voided.
|
|
42
|
+
- Visits drop copies with nothing to review and cap copies per guest.
|
|
43
|
+
- The installed-package check in CI looked for a page title the app dropped on Oct 12, which kept CI red on master.
|
|
44
|
+
|
|
45
|
+
## 0.8.1 — 2026-10-13
|
|
46
|
+
|
|
47
|
+
### Added
|
|
48
|
+
- Agents no longer leave processes running. Whatever a job started and left behind (dev servers, watchers, background test runs, test copies of a server) is stopped when the job ends. An agent can keep one with the new `keep_running` tool, and you are told what was kept and how to stop it.
|
|
49
|
+
- Heavy builds and full test suites take turns. Agents call the new `heavy_work` tool before a Gradle, Xcode or emulator run, a whole-app jest or vitest run, or a docker build. While one is running, the next waits for its turn and you get a **Delayed** notice in #general.
|
|
50
|
+
- New jobs wait while the machine is struggling: when the number of working agents reaches **Agents working at once** in Settings (default 4, `OFFICE_MAX_AGENTS`), or, once 3 or more agents are working, when the machine is swapping memory hard or the processor is badly overloaded. Up to 3 agents always start, whatever else the laptop is doing. You get an **On hold** notice in #general and a desktop notification saying why, and the job starts by itself when that changes.
|
|
51
|
+
|
|
52
|
+
### Changed
|
|
53
|
+
- Agents are told to run jest with `--maxWorkers=2`.
|
|
54
|
+
|
|
55
|
+
## 0.8.0 — 2026-10-13
|
|
56
|
+
|
|
57
|
+
### Added
|
|
58
|
+
- Switch a job's model from its card. The Model row in the job's details is now a picker; a running job finishes its turn, then resumes the same session on the new model. A job the chief sized stops climbing on its own once you choose. Jobs on someone else's account stay as they are.
|
|
59
|
+
- Agents can show you files. A new `attach_files` office tool stages images or files (screenshots, say), up to 6 of 25 MB each, and they ride on the agent's next message to you: its final reply, a flag or a channel post.
|
|
60
|
+
- A "needs you" strip above the message box lists each job still waiting on you, with a link that scrolls to the message.
|
|
61
|
+
- Open the office on a phone from anywhere. The phone button in the side panel is always there: **Make a public address** starts a Cloudflare quick tunnel and shows a QR code for it once the address works from outside. Nothing to install: `cloudflared` is used from the PATH, or a pinned, checksum-verified release is downloaded once. Off until you press it, closed when you press it again or the office stops, and the key stays the only way in. See [On your phone](docs/phone.md).
|
|
62
|
+
- Open the office on a phone by scanning a QR code. `agentoffice --phone` (or `OFFICE_LAN=1`) also listens on your local network, prints a QR code with the link at start, and shows the same code under the new phone button in the side panel. Off unless you ask: by default the office still listens on `127.0.0.1` only. It is plain `http` with the key in the link, so home Wi-Fi only; see [On your phone](docs/phone.md).
|
|
63
|
+
|
|
64
|
+
### Changed
|
|
65
|
+
- A job's details fold away behind a **Details** row that summarises model, cost and time, and remembers whether you left it open.
|
|
66
|
+
- On a phone the 3D view renders lighter (no ambient-occlusion pass, a small shadow map, no antialiasing, a lower pixel ratio). Add `?lite=0` or `?lite=1` to the address to override the guess.
|
|
67
|
+
- The side panel's usage meters sit in a two-column grid, and its popovers no longer overflow narrow screens.
|
|
8
68
|
|
|
9
69
|
## 0.7.0 — 2026-10-12
|
|
10
70
|
|
package/README.md
CHANGED
|
@@ -23,6 +23,17 @@ npm install
|
|
|
23
23
|
npm start # builds, then serves on http://localhost:4317
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
+
Prefer an app window to a browser tab? There's a [desktop app](docs/desktop.md)
|
|
27
|
+
(Tauri, macOS): it starts the office for you on a free local port and opens it
|
|
28
|
+
in its own window. Build it from source with `cd desktop && npm install && npm run build`.
|
|
29
|
+
|
|
30
|
+
**Opening a downloaded dmg.** The app isn't notarized by Apple yet, so macOS
|
|
31
|
+
blocks it the first time. If you see "Agent Office is damaged" or "can't be
|
|
32
|
+
opened", it isn't damaged: run `xattr -cr "/Applications/Agent Office.app"` in
|
|
33
|
+
Terminal, then open it. Or right-click the app, choose Open, and confirm (on
|
|
34
|
+
macOS 15+: System Settings, Privacy & Security, Open Anyway). Details in
|
|
35
|
+
[Desktop app](docs/desktop.md#opening-a-downloaded-build).
|
|
36
|
+
|
|
26
37
|
You need Node.js 20+, git, and [Claude Code](https://docs.anthropic.com/en/docs/claude-code)
|
|
27
38
|
signed in on this machine (or an Anthropic API key). Your projects are the
|
|
28
39
|
folders next to this one (or, with `agentoffice`, in the folder you run it from) — see [Getting started](docs/getting-started.md).
|
|
@@ -59,7 +70,7 @@ folders next to this one (or, with `agentoffice`, in the folder you run it from)
|
|
|
59
70
|
was doing.
|
|
60
71
|
- **Talk to it.** Dictate with whisper.cpp and hear replies in a different
|
|
61
72
|
voice per agent — all on this machine.
|
|
62
|
-
- **Yours, on your machine.** It listens on localhost only. Use it on your
|
|
73
|
+
- **Yours, on your machine.** It listens on localhost only (unless you start it with `--phone` to scan a QR code from your phone). Use it on your
|
|
63
74
|
Claude plan or with an API key.
|
|
64
75
|
|
|
65
76
|
## Guides
|
|
@@ -82,6 +93,7 @@ folders next to this one (or, with `agentoffice`, in the folder you run it from)
|
|
|
82
93
|
| [Configuration](docs/configuration.md) | every setting |
|
|
83
94
|
| [Talking out loud](docs/voice.md) | speech in and voices out |
|
|
84
95
|
| [On your phone](docs/phone.md) | install it like an app |
|
|
96
|
+
| [Desktop app](docs/desktop.md) | the Tauri shell: how it starts the office, building it |
|
|
85
97
|
| [How the office works](docs/how-it-works.md) | jobs, office tools, where things are kept |
|
|
86
98
|
| [Security](docs/security.md) | who can reach it and what jobs may do |
|
|
87
99
|
| [Development](docs/development.md) | dev server, shipping, testing safely |
|
package/bin/agentoffice.js
CHANGED
|
@@ -61,21 +61,26 @@ if (arg === '--link') {
|
|
|
61
61
|
if (arg === '--help' || arg === '-h') {
|
|
62
62
|
console.log(`agentoffice ${pkg.version}
|
|
63
63
|
|
|
64
|
-
Usage: agentoffice [--port <n>] (or agentstudio)
|
|
64
|
+
Usage: agentoffice [--port <n>] [--phone] (or agentstudio)
|
|
65
65
|
agentoffice --link print the running office's link, with its key
|
|
66
66
|
|
|
67
67
|
Starts the office on a free port: ${DEFAULT_PORT} if it is open, otherwise any
|
|
68
68
|
free one. Choose your own with --port or PORT; that one is used as given.
|
|
69
|
+
--phone also listens on your local network and prints a QR code that opens the
|
|
70
|
+
office on a phone on the same Wi-Fi (plain http: trusted networks only).
|
|
69
71
|
Needs Claude Code (\`claude\`) installed and signed in.
|
|
70
72
|
|
|
71
73
|
OFFICE_ROOT folder whose subfolders are your projects (default: this folder)
|
|
72
74
|
OFFICE_DATA where the office keeps its state (default: ~/.agent-office)
|
|
73
75
|
PORT port to listen on (default: ${DEFAULT_PORT}, or any free port)
|
|
76
|
+
OFFICE_LAN 1 does what --phone does
|
|
74
77
|
|
|
75
78
|
Docs: ${pkg.homepage}`);
|
|
76
79
|
process.exit(0);
|
|
77
80
|
}
|
|
78
81
|
|
|
82
|
+
if (args.includes('--phone')) process.env.OFFICE_LAN = '1';
|
|
83
|
+
|
|
79
84
|
const chosen = portFlag() ?? process.env.PORT;
|
|
80
85
|
if (chosen !== undefined && chosen !== '') {
|
|
81
86
|
const n = Number(chosen);
|