@easonwumac/computer-linker 0.1.2
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 +230 -0
- package/LICENSE +21 -0
- package/README.md +539 -0
- package/SECURITY.md +48 -0
- package/dist/api.d.ts +2 -0
- package/dist/api.js +360 -0
- package/dist/audit.d.ts +70 -0
- package/dist/audit.js +102 -0
- package/dist/capabilities.d.ts +98 -0
- package/dist/capabilities.js +718 -0
- package/dist/capability-policy.d.ts +22 -0
- package/dist/capability-policy.js +103 -0
- package/dist/chatgpt.d.ts +167 -0
- package/dist/chatgpt.js +561 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +4621 -0
- package/dist/client-smoke.d.ts +44 -0
- package/dist/client-smoke.js +639 -0
- package/dist/client.d.ts +217 -0
- package/dist/client.js +357 -0
- package/dist/codex-runs.d.ts +35 -0
- package/dist/codex-runs.js +66 -0
- package/dist/computer-contract.d.ts +33 -0
- package/dist/computer-contract.js +384 -0
- package/dist/computer-operation-registry.d.ts +45 -0
- package/dist/computer-operation-registry.js +179 -0
- package/dist/config-diagnostics.d.ts +11 -0
- package/dist/config-diagnostics.js +185 -0
- package/dist/config.d.ts +10 -0
- package/dist/config.js +69 -0
- package/dist/history-insights.d.ts +132 -0
- package/dist/history-insights.js +457 -0
- package/dist/http-auth.d.ts +3 -0
- package/dist/http-auth.js +15 -0
- package/dist/mcp-surface.d.ts +5 -0
- package/dist/mcp-surface.js +25 -0
- package/dist/oauth-provider.d.ts +52 -0
- package/dist/oauth-provider.js +325 -0
- package/dist/package-metadata.d.ts +7 -0
- package/dist/package-metadata.js +24 -0
- package/dist/permissions.d.ts +43 -0
- package/dist/permissions.js +150 -0
- package/dist/platform-shell.d.ts +28 -0
- package/dist/platform-shell.js +124 -0
- package/dist/processes.d.ts +50 -0
- package/dist/processes.js +178 -0
- package/dist/profile.d.ts +159 -0
- package/dist/profile.js +416 -0
- package/dist/screenshot.d.ts +47 -0
- package/dist/screenshot.js +302 -0
- package/dist/search.d.ts +34 -0
- package/dist/search.js +340 -0
- package/dist/security.d.ts +10 -0
- package/dist/security.js +108 -0
- package/dist/sensitive-files.d.ts +4 -0
- package/dist/sensitive-files.js +96 -0
- package/dist/server.d.ts +9 -0
- package/dist/server.js +713 -0
- package/dist/service.d.ts +125 -0
- package/dist/service.js +486 -0
- package/dist/sessions.d.ts +26 -0
- package/dist/sessions.js +34 -0
- package/dist/tunnels.d.ts +161 -0
- package/dist/tunnels.js +1243 -0
- package/dist/workspace-operations.d.ts +170 -0
- package/dist/workspace-operations.js +3219 -0
- package/dist/workspaces.d.ts +61 -0
- package/dist/workspaces.js +353 -0
- package/docs/agent-instructions.md +65 -0
- package/docs/alpha-evidence.example.json +54 -0
- package/docs/api-compatibility.md +56 -0
- package/docs/architecture.md +561 -0
- package/docs/chatgpt-setup.md +397 -0
- package/docs/client-recipes.md +98 -0
- package/docs/client-sdk.md +163 -0
- package/docs/computer-operation-v1.schema.json +143 -0
- package/docs/manual-test-plan.md +322 -0
- package/docs/product-spec.md +911 -0
- package/docs/release-checklist.md +285 -0
- package/docs/service-mode.md +99 -0
- package/examples/minimal-mcp-client.mjs +114 -0
- package/package.json +87 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to Computer Linker will be documented in this file.
|
|
4
|
+
|
|
5
|
+
This project follows a small pre-1.0 changelog: breaking contract changes are
|
|
6
|
+
called out even when the package version is still `0.x`.
|
|
7
|
+
|
|
8
|
+
## 0.1.2 - 2026-06-27
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- Local npm release wrapper commands: `release:check`, `release:dry-run`, and
|
|
13
|
+
`release:publish`.
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- Simplified the default setup path so `start <folder>`, `setup <folder>`, and
|
|
18
|
+
`quickstart <folder>` use normal coding access without requiring `--dev` or
|
|
19
|
+
`--coding`.
|
|
20
|
+
|
|
21
|
+
## 0.1.1 - 2026-06-27
|
|
22
|
+
|
|
23
|
+
### Changed
|
|
24
|
+
|
|
25
|
+
- Prepared the renamed Computer Linker package for npm publication under
|
|
26
|
+
`@easonwumac/computer-linker`.
|
|
27
|
+
- Aligned release metadata with the GitHub repository rename to
|
|
28
|
+
`easonwumac/computer-linker`.
|
|
29
|
+
|
|
30
|
+
## 0.1.0 - 2026-06-26
|
|
31
|
+
|
|
32
|
+
### Added
|
|
33
|
+
|
|
34
|
+
- Local MCP server and JSON API for permissioned workspace operations.
|
|
35
|
+
- `get_computer_info`, `computer_operation`, and `get_operation_history`
|
|
36
|
+
product-level contracts.
|
|
37
|
+
- One-minute README onboarding now leads with the installed CLI,
|
|
38
|
+
`computer-linker start <folder> --coding`, and `client setup` instead of
|
|
39
|
+
source-checkout development commands.
|
|
40
|
+
- Added MCP client recipes for local clients, OpenAI Secure MCP Tunnel,
|
|
41
|
+
Tailscale Funnel, Cloudflare, and the minimal SDK client.
|
|
42
|
+
- File content reads and text searches now block common sensitive files by
|
|
43
|
+
default, including `.env*`, private keys, credential JSON files, and cloud CLI
|
|
44
|
+
credential folders.
|
|
45
|
+
- Service mode now supports daily `service install --yes`, `start`, `stop`,
|
|
46
|
+
`logs`, and `uninstall --yes` flows while preserving `--dry-run` previews.
|
|
47
|
+
- `computer_operation` v1 request/result JSON Schema in
|
|
48
|
+
`docs/computer-operation-v1.schema.json`.
|
|
49
|
+
- Doctor, ChatGPT setup, tunnel diagnostics, service profile, and package
|
|
50
|
+
smoke workflows.
|
|
51
|
+
- Command policy support for shell, package, process, and Codex operations.
|
|
52
|
+
- Windows primary-display screenshot capture through a PowerShell provider,
|
|
53
|
+
with automated fake-provider coverage that does not read real screen pixels.
|
|
54
|
+
- `computer-linker config validate` and `computer-linker config policy`
|
|
55
|
+
commands for release readiness and policy maintenance.
|
|
56
|
+
- Cost-capped manual CI product gate on Windows with Node 22.
|
|
57
|
+
- Release metadata validation for version, lockfile, changelog, security
|
|
58
|
+
policy, schema, and workflow drift.
|
|
59
|
+
- Package smoke now installs the packed `.tgz` into a temporary consumer
|
|
60
|
+
project and verifies the installed CLI and SDK entrypoints.
|
|
61
|
+
- SDK `connectReadiness()` now aggregates generic MCP client setup, workspace,
|
|
62
|
+
and operation registry state instead of depending on ChatGPT setup.
|
|
63
|
+
- `client_setup` now separates local readiness from remote/tunnel readiness so
|
|
64
|
+
loopback clients are not marked blocked by cloud exposure requirements.
|
|
65
|
+
- `workspace add` now accepts a single folder path and derives the scope id and
|
|
66
|
+
display name from that folder, while keeping the legacy `<id> <path>` form.
|
|
67
|
+
- `computer-linker --version` and `computer-linker version` now report the
|
|
68
|
+
installed package version.
|
|
69
|
+
- MCP server metadata, `get_computer_info`, and capabilities now report the
|
|
70
|
+
installed package version from the same package metadata source.
|
|
71
|
+
- Package smoke now verifies that an installed tarball can create and read an
|
|
72
|
+
isolated Computer Linker config through `setup` and `status`.
|
|
73
|
+
- `computer-linker self-test` now performs an isolated installed CLI/server/MCP
|
|
74
|
+
smoke test using a temporary config and workspace.
|
|
75
|
+
- `computer-linker client setup` now prints generic MCP client connection,
|
|
76
|
+
auth, readiness, tool, and first-prompt guidance without using ChatGPT
|
|
77
|
+
profile formats.
|
|
78
|
+
- `computer-linker client setup` now keeps the default text output to a short
|
|
79
|
+
MCP connection summary and moves tool lists, first prompt, and full agent
|
|
80
|
+
instructions behind `--details`.
|
|
81
|
+
- `computer-linker client smoke` now runs generic MCP client HTTP/MCP
|
|
82
|
+
reachability checks without ChatGPT-specific output.
|
|
83
|
+
- `computer-linker diagnose client` now combines MCP client setup readiness,
|
|
84
|
+
a minimal MCP SDK smoke test, and redacted connection-history inspection into
|
|
85
|
+
one troubleshooting report.
|
|
86
|
+
- Setup, start, quickstart, and workspace management now accept `--read-only`,
|
|
87
|
+
`--coding`, and `--full-trust` permission presets while preserving `--dev`
|
|
88
|
+
as the coding-mode alias.
|
|
89
|
+
- Added a minimal MCP SDK client example at `examples/minimal-mcp-client.mjs`
|
|
90
|
+
for validating the default three-tool surface outside the CLI.
|
|
91
|
+
- Added API compatibility and reusable agent instruction docs for the stable
|
|
92
|
+
`get_computer_info`, `computer_operation`, and `get_operation_history`
|
|
93
|
+
product contract.
|
|
94
|
+
- SDK `smoke()` now runs generic local/trusted-private HTTP API and MCP
|
|
95
|
+
reachability checks and returns a `computer-linker-client-smoke` report.
|
|
96
|
+
- Local/trusted-private client smoke now verifies authenticated
|
|
97
|
+
`get_computer_info` and one read-only `computer_operation` `file.list`
|
|
98
|
+
instead of only checking reachability.
|
|
99
|
+
- Generic CLI and SDK smoke checks now share a client smoke core instead of
|
|
100
|
+
routing the generic CLI command through ChatGPT compatibility helpers.
|
|
101
|
+
- ChatGPT smoke checks now wrap the same generic client smoke core while
|
|
102
|
+
preserving ChatGPT-specific output shape and setup wording.
|
|
103
|
+
- Default MCP tool exposure is now limited to `get_computer_info`,
|
|
104
|
+
`computer_operation`, and `get_operation_history`; legacy workspace and
|
|
105
|
+
direct file tools require `COMPUTER_LINKER_MCP_TOOL_SURFACE=compatibility`.
|
|
106
|
+
- Generic `computer_operation` registry now includes product-level dotted ops
|
|
107
|
+
for code context/symbol search, Git, package scripts, managed processes, and
|
|
108
|
+
Codex stop/read/list flows instead of relying on legacy workspace op names.
|
|
109
|
+
- Public release audit for packed files, secret-shaped values, dependency
|
|
110
|
+
licenses, and production dependency advisories.
|
|
111
|
+
- Clean public snapshot workflow for publishing from a single-commit public
|
|
112
|
+
repository without rewriting private dogfooding history.
|
|
113
|
+
- Public snapshots omit the private source commit reference by default, with an
|
|
114
|
+
explicit `--include-source-ref` option when traceability is desired.
|
|
115
|
+
- Public mirror snapshots now create a `v<package.version>` tag, verify that it
|
|
116
|
+
points at the generated one-commit mirror, and print `--follow-tags` push
|
|
117
|
+
guidance for release workflows.
|
|
118
|
+
- Publishable public mirrors now require the matching changelog heading to be
|
|
119
|
+
dated before creating a release tag; remote dry-runs report whether a real run
|
|
120
|
+
would be blocked.
|
|
121
|
+
- `public:mirror --remote` now prechecks the publishable release tag/changelog
|
|
122
|
+
before running long readiness gates, so real publish attempts fail fast and
|
|
123
|
+
dry-runs show the blocker up front.
|
|
124
|
+
- Alpha evidence smoke defaults now use a generic external MCP client label
|
|
125
|
+
instead of naming ChatGPT unless the caller passes `--client "ChatGPT web"`.
|
|
126
|
+
- Alpha evidence preflight now describes missing current-HEAD observations as
|
|
127
|
+
tool calls or tunnel dispatcher traffic after the commit, avoiding ambiguous
|
|
128
|
+
"fresh tool calls" wording in failure output.
|
|
129
|
+
- `alpha:check --require-evidence` next actions now collapse external evidence
|
|
130
|
+
recovery into a shorter preflight, smoke-record, and rerun sequence instead of
|
|
131
|
+
repeating the same guidance in several forms.
|
|
132
|
+
- Added `npm run public:release-ready` as the final local public-alpha preflight,
|
|
133
|
+
combining alpha readiness, required external MCP evidence, and dated
|
|
134
|
+
changelog enforcement in one command.
|
|
135
|
+
- Local `alpha:check` readiness report for the source checkout, covering the
|
|
136
|
+
product gate, public audit, public snapshot dry-run, and cost-capped workflow
|
|
137
|
+
checks without triggering GitHub Actions.
|
|
138
|
+
- `alpha:evidence` release tooling for generating and validating local external
|
|
139
|
+
MCP client/tunnel evidence before announcing a public alpha.
|
|
140
|
+
- `alpha:evidence init` now accepts client, exposure, tunnel/URL, and scope
|
|
141
|
+
options, and `alpha:evidence check` validates concrete target details before
|
|
142
|
+
accepting external client/tunnel proof.
|
|
143
|
+
- `alpha:evidence record` now marks individual external-alpha evidence checks
|
|
144
|
+
as passed and can set redaction confirmation without hand-editing JSON.
|
|
145
|
+
- `alpha:evidence record-smoke` now records one external MCP/tunnel smoke pass
|
|
146
|
+
across all required evidence checks with one redaction-confirmed command.
|
|
147
|
+
- `alpha:evidence smoke` now combines external alpha evidence creation and
|
|
148
|
+
full smoke-pass recording into one redaction-confirmed command.
|
|
149
|
+
- `alpha:evidence preflight` now inspects local config, audit history, and
|
|
150
|
+
tunnel runtime state and prints a read-only external-client prompt before
|
|
151
|
+
recording alpha evidence.
|
|
152
|
+
- `alpha:evidence smoke`, `init`, `record-smoke`, and `record` now reject common
|
|
153
|
+
secret-shaped values before writing local release evidence.
|
|
154
|
+
- `npm test` now covers `alpha:evidence` init/check success and target
|
|
155
|
+
rejection cases so external-alpha evidence validation cannot silently regress.
|
|
156
|
+
- `alpha:check` now points missing external-evidence guidance at
|
|
157
|
+
`alpha:evidence smoke`, with lightweight report coverage in `npm test`.
|
|
158
|
+
- Agent setup guidance now tells connected clients to use generic
|
|
159
|
+
`computer_operation` dotted ops and avoid compatibility workspace tools
|
|
160
|
+
unless explicitly exposed.
|
|
161
|
+
- `computer-linker client setup` now prints copy-pasteable generic agent
|
|
162
|
+
instructions in text output and includes them in JSON output.
|
|
163
|
+
- Package smoke now verifies the installed `computer-linker client setup
|
|
164
|
+
--json` output, including generic tools, redacted auth, first prompt, and
|
|
165
|
+
agent instructions.
|
|
166
|
+
- Default CLI help, startup readiness, and ChatGPT setup guidance now show
|
|
167
|
+
tunnel startup as one-command folder setup examples instead of tunnel-only
|
|
168
|
+
commands.
|
|
169
|
+
- SDK `clientSetup()` typings now expose `firstPrompt` and
|
|
170
|
+
`agentInstructions`.
|
|
171
|
+
- npm publish guard that requires a clean worktree, matching version tag, dated
|
|
172
|
+
changelog, and the public release gate before publishing.
|
|
173
|
+
- OpenAI Secure MCP Tunnel support now treats tunnel-id mode as remote-ready
|
|
174
|
+
without requiring `publicBaseUrl`, auto-downloads the official tunnel client
|
|
175
|
+
when needed, and keeps bearer-token setup out of ChatGPT Tunnel mode.
|
|
176
|
+
- OpenAI tunnel quickstart, start help, and missing-key errors now surface the
|
|
177
|
+
`CONTROL_PLANE_API_KEY` / `OPENAI_API_KEY` prerequisite directly in the CLI
|
|
178
|
+
before users reach tunnel startup.
|
|
179
|
+
- Quickstart text and JSON now explain that `start` stays running and client
|
|
180
|
+
setup / verification commands should be run from another terminal.
|
|
181
|
+
- Product spec guidance for the CLI management surface now matches the concise
|
|
182
|
+
first-run help contract and keeps self-test, smoke, repair, history, and
|
|
183
|
+
compatibility commands in focused help.
|
|
184
|
+
- `alpha:check` preserved-history warnings now include the exact
|
|
185
|
+
`npm run public:mirror -- --remote <github-owner>/<public-repo>` command in
|
|
186
|
+
next actions.
|
|
187
|
+
- `computer-linker tunnel status` now explains that OpenAI Secure MCP Tunnel
|
|
188
|
+
mode intentionally has no public URL instead of reporting the URL as merely
|
|
189
|
+
not detected.
|
|
190
|
+
- `alpha:evidence preflight` now shows the current Git HEAD and the exact
|
|
191
|
+
fresh external smoke evidence missing for that commit.
|
|
192
|
+
- `alpha:check --require-evidence` now summarizes stale external smoke evidence
|
|
193
|
+
as a current-HEAD freshness issue with the current commit shown in text output.
|
|
194
|
+
- MIT license file included in the package.
|
|
195
|
+
|
|
196
|
+
### Changed
|
|
197
|
+
|
|
198
|
+
- Removed legacy ChatGPT profile shortcuts from the generic CLI surface:
|
|
199
|
+
`connect-profile`, top-level `chatgpt`, and `profile --chatgpt` now point
|
|
200
|
+
users to `client chatgpt ...` compatibility helpers instead.
|
|
201
|
+
- Daily-use CLI output for `status`, `start`, `setup`, and generic
|
|
202
|
+
`client setup` now favors concise summaries, with diagnostics and long setup
|
|
203
|
+
details available through `--details`, `--json`, or focused follow-up
|
|
204
|
+
commands.
|
|
205
|
+
- Default CLI help now keeps the first-run surface to start, tunnel, status,
|
|
206
|
+
client setup, and quickstart preview while moving self-test, smoke, repair,
|
|
207
|
+
service, config, API, and compatibility commands behind focused help topics.
|
|
208
|
+
- Package metadata now positions Computer Linker as a generic MCP/local
|
|
209
|
+
automation package instead of using ChatGPT as the product keyword.
|
|
210
|
+
|
|
211
|
+
### Security
|
|
212
|
+
|
|
213
|
+
- File, search, patch, and direct Git operations validate workspace paths
|
|
214
|
+
before execution.
|
|
215
|
+
- Screenshot capture history records are marked non-replayable by default so a
|
|
216
|
+
failed replay cannot silently capture the current screen again.
|
|
217
|
+
- Debug bundles explicitly redact screenshot image bytes.
|
|
218
|
+
- Default help and local smoke docs now prefer redacted `profile` output and
|
|
219
|
+
reserve `--show-token` for trusted MCP client setup screens.
|
|
220
|
+
- `init` and HTTP server startup now redact owner-token values by default and
|
|
221
|
+
point users to `profile --show-token` for trusted local setup screens.
|
|
222
|
+
- Manual smoke docs now pin the `app` scope id where later API and process
|
|
223
|
+
examples depend on that id.
|
|
224
|
+
- Shell, package, process, and Codex operations are explicitly documented as
|
|
225
|
+
workspace-cwd local execution, not OS filesystem sandboxes.
|
|
226
|
+
- Release readiness now warns on shell or Codex scopes without an
|
|
227
|
+
`allowedCommands` policy.
|
|
228
|
+
- Public release audit now blocks tracked or packed
|
|
229
|
+
`.computer-linker-alpha-evidence.json`, keeping real dogfooding tunnel and
|
|
230
|
+
client evidence local while publishing only the example schema.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Eason Wu
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|