@absolutejs/mcp 0.17.9 → 0.19.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/CHANGELOG.md +12 -0
- package/changelog.json +20 -0
- package/dist/apps.js +212 -1
- package/dist/browser/setupSelection.d.ts +1 -0
- package/dist/browser/workflow.d.ts +1 -0
- package/dist/index.js +290 -79
- package/dist/src/apps.d.ts +3 -0
- package/dist/src/index.d.ts +3 -0
- package/dist/src/setupSelection.d.ts +23 -0
- package/dist/src/setupSelection.generated.d.ts +1 -0
- package/dist/src/workflowApp.generated.d.ts +2 -0
- package/dist/src/workflowApps.d.ts +6 -0
- package/dist/src/workflowTools.d.ts +26 -0
- package/docs/commerce-host-rules.md +72 -0
- package/docs/mcp-apps.md +43 -0
- package/package.json +1 -1
package/dist/src/apps.d.ts
CHANGED
|
@@ -33,3 +33,6 @@ 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";
|
|
38
|
+
export { createSetupSelectionTools, projectSetupSelection, type SetupSelection, type SetupConfirmation, type SetupOption, } from "./setupSelection";
|
package/dist/src/index.d.ts
CHANGED
|
@@ -49,3 +49,6 @@ 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";
|
|
54
|
+
export { createSetupSelectionTools, projectSetupSelection, type SetupSelection, type SetupConfirmation, type SetupOption, } from "./setupSelection";
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { McpToolRegistry } from "./types";
|
|
2
|
+
export type SetupOption = {
|
|
3
|
+
id: string;
|
|
4
|
+
label: string;
|
|
5
|
+
};
|
|
6
|
+
export type SetupSelection = {
|
|
7
|
+
revision: string;
|
|
8
|
+
selectedId: string | null;
|
|
9
|
+
options: SetupOption[];
|
|
10
|
+
};
|
|
11
|
+
export type SetupConfirmation = {
|
|
12
|
+
expectedRevision: string;
|
|
13
|
+
selectedId: string | null;
|
|
14
|
+
};
|
|
15
|
+
export declare const projectSetupSelection: (value: unknown) => SetupSelection;
|
|
16
|
+
/** Bind to the authenticated owner. confirm MUST atomically compare the revision,
|
|
17
|
+
* validate option ownership, change selection and advance the revision. All
|
|
18
|
+
* writers must advance it, including A→B→A. Retries with an old revision fail
|
|
19
|
+
* without effects. Recover by reading; never auto-retry against a new revision. */
|
|
20
|
+
export declare const createSetupSelectionTools: (adapter: {
|
|
21
|
+
read: () => Promise<SetupSelection>;
|
|
22
|
+
confirm: (request: SetupConfirmation) => Promise<SetupSelection>;
|
|
23
|
+
}) => McpToolRegistry;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const setupSelectionScript: string;
|
|
@@ -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;
|
|
@@ -296,3 +296,75 @@ reviewed individual Copilot direct-MCP channel. Deployments must bind the exact
|
|
|
296
296
|
registration/account and enforce budgets, retries and recovery. It expires
|
|
297
297
|
October 12, 2026. It does not enable the shared default or expand checkout,
|
|
298
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,46 @@ 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.
|
|
85
|
+
|
|
86
|
+
### Reviewed setup selection
|
|
87
|
+
|
|
88
|
+
`createSetupSelectionTools({ read, confirm })` exposes `get_setup_options` and
|
|
89
|
+
`confirm_setup_selection`; `createWorkflowApps()` supplies the selection view.
|
|
90
|
+
The adapter returns `{ revision, selectedId, options: [{ id, label }] }`, with
|
|
91
|
+
`null` selecting all businesses. It must bind the authenticated account itself.
|
|
92
|
+
`confirm({ expectedRevision, selectedId })` must atomically compare the reviewed
|
|
93
|
+
revision, validate ownership, change selection, and advance the revision. Every
|
|
94
|
+
other selection writer must advance it too, including A → B → A. The package
|
|
95
|
+
validates and projects values but cannot provide database atomicity for adapters.
|
|
96
|
+
|
|
97
|
+
The view makes no call on mount. Review and Cancel are local; Confirm sends the
|
|
98
|
+
exact reviewed revision and selection once. Errors discard review state and
|
|
99
|
+
require a fresh read. Text-only hosts receive the same options/revision and must
|
|
100
|
+
obtain explicit approval before invoking the write tool. This is a reversible
|
|
101
|
+
setup action with no billing or outbound effects; it does not authorize paid
|
|
102
|
+
work. At most 200 options are supported; IDs/revisions are bounded at 128
|
|
103
|
+
characters and labels at 512. No account selector or credentials enter the view.
|
package/package.json
CHANGED