@phenx-inc/ctlsurf 0.14.1 → 0.15.0
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 +36 -0
- package/THIRD-PARTY-NOTICES.md +82 -0
- package/out/headless/index.mjs +13 -3
- package/out/headless/index.mjs.map +2 -2
- package/out/main/index.js +27 -0
- package/out/preload/index.js +5 -0
- package/out/renderer/assets/{cssMode-bQYoCKra.js → cssMode-CJR4iD-G.js} +3 -3
- package/out/renderer/assets/{freemarker2-BS1ERQl_.js → freemarker2-BRI9ISq9.js} +1 -1
- package/out/renderer/assets/{handlebars-B-ZEHRLr.js → handlebars-3hL6XIZI.js} +1 -1
- package/out/renderer/assets/{html-lk9e1Lkl.js → html-Dd5_vBoP.js} +1 -1
- package/out/renderer/assets/{htmlMode-Ds1eMYgM.js → htmlMode-DgNtlKcG.js} +3 -3
- package/out/renderer/assets/{index-BpCORklm.css → index-3sFJEz7i.css} +787 -399
- package/out/renderer/assets/{index-BJNR4hRK.js → index-5azC4yNn.js} +421 -99
- package/out/renderer/assets/{javascript-D6OeziKX.js → javascript-D0vPLEJg.js} +2 -2
- package/out/renderer/assets/{jsonMode-t5SESE75.js → jsonMode-DBvR0zMu.js} +3 -3
- package/out/renderer/assets/{liquid-B5Wjh0p_.js → liquid-CLoc6Tx7.js} +1 -1
- package/out/renderer/assets/{lspLanguageFeatures-BEgiDCIW.js → lspLanguageFeatures-CiaMaQoY.js} +1 -1
- package/out/renderer/assets/{mdx-ByNAXh8t.js → mdx-DTsq6tlv.js} +1 -1
- package/out/renderer/assets/{python-CIFO0XQW.js → python-D04DpZDr.js} +1 -1
- package/out/renderer/assets/{razor-LXHhGcNO.js → razor-Di6CJ6s8.js} +1 -1
- package/out/renderer/assets/{tsMode-WiO8CDaI.js → tsMode-mfv6mHOv.js} +1 -1
- package/out/renderer/assets/{typescript-ZBQlq256.js → typescript-CDA0Hhef.js} +1 -1
- package/out/renderer/assets/{xml-DBaLJlQU.js → xml-BU0voRuq.js} +1 -1
- package/out/renderer/assets/{yaml-CId9skah.js → yaml-qzFWnaZJ.js} +1 -1
- package/out/renderer/index.html +60 -3
- package/package.json +13 -3
- package/src/main/index.ts +52 -1
- package/src/main/orchestrator.ts +8 -0
- package/src/preload/index.ts +10 -0
- package/src/renderer/App.tsx +2 -0
- package/src/renderer/components/CtlsurfPanel.tsx +1 -1
- package/src/renderer/components/EditorPanel.tsx +29 -1
- package/src/renderer/components/ObserverPanel.tsx +13 -6
- package/src/renderer/components/SettingsDialog.tsx +82 -0
- package/src/renderer/components/TerminalPanel.tsx +12 -22
- package/src/renderer/components/TicketPanel.tsx +17 -10
- package/src/renderer/index.html +58 -1
- package/src/renderer/lib/theme.ts +173 -0
- package/src/renderer/lib/themes.ts +126 -0
- package/src/renderer/styles.css +787 -399
package/README.md
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# ctlsurf worker
|
|
2
|
+
|
|
3
|
+
The terminal that remembers. Run Claude Code, Codex, or any coding agent inside it, and everything about the session lands in your [ctlsurf](https://ctlsurf.com) project automatically: live transcript, time attribution, tickets, and an observer digest. The agent does not have to cooperate, or even know.
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
npx @phenx-inc/ctlsurf
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Works as a desktop app (macOS, Windows) or fully headless on a server.
|
|
10
|
+
|
|
11
|
+
## What you get
|
|
12
|
+
|
|
13
|
+
- **A normal terminal.** Your agent runs in a managed PTY that behaves like the terminal you already use. Agent-agnostic by design: Claude Code today, Codex tomorrow, whatever ships next.
|
|
14
|
+
- **Watch and drive it from anywhere.** The session streams live to your project at [app.ctlsurf.com](https://app.ctlsurf.com); open a browser on another machine to watch the agent work, and type back into the session remotely.
|
|
15
|
+
- **Automatic time tracking.** Each session becomes rows in the project's time-tracking datastore. The billing report reads straight from it.
|
|
16
|
+
- **Tickets from the terminal.** File a ticket without leaving the session; it lands on a cross-project board.
|
|
17
|
+
- **The Observer.** A supervision layer that tails the agent's transcript and the terminal's activity into an append-only local ledger, producing findings and time spans, with a session-end digest written to your project. Advisory only: every code path is wrapped so observation can never block or slow the working agent.
|
|
18
|
+
|
|
19
|
+
## Why outside-in recording
|
|
20
|
+
|
|
21
|
+
ctlsurf's task completions make agents document their own work, with structure enforced by the API. The worker is the second witness: an independent record of what actually happened in the terminal, when, and for how long. When the two records agree, you have provenance you can defend to a client weeks later. When they disagree, you have found something worth looking at.
|
|
22
|
+
|
|
23
|
+
The 42-second story: [youtu.be/Ey0Wc3HW_ww](https://youtu.be/Ey0Wc3HW_ww)
|
|
24
|
+
|
|
25
|
+
## Quick start
|
|
26
|
+
|
|
27
|
+
1. Create a free account at [app.ctlsurf.com](https://app.ctlsurf.com)
|
|
28
|
+
2. `npx @phenx-inc/ctlsurf` in your project directory
|
|
29
|
+
3. Pair with your account when prompted (one-time device code)
|
|
30
|
+
4. Run your agent as usual; open your project in the browser to see the live session
|
|
31
|
+
|
|
32
|
+
Docs: [ctlsurf.com/docs](https://ctlsurf.com/docs) · Free tier includes 1 connected worker; Pro includes 3.
|
|
33
|
+
|
|
34
|
+
## Requirements
|
|
35
|
+
|
|
36
|
+
Node.js 18+. A ctlsurf account (free tier works).
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Third-party notices
|
|
2
|
+
|
|
3
|
+
ctlsurf is proprietary software (see `LICENSE`). This file records third-party
|
|
4
|
+
material it incorporates, and the terms that material is offered under.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Colour schemes
|
|
9
|
+
|
|
10
|
+
ctlsurf ships several selectable colour schemes. For each, the palette values
|
|
11
|
+
were transcribed from the upstream project's **published palette specification**
|
|
12
|
+
and re-expressed as CSS custom properties in `src/renderer/styles.css` and as
|
|
13
|
+
terminal/editor palettes in `src/renderer/lib/themes.ts`.
|
|
14
|
+
|
|
15
|
+
No source code from any of these projects is included, copied, or derived from.
|
|
16
|
+
Scheme names are used descriptively, to identify which published palette a
|
|
17
|
+
theme reproduces. None of these projects endorses or is affiliated with ctlsurf.
|
|
18
|
+
|
|
19
|
+
### Tokyo Night
|
|
20
|
+
|
|
21
|
+
- Upstream: <https://github.com/enkia/tokyo-night-vscode-theme> (MIT),
|
|
22
|
+
<https://github.com/folke/tokyonight.nvim> (Apache-2.0)
|
|
23
|
+
- Used by the `tokyo-night` and `tokyo-day` themes.
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
MIT License
|
|
27
|
+
|
|
28
|
+
Copyright (c) 2019 enkia
|
|
29
|
+
|
|
30
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
31
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
32
|
+
in the Software without restriction, including without limitation the rights
|
|
33
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
34
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
35
|
+
furnished to do so, subject to the following conditions:
|
|
36
|
+
|
|
37
|
+
The above copyright notice and this permission notice shall be included in all
|
|
38
|
+
copies or substantial portions of the Software.
|
|
39
|
+
|
|
40
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
41
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
42
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
43
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
44
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
45
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
46
|
+
SOFTWARE.
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Catppuccin
|
|
50
|
+
|
|
51
|
+
- Upstream: <https://github.com/catppuccin/catppuccin> (MIT)
|
|
52
|
+
- Used by the `catppuccin-mocha` and `catppuccin-latte` themes.
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
MIT License
|
|
56
|
+
|
|
57
|
+
Copyright (c) 2021 Catppuccin
|
|
58
|
+
|
|
59
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
60
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
61
|
+
in the Software without restriction, including without limitation the rights
|
|
62
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
63
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
64
|
+
furnished to do so, subject to the following conditions:
|
|
65
|
+
|
|
66
|
+
The above copyright notice and this permission notice shall be included in all
|
|
67
|
+
copies or substantial portions of the Software.
|
|
68
|
+
|
|
69
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
70
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
71
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
72
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
73
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
74
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
75
|
+
SOFTWARE.
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
*The licence texts above reflect the upstream projects' stated terms as of
|
|
81
|
+
2026-07-25. Copyright holders and years are reproduced as published upstream;
|
|
82
|
+
re-verify before a release if the upstream terms have changed.*
|
package/out/headless/index.mjs
CHANGED
|
@@ -17314,7 +17314,7 @@ var require_package = __commonJS({
|
|
|
17314
17314
|
"package.json"(exports, module) {
|
|
17315
17315
|
module.exports = {
|
|
17316
17316
|
name: "@phenx-inc/ctlsurf",
|
|
17317
|
-
version: "0.
|
|
17317
|
+
version: "0.15.0",
|
|
17318
17318
|
description: "Agent-agnostic terminal and desktop app for ctlsurf \u2014 run Claude Code, Codex, or any coding agent with live session logging and remote control",
|
|
17319
17319
|
main: "out/main/index.js",
|
|
17320
17320
|
bin: {
|
|
@@ -17329,7 +17329,8 @@ var require_package = __commonJS({
|
|
|
17329
17329
|
"src/",
|
|
17330
17330
|
"package.json",
|
|
17331
17331
|
"electron-vite.config.ts",
|
|
17332
|
-
"tsconfig*.json"
|
|
17332
|
+
"tsconfig*.json",
|
|
17333
|
+
"THIRD-PARTY-NOTICES.md"
|
|
17333
17334
|
],
|
|
17334
17335
|
scripts: {
|
|
17335
17336
|
dev: "electron-vite dev",
|
|
@@ -17350,7 +17351,12 @@ var require_package = __commonJS({
|
|
|
17350
17351
|
"codex",
|
|
17351
17352
|
"electron",
|
|
17352
17353
|
"node-pty",
|
|
17353
|
-
"xterm"
|
|
17354
|
+
"xterm",
|
|
17355
|
+
"ai-agent",
|
|
17356
|
+
"mcp",
|
|
17357
|
+
"agent-observability",
|
|
17358
|
+
"provenance",
|
|
17359
|
+
"time-tracking"
|
|
17354
17360
|
],
|
|
17355
17361
|
license: "SEE LICENSE IN LICENSE",
|
|
17356
17362
|
engines: {
|
|
@@ -17388,6 +17394,10 @@ var require_package = __commonJS({
|
|
|
17388
17394
|
optionalDependencies: {
|
|
17389
17395
|
bufferutil: "^4.1.0",
|
|
17390
17396
|
"utf-8-validate": "^6.0.6"
|
|
17397
|
+
},
|
|
17398
|
+
homepage: "https://ctlsurf.com",
|
|
17399
|
+
bugs: {
|
|
17400
|
+
email: "phenx@phenx.io"
|
|
17391
17401
|
}
|
|
17392
17402
|
};
|
|
17393
17403
|
}
|