@absolutejs/mcp 0.17.8 → 0.18.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.
@@ -33,3 +33,5 @@ export declare const appResourceContent: (resource: McpAppResource, uri: string)
33
33
  };
34
34
  };
35
35
  export { createBillingApps } from "./billingApps";
36
+ export { createWorkflowApps } from "./workflowApps";
37
+ export { createWorkflowTools, projectSetupStatus, projectWorkPreview, type McpSetupStatus, type McpWorkPreview, type McpWorkPreviewRequest, } from "./workflowTools";
@@ -49,3 +49,5 @@ export { createCheckoutHandoffTool, createPurchaseStatusTool, type McpPurchaseSt
49
49
  export { createBillingReportTools, createBillingManagementTool, } from "./billingTools";
50
50
  export { MCP_APP_MIME, clientSupportsMcpApps, withMcpApp, type McpAppResource, type McpAppsConfig, } from "./apps";
51
51
  export { createBillingApps } from "./billingApps";
52
+ export { createWorkflowApps } from "./workflowApps";
53
+ export { createWorkflowTools, projectSetupStatus, projectWorkPreview, type McpSetupStatus, type McpWorkPreview, type McpWorkPreviewRequest, } from "./workflowTools";
@@ -0,0 +1,2 @@
1
+ export declare const workflowAppScript: string;
2
+ export declare const workflowAppCss: string;
@@ -0,0 +1,6 @@
1
+ import { type McpAppResource } from "./apps";
2
+ import type { McpToolRegistry } from "./types";
3
+ export declare const createWorkflowApps: () => {
4
+ resources: Record<string, McpAppResource>;
5
+ decorateTools: (tools: McpToolRegistry) => McpToolRegistry;
6
+ };
@@ -0,0 +1,26 @@
1
+ import type { McpToolRegistry } from "./types";
2
+ export type McpSetupStatus = {
3
+ business: string | null;
4
+ businessCount: number;
5
+ portalAccess: boolean;
6
+ availableCredits: number;
7
+ };
8
+ export type McpWorkPreviewRequest = {
9
+ operation: string;
10
+ maxCredits: number;
11
+ };
12
+ export type McpWorkPreview = McpWorkPreviewRequest & {
13
+ summary: string;
14
+ availableCredits: number;
15
+ eligible: boolean;
16
+ reason: string;
17
+ };
18
+ export declare const projectSetupStatus: (value: unknown) => McpSetupStatus;
19
+ export declare const projectWorkPreview: (value: unknown) => McpWorkPreview;
20
+ /** Readers must close over the authenticated identity. No executor, reservation,
21
+ * checkout or account-selector callback belongs in this read-only contract. */
22
+ export declare const createWorkflowTools: (readers: {
23
+ setup: () => Promise<McpSetupStatus>;
24
+ operations: readonly string[];
25
+ preview: (request: McpWorkPreviewRequest) => Promise<McpWorkPreview>;
26
+ }) => McpToolRegistry;
@@ -287,3 +287,84 @@ conditions. This does not change the global direct-MCP default. The complete
287
287
  native handoff now passes after accounting for Windows' external-site dialog;
288
288
  no link defect or need for an upstream link fix was established. Rich-view
289
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.
299
+
300
+ ## Launch evidence checklist — September 12, 2026
301
+
302
+ This checklist separates reusable package guarantees from deployment activation.
303
+ The September 10 survey remains the full host inventory; this follow-up rechecked
304
+ the highest-priority restrictions and existing Copilot review boundary. It does
305
+ not certify the untested hosts or broaden any executable commerce profile.
306
+
307
+ ### Current source checks
308
+
309
+ - Claude still documents purchases through interactive connectors as unsupported.
310
+ Its help page does not settle the separate external credit-checkout question.
311
+ Keep that flow unverified pending clarification; non-commerce report rendering
312
+ is a separate capability. [Claude help](https://support.claude.com/en/articles/13454812-use-interactive-connectors-in-claude).
313
+ - ChatGPT plugin guidelines still exclude digital-credit sales and transactional
314
+ links. Entitlement explanations and informational destinations are distinct
315
+ from purchase initiation. Do not turn an informational destination into an
316
+ automatic checkout redirect. [Plugin guidelines](https://developers.openai.com/plugins/app-guidelines#commerce-and-monetization).
317
+ - Direct Codex documents remote MCP and OAuth. That technical documentation alone
318
+ does not establish commerce eligibility for a particular account/distribution.
319
+ Keep its separate review pending; neither automatically apply hosted-plugin
320
+ rules to every direct connection nor infer an exemption.
321
+ [Direct MCP documentation](https://learn.chatgpt.com/docs/extend/mcp?surface=cli).
322
+ - Cursor Marketplace still excludes direct and indirect plugin-access fees in
323
+ section 3.1. Review directly configured MCP separately; a working connection
324
+ does not resolve the marketplace restriction.
325
+ [Publisher terms](https://cursor.com/marketplace-publisher-terms).
326
+ - GitHub still directs individual Copilot users to ToS section J and Business /
327
+ Enterprise users to different terms. The two scoped individual Copilot reviews
328
+ remain the package's interpretation, expiring October 12, 2026; this check
329
+ does not extend their expiry or authorize organization accounts.
330
+ [Applicable agreements](https://docs.github.com/en/site-policy/github-terms/github-terms-for-additional-products-and-features#github-copilot).
331
+ - VS Code issue #335908 remains open. Retain the tested affected-version fallback
332
+ until a released editor passes the documented fresh-load and remount tests.
333
+ [Upstream issue](https://github.com/microsoft/vscode/issues/335908).
334
+
335
+ ### Evidence required for each advertised host
336
+
337
+ | Gate | Required evidence | Owner |
338
+ | --- | --- | --- |
339
+ | Distribution and policy | Exact host surface, account agreement, category, actions, official sources, dated interpretation and expiry | Package review; deployment supplies verified binding |
340
+ | Authentication | Real signup/consent return, exact registration/account, refresh, revoked access and cross-account rejection | Auth package primitives and consumer integration |
341
+ | Presentation | Installed version, actual negotiated capabilities, visible first load, refresh, pagination and text fallback | MCP package fixture; real host test |
342
+ | Funded access | Subscription-free access, portal denial, explicit budget, settlement, retry conflict and recovery at zero | Billing package and consumer services |
343
+ | Checkout, if eligible | Own HTTPS origin, explicit browser confirmation, server-priced intent, idempotent grant and uncertain-outcome recovery | Shared handoff plus consumer gateway |
344
+ | Work effects | Immutable approval version, ownership, expiry, repeat-safe execution and durable status; rendering performs no action | Shared workflow contract and consumer handler |
345
+ | Operations | Manual or automated validation, deployment readiness, reconciliation, support procedure and rollback preserving financial records | Consumer deployment |
346
+
347
+ Mark each gate **passed**, **qualified**, **pending** or **not offered**, with a
348
+ link to evidence. A successful report fixture is not OAuth certification; a
349
+ successful payment is not proof of paid model metering. Never count a member or
350
+ complimentary account as a production subscription-free canary. No additional
351
+ live charge is required merely to review or document a host.
352
+
353
+ The package commerce regression suite was rerun: 18 tests / 43 assertions passed,
354
+ including discovery/execution guards, policy rechecks, restrictive profile
355
+ intersection, expiry, spoofed metadata and failure handling. This is regression
356
+ evidence for the policy mechanism, not vendor approval or a live host test.
357
+
358
+ ### Recommended implementation order for consumers
359
+
360
+ Build non-commerce setup and work previews using shared Apps primitives and
361
+ identical structured/text contracts first. Then add version-bound approval and
362
+ durable results, followed by attributed spend/outcome reporting. Bind each
363
+ consumer's domain services rather than duplicating policy, ledger or bridge
364
+ code. Test an eligible conversational, IDE and terminal channel separately;
365
+ record unavailable hosts as pending. Keep deferred background effects outside
366
+ bounded work until their reservation and recovery lifecycle is implemented.
367
+
368
+ This documentation update changes no runtime API, profile, feature flag or
369
+ published package version. It is available in the shared repository and will
370
+ ship with the next package release through the existing documentation allowlist.
package/docs/mcp-apps.md CHANGED
@@ -58,3 +58,27 @@ Primary references checked September 11, 2026: [stable Apps specification](https
58
58
  ## Real-host canaries
59
59
 
60
60
  See [the reusable host canary and observed results](host-canaries.md) for isolated connection instructions, acceptance criteria and remaining rollout gates.
61
+
62
+ ## Read-only setup and work previews
63
+
64
+ `createWorkflowTools` binds authenticated setup and preview readers; `createWorkflowApps`
65
+ decorates those tools and supplies offline resources. Merge its resources into the
66
+ server Apps configuration alongside billing resources. Both tools return text and
67
+ projected structured data when no Apps capability is negotiated. Setup reports
68
+ business context, portal access and available credits. Preview requires an allowed
69
+ operation and a positive proposed maximum, reports current eligibility, and never
70
+ reserves or executes. A maximum is not a price estimate or approval.
71
+
72
+ Readers must close over the authenticated account and resolve domain ownership.
73
+ Unknown operations and extra arguments (including account IDs) reject before reads.
74
+ The package strips extra reader fields. There is no executor callback. Consumers
75
+ keep these tools outside the zero-credit work gate with a bounded read rate limit.
76
+ Execution independently validates authorization, balance, stable work ID and budget.
77
+ Neither view contains checkout links, setup mutations or outbound actions.
78
+
79
+ The official Apps bridge delivers initial results without automatic tool calls.
80
+ Only explicit Refresh invokes the same read tool; preview refresh preserves the
81
+ operation and budget. Errors clear stale eligibility and point back to the assistant.
82
+ Known affected VS Code builds retain the shared text fallback. The visible-browser
83
+ fixture is `bun test/fixtures/workflowServer.ts` (loopback port 4418); it uses zero
84
+ credits and no gateway or database.
@@ -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
@@ -90,5 +90,5 @@
90
90
  "canary:checkout": "bun canary/checkout.ts"
91
91
  },
92
92
  "types": "./dist/src/index.d.ts",
93
- "version": "0.17.8"
93
+ "version": "0.18.0"
94
94
  }