@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.
Files changed (82) hide show
  1. package/CHANGELOG.md +230 -0
  2. package/LICENSE +21 -0
  3. package/README.md +539 -0
  4. package/SECURITY.md +48 -0
  5. package/dist/api.d.ts +2 -0
  6. package/dist/api.js +360 -0
  7. package/dist/audit.d.ts +70 -0
  8. package/dist/audit.js +102 -0
  9. package/dist/capabilities.d.ts +98 -0
  10. package/dist/capabilities.js +718 -0
  11. package/dist/capability-policy.d.ts +22 -0
  12. package/dist/capability-policy.js +103 -0
  13. package/dist/chatgpt.d.ts +167 -0
  14. package/dist/chatgpt.js +561 -0
  15. package/dist/cli.d.ts +2 -0
  16. package/dist/cli.js +4621 -0
  17. package/dist/client-smoke.d.ts +44 -0
  18. package/dist/client-smoke.js +639 -0
  19. package/dist/client.d.ts +217 -0
  20. package/dist/client.js +357 -0
  21. package/dist/codex-runs.d.ts +35 -0
  22. package/dist/codex-runs.js +66 -0
  23. package/dist/computer-contract.d.ts +33 -0
  24. package/dist/computer-contract.js +384 -0
  25. package/dist/computer-operation-registry.d.ts +45 -0
  26. package/dist/computer-operation-registry.js +179 -0
  27. package/dist/config-diagnostics.d.ts +11 -0
  28. package/dist/config-diagnostics.js +185 -0
  29. package/dist/config.d.ts +10 -0
  30. package/dist/config.js +69 -0
  31. package/dist/history-insights.d.ts +132 -0
  32. package/dist/history-insights.js +457 -0
  33. package/dist/http-auth.d.ts +3 -0
  34. package/dist/http-auth.js +15 -0
  35. package/dist/mcp-surface.d.ts +5 -0
  36. package/dist/mcp-surface.js +25 -0
  37. package/dist/oauth-provider.d.ts +52 -0
  38. package/dist/oauth-provider.js +325 -0
  39. package/dist/package-metadata.d.ts +7 -0
  40. package/dist/package-metadata.js +24 -0
  41. package/dist/permissions.d.ts +43 -0
  42. package/dist/permissions.js +150 -0
  43. package/dist/platform-shell.d.ts +28 -0
  44. package/dist/platform-shell.js +124 -0
  45. package/dist/processes.d.ts +50 -0
  46. package/dist/processes.js +178 -0
  47. package/dist/profile.d.ts +159 -0
  48. package/dist/profile.js +416 -0
  49. package/dist/screenshot.d.ts +47 -0
  50. package/dist/screenshot.js +302 -0
  51. package/dist/search.d.ts +34 -0
  52. package/dist/search.js +340 -0
  53. package/dist/security.d.ts +10 -0
  54. package/dist/security.js +108 -0
  55. package/dist/sensitive-files.d.ts +4 -0
  56. package/dist/sensitive-files.js +96 -0
  57. package/dist/server.d.ts +9 -0
  58. package/dist/server.js +713 -0
  59. package/dist/service.d.ts +125 -0
  60. package/dist/service.js +486 -0
  61. package/dist/sessions.d.ts +26 -0
  62. package/dist/sessions.js +34 -0
  63. package/dist/tunnels.d.ts +161 -0
  64. package/dist/tunnels.js +1243 -0
  65. package/dist/workspace-operations.d.ts +170 -0
  66. package/dist/workspace-operations.js +3219 -0
  67. package/dist/workspaces.d.ts +61 -0
  68. package/dist/workspaces.js +353 -0
  69. package/docs/agent-instructions.md +65 -0
  70. package/docs/alpha-evidence.example.json +54 -0
  71. package/docs/api-compatibility.md +56 -0
  72. package/docs/architecture.md +561 -0
  73. package/docs/chatgpt-setup.md +397 -0
  74. package/docs/client-recipes.md +98 -0
  75. package/docs/client-sdk.md +163 -0
  76. package/docs/computer-operation-v1.schema.json +143 -0
  77. package/docs/manual-test-plan.md +322 -0
  78. package/docs/product-spec.md +911 -0
  79. package/docs/release-checklist.md +285 -0
  80. package/docs/service-mode.md +99 -0
  81. package/examples/minimal-mcp-client.mjs +114 -0
  82. 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.