@absolutejs/mcp 0.17.7 → 0.17.9
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 +12 -0
- package/canary/results/vscode-checkout-2026-09-12.json +20 -8
- package/changelog.json +20 -0
- package/docs/commerce-host-rules.md +19 -0
- package/docs/host-canaries.md +19 -9
- package/docs/reviews/vscode-individual-external-checkout.md +61 -0
- package/docs/reviews/vscode-individual-paid-work.md +69 -0
- package/package.json +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,18 @@ This file is generated by `absolute-changelog` from the entries in
|
|
|
6
6
|
`changelog/`. Edit an entry, not this file — and add new ones under
|
|
7
7
|
`changelog/unreleased/`.
|
|
8
8
|
|
|
9
|
+
## 0.17.9 — 2026-09-12
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- **Document scoped individual Copilot paid-work eligibility and deployment budget requirements**
|
|
14
|
+
|
|
15
|
+
## 0.17.8 — 2026-09-12
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
|
|
19
|
+
- **Correct the VS Code checkout canary after verifying native Windows link consent and document the individual Copilot channel review**
|
|
20
|
+
|
|
9
21
|
## 0.17.7 — 2026-09-12
|
|
10
22
|
|
|
11
23
|
### Added
|
|
@@ -11,18 +11,30 @@
|
|
|
11
11
|
"linkCreationApprovalVisible": true,
|
|
12
12
|
"toolResultReviewVisible": true,
|
|
13
13
|
"clickableMarkdownAnchor": true,
|
|
14
|
-
"nativeAnchorLaunch":
|
|
14
|
+
"nativeAnchorLaunch": true,
|
|
15
15
|
"windowsHttpsHandlerOpensReturnedUrl": true,
|
|
16
16
|
"nativeChromeCheckoutPage": true,
|
|
17
17
|
"fragmentRemovedAfterLoad": true,
|
|
18
|
-
"beforeBrowserApproval": {
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
"beforeBrowserApproval": {
|
|
19
|
+
"status": "not_started",
|
|
20
|
+
"creditsGranted": 0
|
|
21
|
+
},
|
|
22
|
+
"afterBrowserApproval": {
|
|
23
|
+
"status": "approved",
|
|
24
|
+
"creditsGranted": 1000
|
|
25
|
+
},
|
|
26
|
+
"repeatedRead": {
|
|
27
|
+
"status": "approved",
|
|
28
|
+
"creditsGranted": 1000
|
|
29
|
+
},
|
|
30
|
+
"nativeWindowsExternalSiteConfirmation": true,
|
|
31
|
+
"sameDefaultBrowserApproval": true
|
|
21
32
|
},
|
|
22
33
|
"limits": [
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
34
|
+
"Synthetic credits only; no real gateway or OAuth certified.",
|
|
35
|
+
"No editor patch, trusted-domain setting or browser default changed.",
|
|
36
|
+
"Rich payment UI and marketplace distribution are not certified.",
|
|
26
37
|
"No checkout capability, purchase ID, card data or account credentials included."
|
|
27
|
-
]
|
|
38
|
+
],
|
|
39
|
+
"correction": "Earlier unverified result missed a native Windows #32770 external-site confirmation outside the CDP DOM. Full rerun used the native Open prompt and the same default Chrome page."
|
|
28
40
|
}
|
package/changelog.json
CHANGED
|
@@ -2,6 +2,26 @@
|
|
|
2
2
|
"contract": 1,
|
|
3
3
|
"name": "@absolutejs/mcp",
|
|
4
4
|
"releases": [
|
|
5
|
+
{
|
|
6
|
+
"changes": [
|
|
7
|
+
{
|
|
8
|
+
"kind": "added",
|
|
9
|
+
"summary": "Document scoped individual Copilot paid-work eligibility and deployment budget requirements"
|
|
10
|
+
}
|
|
11
|
+
],
|
|
12
|
+
"date": "2026-09-12",
|
|
13
|
+
"version": "0.17.9"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"changes": [
|
|
17
|
+
{
|
|
18
|
+
"kind": "fixed",
|
|
19
|
+
"summary": "Correct the VS Code checkout canary after verifying native Windows link consent and document the individual Copilot channel review"
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"date": "2026-09-12",
|
|
23
|
+
"version": "0.17.8"
|
|
24
|
+
},
|
|
5
25
|
{
|
|
6
26
|
"changes": [
|
|
7
27
|
{
|
|
@@ -277,3 +277,22 @@ individual Copilot uses GitHub ToS §J; volume licensing has separate current
|
|
|
277
277
|
Generative AI Services Terms. The old Copilot product-specific terms are archived.
|
|
278
278
|
The linked canary record preserves the exact native host result independently
|
|
279
279
|
of commercial eligibility. Existing Claude and ChatGPT restrictions still apply.
|
|
280
|
+
|
|
281
|
+
## September 12 individual Copilot external-checkout review
|
|
282
|
+
|
|
283
|
+
The operator confirmed an individual subscription. The [scoped review](reviews/vscode-individual-external-checkout.md)
|
|
284
|
+
concludes that user-requested, service-owned HTTPS credit checkout is eligible
|
|
285
|
+
for an explicit deployment binding, with a dated interpretation and exact
|
|
286
|
+
conditions. This does not change the global direct-MCP default. The complete
|
|
287
|
+
native handoff now passes after accounting for Windows' external-site dialog;
|
|
288
|
+
no link defect or need for an upstream link fix was established. Rich-view
|
|
289
|
+
startup remains a separate tracked issue.
|
|
290
|
+
|
|
291
|
+
## September 12 individual Copilot paid-work review
|
|
292
|
+
|
|
293
|
+
The [bounded paid-work review](reviews/vscode-individual-paid-work.md) separately
|
|
294
|
+
covers user-requested service work funded by existing service credits for the
|
|
295
|
+
reviewed individual Copilot direct-MCP channel. Deployments must bind the exact
|
|
296
|
+
registration/account and enforce budgets, retries and recovery. It expires
|
|
297
|
+
October 12, 2026. It does not enable the shared default or expand checkout,
|
|
298
|
+
organization-account or other-host eligibility.
|
package/docs/host-canaries.md
CHANGED
|
@@ -153,12 +153,22 @@ anchor. Native Chrome showed the fixture page with its fragment removed. Copilot
|
|
|
153
153
|
reported `not_started`/0 after the browser opened, then `approved`/1000 after the
|
|
154
154
|
operator's simulated approval, including a second unchanged status read.
|
|
155
155
|
|
|
156
|
-
**
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
156
|
+
**Corrected after a complete native rerun:** the previous test missed a Windows
|
|
157
|
+
native `#32770` dialog asking whether Code should open the external website. It
|
|
158
|
+
is outside the CDP page DOM: `getByRole("dialog")` returning zero did not mean no
|
|
159
|
+
prompt existed. Several previous clicks had queued confirmations. Dismissing
|
|
160
|
+
stale test prompts and choosing **Open** for the fresh expected origin produced
|
|
161
|
+
checkout GET and state POST responses. Windows accessibility verified the actual
|
|
162
|
+
default Chrome page, then the operator explicitly invoked its **Simulate approval**
|
|
163
|
+
button. Copilot read zero before that click and approved/1000 twice afterward.
|
|
164
|
+
No manual URL navigation was needed in this final run.
|
|
165
|
+
|
|
166
|
+
Use Windows native dialog inspection when a click appears inert; do not repeatedly
|
|
167
|
+
click, change trusted domains, or patch the editor to bypass the prompt. Preserve
|
|
168
|
+
normal per-link consent. This was a test-automation gap, not an established host
|
|
169
|
+
link defect. See `canary/results/vscode-checkout-2026-09-12.json` for the corrected
|
|
170
|
+
aggregate evidence. The separate rich-view startup issue is unchanged.
|
|
171
|
+
|
|
172
|
+
The [individual Copilot external-checkout review](reviews/vscode-individual-external-checkout.md)
|
|
173
|
+
records the exact eligible deployment scope and activation conditions; the
|
|
174
|
+
synthetic fixture is not a real merchant/OAuth acceptance test.
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# VS Code individual Copilot: external service-credit checkout
|
|
2
|
+
|
|
3
|
+
Reviewed September 12, 2026; re-review by October 12, 2026. The operator confirmed
|
|
4
|
+
an **individual Copilot subscription**. Channel: native VS Code, manually configured
|
|
5
|
+
remote MCP, service-owned HTTPS checkout. This review covers user-requested
|
|
6
|
+
one-time purchases of non-transferable credits for the connected service.
|
|
7
|
+
|
|
8
|
+
## Decision and evidence
|
|
9
|
+
|
|
10
|
+
**Eligible for a deployment-specific external-checkout binding under the conditions
|
|
11
|
+
below.** This is our documented interpretation of the reviewed terms, not a
|
|
12
|
+
Microsoft/GitHub certification or an express vendor statement about credit sales.
|
|
13
|
+
The inspected terms do not specifically prohibit this scoped flow. Do not describe
|
|
14
|
+
that absence as permission for every commercial use or every Copilot account.
|
|
15
|
+
|
|
16
|
+
- [GitHub additional product terms, Copilot](https://docs.github.com/en/site-policy/github-terms/github-terms-for-additional-products-and-features#github-copilot)
|
|
17
|
+
directs individual users to the general terms, including AI-feature terms.
|
|
18
|
+
- [GitHub ToS, effective April 27, 2026](https://docs.github.com/en/site-policy/github-terms/github-terms-of-service#j-ai-features-training-and-your-data)
|
|
19
|
+
covers AI inputs/outputs, user responsibility, and individual data-use controls.
|
|
20
|
+
Section B.5 distinguishes third-party relationships; §H restricts API abuse.
|
|
21
|
+
- [GitHub acceptable-use policies](https://docs.github.com/en/site-policy/acceptable-use-policies/github-acceptable-use-policies)
|
|
22
|
+
forbid service resale without permission, unsolicited promotions/spam, privacy
|
|
23
|
+
violations and deceptive conduct. Our scope is a requested purchase of the
|
|
24
|
+
connected merchant's own service, with no GitHub-service resale or unsolicited
|
|
25
|
+
promotion. Do not source sales-lead data from GitHub contrary to these rules.
|
|
26
|
+
- [VS Code license](https://code.visualstudio.com/license) and
|
|
27
|
+
[MCP documentation](https://code.visualstudio.com/docs/agent-customization/mcp-servers)
|
|
28
|
+
describe the editor and direct MCP/trust mechanisms. The license alone was
|
|
29
|
+
sufficient only for the earlier developer test; it is not a commerce certificate.
|
|
30
|
+
|
|
31
|
+
Native VS Code 1.135.0 passed the synthetic handoff through its normal Windows
|
|
32
|
+
external-site confirmation and the default browser. Opening the page granted
|
|
33
|
+
nothing; explicit simulated approval produced one unchanged 1,000-credit result
|
|
34
|
+
across repeated reads. See the [host canary](../host-canaries.md). This tests
|
|
35
|
+
transport and user interaction; the real merchant/account flow needs its own
|
|
36
|
+
staging validation before activation.
|
|
37
|
+
|
|
38
|
+
## Required deployment scope
|
|
39
|
+
|
|
40
|
+
1. Bind an operator-reviewed OAuth registration to the authenticated account and
|
|
41
|
+
this exact direct channel. Never grant eligibility from `clientInfo`, model
|
|
42
|
+
name, arbitrary client metadata, or a user-supplied profile. Confirm the
|
|
43
|
+
account's agreement; organization-managed accounts need a separate review.
|
|
44
|
+
2. Limit this review to `external_checkout` / `usage_credits`. The shared
|
|
45
|
+
`direct-mcp` default remains unverified until the deployment supplies a fresh
|
|
46
|
+
review. Unknown, ambiguous and published restricted profiles stay closed.
|
|
47
|
+
3. Create an expiring, account-bound link on the merchant's own HTTPS origin.
|
|
48
|
+
Keep card entry and explicit payment confirmation in that browser page.
|
|
49
|
+
Tool approval, native **Open**, page load and a chat claim never charge or
|
|
50
|
+
prove payment. Verify payment and grant credits on the server exactly once.
|
|
51
|
+
4. Offer the link only in response to a purchase/top-up request. Keep normal
|
|
52
|
+
host trust prompts. Do not automatically opt out of review or mark all
|
|
53
|
+
domains trusted. Never collect payment credentials in MCP arguments or chat.
|
|
54
|
+
5. Expire the binding at review expiry; re-review changed terms, account type,
|
|
55
|
+
distribution, categories or host behavior. Follow merchant privacy/terms and
|
|
56
|
+
applicable provider requirements. Treat transcripts as potentially retained.
|
|
57
|
+
|
|
58
|
+
Excluded: Marketplace listings, GitHub-hosted storefronts, organization accounts,
|
|
59
|
+
ChatGPT/Claude hosted channels, embedded card forms, saved-card tool charges,
|
|
60
|
+
automatic refill, subscriptions and blanket approval for other MCP clients.
|
|
61
|
+
The VS Code rich-view startup workaround is a separate issue and still applies.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# VS Code individual Copilot: bounded paid service work
|
|
2
|
+
|
|
3
|
+
Reviewed September 12, 2026; expires October 12, 2026. Channel: native VS Code,
|
|
4
|
+
manually configured remote MCP, individual Copilot subscription. Scope:
|
|
5
|
+
user-requested work delivered by the connected service, paid from that service's
|
|
6
|
+
existing credit balance. This review is separate from
|
|
7
|
+
[external checkout](vscode-individual-external-checkout.md).
|
|
8
|
+
|
|
9
|
+
## Decision
|
|
10
|
+
|
|
11
|
+
Eligible for a deployment-specific `paid_access` binding for `usage_credits` and
|
|
12
|
+
`digital_service` under the conditions below. This is our interpretation of the
|
|
13
|
+
reviewed terms, not vendor certification or express approval of every paid MCP.
|
|
14
|
+
The reviewed terms do not identify a specific prohibition on this bounded use
|
|
15
|
+
of an independently operated service. Re-review account type, distribution,
|
|
16
|
+
service behavior and changed terms before expanding the scope.
|
|
17
|
+
|
|
18
|
+
## Primary sources and interpretation
|
|
19
|
+
|
|
20
|
+
- [GitHub additional product terms](https://docs.github.com/en/site-policy/github-terms/github-terms-for-additional-products-and-features#github-copilot)
|
|
21
|
+
directs individual Copilot users to GitHub ToS section J; organizational
|
|
22
|
+
agreements are outside this review.
|
|
23
|
+
- [GitHub ToS](https://docs.github.com/en/site-policy/github-terms/github-terms-of-service)
|
|
24
|
+
distinguishes third-party relationships in B.5. Section H prohibits API abuse
|
|
25
|
+
and certain data uses; J covers AI output responsibility and individual data
|
|
26
|
+
controls. Our inference: the user's separate service agreement can govern
|
|
27
|
+
metered service work, while the user's Copilot obligations continue to apply.
|
|
28
|
+
- [GitHub acceptable-use policies](https://docs.github.com/en/site-policy/acceptable-use-policies/github-acceptable-use-policies)
|
|
29
|
+
restrict resale of GitHub services, spam, privacy misuse and abusive activity.
|
|
30
|
+
The reviewed service sells its own work. It must not sell Copilot access,
|
|
31
|
+
share accounts, evade usage limits, or obtain GitHub data for prohibited sales
|
|
32
|
+
or solicitation. Ordinary task drafts do not authorize sending outreach.
|
|
33
|
+
- [VS Code MCP documentation](https://code.visualstudio.com/docs/agent-customization/mcp-servers)
|
|
34
|
+
documents remote-server configuration and host trust/tool interaction.
|
|
35
|
+
Technical support for a tool is not commercial permission. Preserve the host's
|
|
36
|
+
approvals; the service's ledger must independently enforce its budget.
|
|
37
|
+
|
|
38
|
+
## Required deployment controls
|
|
39
|
+
|
|
40
|
+
1. Bind the reviewed origin, verified OAuth registration and authenticated
|
|
41
|
+
account on the server. Client names, `clientInfo`, prompts, tool arguments or
|
|
42
|
+
claimed host capabilities cannot select the review. Unknown clients stay
|
|
43
|
+
ineligible. Organization accounts require a separate review.
|
|
44
|
+
2. Make service-credit charging clear before work starts. Require a stable work
|
|
45
|
+
ID and an explicit maximum service-credit budget. Service credits are not
|
|
46
|
+
Copilot tokens or a promise of monetary return. Never infer an unlimited
|
|
47
|
+
spending authorization from authentication, a tool result or a chat claim.
|
|
48
|
+
3. Reserve and settle atomically, cap the account's charge, and deduplicate
|
|
49
|
+
retries. Replaying a completed work ID returns its stored result. Reject
|
|
50
|
+
changed inputs under the same ID. Preserve uncertain work for reconciliation;
|
|
51
|
+
do not release its hold and repeat its effects without verification.
|
|
52
|
+
4. Keep account ownership, cancellation/deletion, entitlement and balance checks
|
|
53
|
+
on the server. Exhaustion blocks new paid work but preserves bounded status
|
|
54
|
+
and recovery access. Background work needs its own durable budget propagation;
|
|
55
|
+
exclude handlers that cannot uphold the cap across detached work.
|
|
56
|
+
5. This review grants only `paid_access`; checkout needs its own review. It does
|
|
57
|
+
not permit card collection in chat, saved-card charges, subscriptions,
|
|
58
|
+
automatic refill, bulk outreach or arbitrary third-party purchases. Retain
|
|
59
|
+
any separate approval needed for outbound effects and sensitive actions.
|
|
60
|
+
6. Limit outputs to information the user is authorized to access. Treat host
|
|
61
|
+
transcripts as retained data. Apply the service's privacy obligations and do
|
|
62
|
+
not expose credentials, capability links or unrelated account records in
|
|
63
|
+
diagnostics or reusable canary evidence.
|
|
64
|
+
|
|
65
|
+
A deployment must validate its ledger migration, actual host/account connection,
|
|
66
|
+
retry behavior, budget limits and recovery before activation. A review alone
|
|
67
|
+
neither activates tools nor certifies their accounting. This document does not
|
|
68
|
+
change the shared `direct-mcp` default or restrictions for Claude, ChatGPT,
|
|
69
|
+
marketplaces, organization-managed Copilot or other hosts.
|
package/package.json
CHANGED
|
@@ -73,7 +73,8 @@
|
|
|
73
73
|
"docs/third-party",
|
|
74
74
|
"canary",
|
|
75
75
|
"docs/host-canaries.md",
|
|
76
|
-
"UPSTREAM_ISSUES.md"
|
|
76
|
+
"UPSTREAM_ISSUES.md",
|
|
77
|
+
"docs/reviews"
|
|
77
78
|
],
|
|
78
79
|
"scripts": {
|
|
79
80
|
"build": "bun run build:apps && rm -rf dist && bun build src/index.ts src/manifest.ts src/commerce.ts src/apps.ts --outdir dist --root ./src --target=bun --external @absolutejs/agency --external '@absolutejs/agency/*' --external elysia && tsc --emitDeclarationOnly --project tsconfig.json && absolute-manifest emit",
|
|
@@ -89,5 +90,5 @@
|
|
|
89
90
|
"canary:checkout": "bun canary/checkout.ts"
|
|
90
91
|
},
|
|
91
92
|
"types": "./dist/src/index.d.ts",
|
|
92
|
-
"version": "0.17.
|
|
93
|
+
"version": "0.17.9"
|
|
93
94
|
}
|