@oobe-protocol-labs/sap-mcp-server 0.7.4 → 0.9.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 +140 -0
- package/README.md +14 -7
- package/USER_DOCS/00_START_HERE.md +45 -7
- package/USER_DOCS/01_HOSTED_REMOTE_MCP.md +2 -0
- package/USER_DOCS/03_PAYMENTS_X402_PAYSH.md +24 -6
- package/USER_DOCS/04_CLIENT_CONFIGS.md +26 -15
- package/USER_DOCS/06_DESKTOP_GUI_WIZARD.md +44 -22
- package/assets/logos/drift.svg +12 -0
- package/assets/logos/jupiter.ico +0 -0
- package/assets/logos/mcp.svg +11 -0
- package/assets/logos/meteora.png +0 -0
- package/assets/logos/orca.ico +0 -0
- package/assets/logos/raydium.ico +0 -0
- package/assets/logos/smithery.svg +11 -0
- package/assets/oobe-logo.png +0 -0
- package/dist/config/mcp-client-injection.d.ts +26 -7
- package/dist/config/mcp-client-injection.d.ts.map +1 -1
- package/dist/config/mcp-client-injection.js +182 -58
- package/dist/config/mcp-client-injection.js.map +1 -1
- package/dist/config/paths.d.ts +6 -0
- package/dist/config/paths.d.ts.map +1 -1
- package/dist/config/paths.js +14 -0
- package/dist/config/paths.js.map +1 -1
- package/dist/config/wizard.d.ts.map +1 -1
- package/dist/config/wizard.js +92 -57
- package/dist/config/wizard.js.map +1 -1
- package/dist/core/constants.d.ts +1 -1
- package/dist/core/constants.js +1 -1
- package/dist/payments/pricing.d.ts.map +1 -1
- package/dist/payments/pricing.js +12 -0
- package/dist/payments/pricing.js.map +1 -1
- package/dist/payments/x402-paid-call.d.ts +181 -1
- package/dist/payments/x402-paid-call.d.ts.map +1 -1
- package/dist/payments/x402-paid-call.js +432 -6
- package/dist/payments/x402-paid-call.js.map +1 -1
- package/dist/prompts/context/sap-agent-context.prompt.js +7 -3
- package/dist/prompts/context/sap-agent-context.prompt.js.map +1 -1
- package/dist/remote/public-home/escape.d.ts +11 -0
- package/dist/remote/public-home/escape.d.ts.map +1 -0
- package/dist/remote/public-home/escape.js +20 -0
- package/dist/remote/public-home/escape.js.map +1 -0
- package/dist/remote/public-home/index.d.ts +8 -0
- package/dist/remote/public-home/index.d.ts.map +1 -0
- package/dist/remote/public-home/index.js +57 -0
- package/dist/remote/public-home/index.js.map +1 -0
- package/dist/remote/public-home/scripts.d.ts +6 -0
- package/dist/remote/public-home/scripts.d.ts.map +1 -0
- package/dist/remote/public-home/scripts.js +106 -0
- package/dist/remote/public-home/scripts.js.map +1 -0
- package/dist/remote/public-home/sections.d.ts +67 -0
- package/dist/remote/public-home/sections.d.ts.map +1 -0
- package/dist/remote/public-home/sections.js +732 -0
- package/dist/remote/public-home/sections.js.map +1 -0
- package/dist/remote/public-home/styles.d.ts +6 -0
- package/dist/remote/public-home/styles.d.ts.map +1 -0
- package/dist/remote/public-home/styles.js +1534 -0
- package/dist/remote/public-home/styles.js.map +1 -0
- package/dist/remote/public-home/types.d.ts +97 -0
- package/dist/remote/public-home/types.d.ts.map +1 -0
- package/dist/remote/public-home/types.js +2 -0
- package/dist/remote/public-home/types.js.map +1 -0
- package/dist/remote/server.d.ts +3 -1
- package/dist/remote/server.d.ts.map +1 -1
- package/dist/remote/server.js +67 -282
- package/dist/remote/server.js.map +1 -1
- package/dist/security/tool-permissions.d.ts.map +1 -1
- package/dist/security/tool-permissions.js +5 -0
- package/dist/security/tool-permissions.js.map +1 -1
- package/dist/tools/magicblock-tools.js +6 -6
- package/dist/tools/magicblock-tools.js.map +1 -1
- package/dist/tools/profile-tools.d.ts.map +1 -1
- package/dist/tools/profile-tools.js +136 -33
- package/dist/tools/profile-tools.js.map +1 -1
- package/dist/tools/register-tools.d.ts.map +1 -1
- package/dist/tools/register-tools.js +5 -0
- package/dist/tools/register-tools.js.map +1 -1
- package/dist/tools/x402-paid-call-tool.d.ts +1 -1
- package/dist/tools/x402-paid-call-tool.d.ts.map +1 -1
- package/dist/tools/x402-paid-call-tool.js +360 -28
- package/dist/tools/x402-paid-call-tool.js.map +1 -1
- package/dist/tui/config-wizard.js +2 -2
- package/dist/tui/config-wizard.js.map +1 -1
- package/dist/tui/wizard-save.d.ts.map +1 -1
- package/dist/tui/wizard-save.js +7 -3
- package/dist/tui/wizard-save.js.map +1 -1
- package/dist/wizard-core/desktop-flow.d.ts +40 -1
- package/dist/wizard-core/desktop-flow.d.ts.map +1 -1
- package/dist/wizard-core/desktop-flow.js +207 -15
- package/dist/wizard-core/desktop-flow.js.map +1 -1
- package/docs/03_CONFIGURATION_AND_WIZARD.md +7 -2
- package/docs/06_PAYMENTS_X402_AND_PAYSH.md +30 -7
- package/docs/07_ENDPOINTS_AND_CLIENTS.md +1 -1
- package/docs/14_DESKTOP_WIZARD_RELEASE.md +25 -5
- package/docs/15_DASHBOARD_SCREENSHARE_SCRIPT.md +137 -0
- package/docs/README.md +23 -2
- package/package.json +1 -1
- package/server.json +3 -3
- package/skills/sap-mcp/SKILL.md +27 -7
- package/skills/sap-payments-x402/SKILL.md +37 -13
package/dist/tui/wizard-save.js
CHANGED
|
@@ -7,9 +7,13 @@ const PROFILE_NAME_PATTERN = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
|
|
|
7
7
|
* Executes the preferred config dir operation.
|
|
8
8
|
*/
|
|
9
9
|
export function preferredConfigDir() {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
if (process.env.XDG_CONFIG_HOME) {
|
|
11
|
+
return join(process.env.XDG_CONFIG_HOME, 'mcp-sap');
|
|
12
|
+
}
|
|
13
|
+
if (process.platform === 'win32') {
|
|
14
|
+
return join(process.env.APPDATA ?? join(homedir(), 'AppData', 'Roaming'), 'mcp-sap');
|
|
15
|
+
}
|
|
16
|
+
return join(homedir(), '.config', 'mcp-sap');
|
|
13
17
|
}
|
|
14
18
|
/**
|
|
15
19
|
* Executes the default wallet path operation.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wizard-save.js","sourceRoot":"","sources":["../../src/tui/wizard-save.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AACnF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,MAAM,oBAAoB,GAAG,4BAA4B,CAAC;AA8B1D;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,
|
|
1
|
+
{"version":3,"file":"wizard-save.js","sourceRoot":"","sources":["../../src/tui/wizard-save.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,6 +39,39 @@ export interface DesktopWizardRuntimeStatus {
|
|
|
39
39
|
autoConfigurable: boolean;
|
|
40
40
|
recommendation: string;
|
|
41
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* @name DesktopProfileStatus
|
|
44
|
+
* @description Safe local SAP MCP profile metadata shown by the desktop wizard without reading wallet bytes.
|
|
45
|
+
*/
|
|
46
|
+
export interface DesktopProfileStatus {
|
|
47
|
+
name: string;
|
|
48
|
+
path: string;
|
|
49
|
+
active: boolean;
|
|
50
|
+
mode?: SapMcpMode;
|
|
51
|
+
rpcUrl?: string;
|
|
52
|
+
network?: string;
|
|
53
|
+
agentPubkey?: string;
|
|
54
|
+
walletPath?: string;
|
|
55
|
+
walletExists: boolean;
|
|
56
|
+
externalSignerConfigured: boolean;
|
|
57
|
+
readiness: 'ready' | 'needs-attention';
|
|
58
|
+
issues: string[];
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* @name DesktopWizardReadiness
|
|
62
|
+
* @description Post-save readiness audit used to avoid reporting success when local signing or runtime bridge config is broken.
|
|
63
|
+
*/
|
|
64
|
+
export interface DesktopWizardReadiness {
|
|
65
|
+
status: 'ready' | 'needs-attention';
|
|
66
|
+
profileName?: string;
|
|
67
|
+
profileIssues: string[];
|
|
68
|
+
runtimeIssues: Array<{
|
|
69
|
+
runtime: string;
|
|
70
|
+
path: string;
|
|
71
|
+
issues: string[];
|
|
72
|
+
}>;
|
|
73
|
+
nextSteps: string[];
|
|
74
|
+
}
|
|
42
75
|
/**
|
|
43
76
|
* @name DesktopWizardResult
|
|
44
77
|
* @description Result returned after the desktop wizard saves profile and runtime integration state.
|
|
@@ -46,6 +79,7 @@ export interface DesktopWizardRuntimeStatus {
|
|
|
46
79
|
export interface DesktopWizardResult {
|
|
47
80
|
setup?: WizardSetupResult;
|
|
48
81
|
setupMode: DesktopWizardDraft['setupMode'];
|
|
82
|
+
readiness: DesktopWizardReadiness;
|
|
49
83
|
runtimeActions: Array<{
|
|
50
84
|
runtime: string;
|
|
51
85
|
status: 'configured' | 'installed' | 'skipped';
|
|
@@ -69,6 +103,11 @@ export declare function createDefaultDesktopWizardDraft(): DesktopWizardDraft;
|
|
|
69
103
|
* @description Summarizes local runtime config files without exposing secret material.
|
|
70
104
|
*/
|
|
71
105
|
export declare function getDesktopRuntimeStatuses(homeDir?: string): DesktopWizardRuntimeStatus[];
|
|
106
|
+
/**
|
|
107
|
+
* @name getDesktopProfileStatuses
|
|
108
|
+
* @description Lists local SAP MCP config profiles without loading or exposing keypair material.
|
|
109
|
+
*/
|
|
110
|
+
export declare function getDesktopProfileStatuses(homeDir?: string, platform?: NodeJS.Platform): DesktopProfileStatus[];
|
|
72
111
|
/**
|
|
73
112
|
* @name validateDesktopWizardDraft
|
|
74
113
|
* @description Returns actionable validation errors before persistence.
|
|
@@ -78,5 +117,5 @@ export declare function validateDesktopWizardDraft(draft: DesktopWizardDraft): s
|
|
|
78
117
|
* @name saveDesktopWizardDraft
|
|
79
118
|
* @description Persists a desktop wizard draft and installs selected runtime integrations.
|
|
80
119
|
*/
|
|
81
|
-
export declare function saveDesktopWizardDraft(draft: DesktopWizardDraft): Promise<DesktopWizardResult>;
|
|
120
|
+
export declare function saveDesktopWizardDraft(draft: DesktopWizardDraft, homeDir?: string, platform?: NodeJS.Platform): Promise<DesktopWizardResult>;
|
|
82
121
|
//# sourceMappingURL=desktop-flow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"desktop-flow.d.ts","sourceRoot":"","sources":["../../src/wizard-core/desktop-flow.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"desktop-flow.d.ts","sourceRoot":"","sources":["../../src/wizard-core/desktop-flow.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { existsSync, readdirSync, readFileSync } from 'fs';
|
|
2
|
+
import { join } from 'path';
|
|
1
3
|
import { defaults } from '../config/defaults.js';
|
|
2
|
-
import { defaultGeneratedWalletPath } from '../config/paths.js';
|
|
4
|
+
import { defaultGeneratedWalletPath, getPreferredConfigDirForPlatform } from '../config/paths.js';
|
|
3
5
|
import { saveWizardSetup } from '../config/setup.js';
|
|
4
|
-
import { discoverMcpClientTargets, installCodexHostedPaymentBridgeConfig, installHostedPaymentBridgeConfigs, installX402PaidCallAddon, } from '../config/mcp-client-injection.js';
|
|
6
|
+
import { discoverMcpClientTargets, installCodexHostedPaymentBridgeConfig, installHostedPaymentBridgeConfigs, installX402PaidCallAddon, validateHostedPaymentBridgeContent, } from '../config/mcp-client-injection.js';
|
|
5
7
|
/**
|
|
6
8
|
* @name normalizeDesktopProfileName
|
|
7
9
|
* @description Produces a safe suggested profile name while preserving validation in saveWizardSetup.
|
|
@@ -22,7 +24,7 @@ export function createDefaultDesktopWizardDraft() {
|
|
|
22
24
|
const profileName = 'my-sap-agent';
|
|
23
25
|
return {
|
|
24
26
|
profileName,
|
|
25
|
-
mode: '
|
|
27
|
+
mode: 'hosted-api',
|
|
26
28
|
rpcUrl: defaults.rpcUrl,
|
|
27
29
|
createNewWallet: true,
|
|
28
30
|
walletPath: defaultGeneratedWalletPath(profileName),
|
|
@@ -55,7 +57,7 @@ export function getDesktopRuntimeStatuses(homeDir) {
|
|
|
55
57
|
detected: Boolean(byRuntime.get('codex')?.length),
|
|
56
58
|
paths: byRuntime.get('codex')?.map((target) => target.path) ?? [],
|
|
57
59
|
autoConfigurable: true,
|
|
58
|
-
recommendation: 'Recommended:
|
|
60
|
+
recommendation: 'Recommended: hosted SAP MCP plus local sap_payments bridge.',
|
|
59
61
|
},
|
|
60
62
|
{
|
|
61
63
|
id: 'claude',
|
|
@@ -63,7 +65,7 @@ export function getDesktopRuntimeStatuses(homeDir) {
|
|
|
63
65
|
detected: Boolean(byRuntime.get('claude')?.length),
|
|
64
66
|
paths: byRuntime.get('claude')?.map((target) => target.path) ?? [],
|
|
65
67
|
autoConfigurable: true,
|
|
66
|
-
recommendation: '
|
|
68
|
+
recommendation: 'Hosted SAP MCP plus local sap_payments bridge in Claude Desktop JSON.',
|
|
67
69
|
},
|
|
68
70
|
{
|
|
69
71
|
id: 'hermes',
|
|
@@ -71,7 +73,7 @@ export function getDesktopRuntimeStatuses(homeDir) {
|
|
|
71
73
|
detected: Boolean(byRuntime.get('hermes')?.length),
|
|
72
74
|
paths: byRuntime.get('hermes')?.map((target) => target.path) ?? [],
|
|
73
75
|
autoConfigurable: true,
|
|
74
|
-
recommendation: '
|
|
76
|
+
recommendation: 'Hosted SAP MCP plus local sap_payments bridge in Hermes global/profile config.',
|
|
75
77
|
},
|
|
76
78
|
{
|
|
77
79
|
id: 'openclaw',
|
|
@@ -79,10 +81,136 @@ export function getDesktopRuntimeStatuses(homeDir) {
|
|
|
79
81
|
detected: Boolean(byRuntime.get('openclaw')?.length),
|
|
80
82
|
paths: byRuntime.get('openclaw')?.map((target) => target.path) ?? [],
|
|
81
83
|
autoConfigurable: true,
|
|
82
|
-
recommendation: '
|
|
84
|
+
recommendation: 'Hosted SAP MCP plus local sap_payments bridge in OpenClaw MCP JSON.',
|
|
83
85
|
},
|
|
84
86
|
];
|
|
85
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* @name getDesktopProfileStatuses
|
|
90
|
+
* @description Lists local SAP MCP config profiles without loading or exposing keypair material.
|
|
91
|
+
*/
|
|
92
|
+
export function getDesktopProfileStatuses(homeDir, platform = process.platform) {
|
|
93
|
+
const configDir = getPreferredConfigDirForPlatform(homeDir, platform);
|
|
94
|
+
if (!existsSync(configDir)) {
|
|
95
|
+
return [];
|
|
96
|
+
}
|
|
97
|
+
const activeProfile = readActiveDesktopProfile(configDir);
|
|
98
|
+
const profiles = [];
|
|
99
|
+
for (const file of readdirSync(configDir)) {
|
|
100
|
+
const profileName = profileNameFromConfigFile(file);
|
|
101
|
+
if (!profileName) {
|
|
102
|
+
continue;
|
|
103
|
+
}
|
|
104
|
+
const profilePath = join(configDir, file);
|
|
105
|
+
const config = readJsonObject(profilePath);
|
|
106
|
+
const walletPath = readStringField(config, 'walletPath');
|
|
107
|
+
const rpcUrl = readStringField(config, 'rpcUrl');
|
|
108
|
+
const mode = readModeField(config, 'mode');
|
|
109
|
+
const externalSignerConfigured = Boolean(readStringField(config, 'externalSignerUrl'));
|
|
110
|
+
const issues = buildProfileReadinessIssues({
|
|
111
|
+
name: profileName,
|
|
112
|
+
mode,
|
|
113
|
+
walletPath,
|
|
114
|
+
walletExists: Boolean(walletPath && existsSync(walletPath)),
|
|
115
|
+
externalSignerConfigured,
|
|
116
|
+
});
|
|
117
|
+
profiles.push({
|
|
118
|
+
name: profileName,
|
|
119
|
+
path: profilePath,
|
|
120
|
+
active: profileName === activeProfile,
|
|
121
|
+
mode,
|
|
122
|
+
rpcUrl,
|
|
123
|
+
network: networkFromRpcUrl(rpcUrl),
|
|
124
|
+
agentPubkey: readStringField(config, 'agentPubkey'),
|
|
125
|
+
walletPath,
|
|
126
|
+
walletExists: Boolean(walletPath && existsSync(walletPath)),
|
|
127
|
+
externalSignerConfigured,
|
|
128
|
+
readiness: issues.length === 0 ? 'ready' : 'needs-attention',
|
|
129
|
+
issues,
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
profiles.sort((a, b) => {
|
|
133
|
+
if (a.active)
|
|
134
|
+
return -1;
|
|
135
|
+
if (b.active)
|
|
136
|
+
return 1;
|
|
137
|
+
return a.name.localeCompare(b.name);
|
|
138
|
+
});
|
|
139
|
+
return profiles;
|
|
140
|
+
}
|
|
141
|
+
function buildProfileReadinessIssues(input) {
|
|
142
|
+
const issues = [];
|
|
143
|
+
if (!input.mode) {
|
|
144
|
+
issues.push(`Profile "${input.name}" has no valid mode.`);
|
|
145
|
+
}
|
|
146
|
+
const needsSigner = input.mode === 'hosted-api'
|
|
147
|
+
|| input.mode === 'local-dev-keypair'
|
|
148
|
+
|| input.mode === 'delegated-session';
|
|
149
|
+
if (needsSigner && !input.walletPath && !input.externalSignerConfigured) {
|
|
150
|
+
issues.push(`Profile "${input.name}" needs a local wallet path or external signer for payments/write tools.`);
|
|
151
|
+
}
|
|
152
|
+
if (needsSigner && input.walletPath && !input.walletExists) {
|
|
153
|
+
issues.push(`Profile "${input.name}" points to a missing wallet file.`);
|
|
154
|
+
}
|
|
155
|
+
return issues;
|
|
156
|
+
}
|
|
157
|
+
function profileNameFromConfigFile(file) {
|
|
158
|
+
if (file === 'config.json') {
|
|
159
|
+
return 'default';
|
|
160
|
+
}
|
|
161
|
+
if (file.startsWith('config-') && file.endsWith('.json')) {
|
|
162
|
+
return file.slice('config-'.length, -'.json'.length);
|
|
163
|
+
}
|
|
164
|
+
return undefined;
|
|
165
|
+
}
|
|
166
|
+
function readActiveDesktopProfile(configDir) {
|
|
167
|
+
const activePath = join(configDir, '.active-profile');
|
|
168
|
+
if (!existsSync(activePath)) {
|
|
169
|
+
return 'default';
|
|
170
|
+
}
|
|
171
|
+
try {
|
|
172
|
+
return readFileSync(activePath, 'utf-8').trim() || 'default';
|
|
173
|
+
}
|
|
174
|
+
catch {
|
|
175
|
+
return 'default';
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
function readJsonObject(path) {
|
|
179
|
+
try {
|
|
180
|
+
const parsed = JSON.parse(readFileSync(path, 'utf-8'));
|
|
181
|
+
return parsed && typeof parsed === 'object' && !Array.isArray(parsed) ? parsed : {};
|
|
182
|
+
}
|
|
183
|
+
catch {
|
|
184
|
+
return {};
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
function readStringField(record, field) {
|
|
188
|
+
const value = record[field];
|
|
189
|
+
return typeof value === 'string' && value.length > 0 ? value : undefined;
|
|
190
|
+
}
|
|
191
|
+
function readModeField(record, field) {
|
|
192
|
+
const value = readStringField(record, field);
|
|
193
|
+
if (value === 'readonly'
|
|
194
|
+
|| value === 'local-dev-keypair'
|
|
195
|
+
|| value === 'external-signer'
|
|
196
|
+
|| value === 'delegated-session'
|
|
197
|
+
|| value === 'hosted-api') {
|
|
198
|
+
return value;
|
|
199
|
+
}
|
|
200
|
+
return undefined;
|
|
201
|
+
}
|
|
202
|
+
function networkFromRpcUrl(rpcUrl) {
|
|
203
|
+
if (!rpcUrl) {
|
|
204
|
+
return undefined;
|
|
205
|
+
}
|
|
206
|
+
if (rpcUrl.includes('devnet')) {
|
|
207
|
+
return 'devnet';
|
|
208
|
+
}
|
|
209
|
+
if (rpcUrl.includes('testnet')) {
|
|
210
|
+
return 'testnet';
|
|
211
|
+
}
|
|
212
|
+
return 'mainnet-beta';
|
|
213
|
+
}
|
|
86
214
|
/**
|
|
87
215
|
* @name validateDesktopWizardDraft
|
|
88
216
|
* @description Returns actionable validation errors before persistence.
|
|
@@ -91,7 +219,7 @@ export function validateDesktopWizardDraft(draft) {
|
|
|
91
219
|
const errors = [];
|
|
92
220
|
if (draft.setupMode === 'payments-only') {
|
|
93
221
|
if (draft.configureRuntimes.length === 0 && !draft.configureCodex && !draft.installAddonBundle) {
|
|
94
|
-
errors.push('Choose at least one runtime or install the local
|
|
222
|
+
errors.push('Choose at least one runtime or install the local bridge reference bundle.');
|
|
95
223
|
}
|
|
96
224
|
return errors;
|
|
97
225
|
}
|
|
@@ -120,7 +248,7 @@ export function validateDesktopWizardDraft(draft) {
|
|
|
120
248
|
* @name saveDesktopWizardDraft
|
|
121
249
|
* @description Persists a desktop wizard draft and installs selected runtime integrations.
|
|
122
250
|
*/
|
|
123
|
-
export async function saveDesktopWizardDraft(draft) {
|
|
251
|
+
export async function saveDesktopWizardDraft(draft, homeDir, platform = process.platform) {
|
|
124
252
|
const errors = validateDesktopWizardDraft(draft);
|
|
125
253
|
if (errors.length > 0) {
|
|
126
254
|
throw new Error(errors.join('\n'));
|
|
@@ -148,7 +276,7 @@ export async function saveDesktopWizardDraft(draft) {
|
|
|
148
276
|
if (draft.configureCodex) {
|
|
149
277
|
selectedRuntimes.add('codex');
|
|
150
278
|
}
|
|
151
|
-
for (const result of installHostedPaymentBridgeConfigs(Array.from(selectedRuntimes))) {
|
|
279
|
+
for (const result of installHostedPaymentBridgeConfigs(Array.from(selectedRuntimes), homeDir, platform)) {
|
|
152
280
|
runtimeActions.push({
|
|
153
281
|
runtime: result.target.label,
|
|
154
282
|
status: 'configured',
|
|
@@ -158,7 +286,7 @@ export async function saveDesktopWizardDraft(draft) {
|
|
|
158
286
|
});
|
|
159
287
|
}
|
|
160
288
|
if (runtimeActions.length === 0 && draft.setupMode === 'full') {
|
|
161
|
-
const codex = installCodexHostedPaymentBridgeConfig();
|
|
289
|
+
const codex = installCodexHostedPaymentBridgeConfig(homeDir, platform);
|
|
162
290
|
runtimeActions.push({
|
|
163
291
|
runtime: 'Codex',
|
|
164
292
|
status: 'configured',
|
|
@@ -168,14 +296,78 @@ export async function saveDesktopWizardDraft(draft) {
|
|
|
168
296
|
});
|
|
169
297
|
}
|
|
170
298
|
if (draft.installAddonBundle) {
|
|
171
|
-
const
|
|
299
|
+
const addonDir = join(getPreferredConfigDirForPlatform(homeDir, platform), 'addons', 'x402-paid-call');
|
|
300
|
+
const addon = installX402PaidCallAddon(addonDir);
|
|
172
301
|
runtimeActions.push({
|
|
173
|
-
runtime: '
|
|
302
|
+
runtime: 'SAP MCP payment bridge bundle',
|
|
174
303
|
status: 'installed',
|
|
175
304
|
path: addon.targetDir,
|
|
176
|
-
message: `Installed ${addon.addonId}
|
|
305
|
+
message: `Installed ${addon.addonId} reference bundle.`,
|
|
177
306
|
});
|
|
178
307
|
}
|
|
179
|
-
|
|
308
|
+
const readiness = buildDesktopReadiness({
|
|
309
|
+
profileName: draft.setupMode === 'full' ? profileName : undefined,
|
|
310
|
+
selectedRuntimes: Array.from(selectedRuntimes),
|
|
311
|
+
runtimeActions,
|
|
312
|
+
homeDir,
|
|
313
|
+
platform,
|
|
314
|
+
});
|
|
315
|
+
return { setup, setupMode: draft.setupMode, readiness, runtimeActions };
|
|
316
|
+
}
|
|
317
|
+
function buildDesktopReadiness(input) {
|
|
318
|
+
const profiles = getDesktopProfileStatuses(input.homeDir, input.platform);
|
|
319
|
+
const activeProfile = input.profileName
|
|
320
|
+
? profiles.find((profile) => profile.name === input.profileName)
|
|
321
|
+
: profiles.find((profile) => profile.active);
|
|
322
|
+
const profileIssues = activeProfile
|
|
323
|
+
? activeProfile.issues
|
|
324
|
+
: ['No active local SAP MCP profile was found.'];
|
|
325
|
+
const runtimeIssues = collectRuntimeReadinessIssues(input);
|
|
326
|
+
const nextSteps = buildReadinessNextSteps(profileIssues, runtimeIssues);
|
|
327
|
+
return {
|
|
328
|
+
status: profileIssues.length === 0 && runtimeIssues.length === 0 ? 'ready' : 'needs-attention',
|
|
329
|
+
profileName: activeProfile?.name,
|
|
330
|
+
profileIssues,
|
|
331
|
+
runtimeIssues,
|
|
332
|
+
nextSteps,
|
|
333
|
+
};
|
|
334
|
+
}
|
|
335
|
+
function collectRuntimeReadinessIssues(input) {
|
|
336
|
+
const targets = discoverMcpClientTargets(input.homeDir, input.platform);
|
|
337
|
+
const selected = new Set(input.selectedRuntimes.length > 0 ? input.selectedRuntimes : ['codex']);
|
|
338
|
+
const configuredPaths = new Set(input.runtimeActions.map((action) => action.path).filter((path) => Boolean(path)));
|
|
339
|
+
const runtimeIssues = [];
|
|
340
|
+
for (const target of targets) {
|
|
341
|
+
const runtimeId = target.id;
|
|
342
|
+
if (!selected.has(runtimeId) || !configuredPaths.has(target.path) || !existsSync(target.path)) {
|
|
343
|
+
continue;
|
|
344
|
+
}
|
|
345
|
+
const content = readFileSync(target.path, 'utf-8');
|
|
346
|
+
const issues = validateHostedPaymentBridgeContent(target, content, input.platform);
|
|
347
|
+
if (issues.length > 0) {
|
|
348
|
+
runtimeIssues.push({
|
|
349
|
+
runtime: target.label,
|
|
350
|
+
path: target.path,
|
|
351
|
+
issues,
|
|
352
|
+
});
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
return runtimeIssues;
|
|
356
|
+
}
|
|
357
|
+
function buildReadinessNextSteps(profileIssues, runtimeIssues) {
|
|
358
|
+
const nextSteps = [];
|
|
359
|
+
if (profileIssues.some((issue) => issue.includes('missing wallet file'))) {
|
|
360
|
+
nextSteps.push('Open Full hosted SAP MCP setup and create a new dedicated wallet, or update the profile to an existing wallet/external signer.');
|
|
361
|
+
}
|
|
362
|
+
if (profileIssues.some((issue) => issue.includes('No active local SAP MCP profile'))) {
|
|
363
|
+
nextSteps.push('Create a named SAP MCP profile with the wizard before using hosted paid/write tools.');
|
|
364
|
+
}
|
|
365
|
+
if (runtimeIssues.length > 0) {
|
|
366
|
+
nextSteps.push('Run Repair payment bridge only for the affected runtimes, then fully restart the agent runtime.');
|
|
367
|
+
}
|
|
368
|
+
if (nextSteps.length === 0) {
|
|
369
|
+
nextSteps.push('Restart the selected agent runtime so it reloads hosted sap plus local sap_payments.');
|
|
370
|
+
}
|
|
371
|
+
return nextSteps;
|
|
180
372
|
}
|
|
181
373
|
//# sourceMappingURL=desktop-flow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"desktop-flow.js","sourceRoot":"","sources":["../../src/wizard-core/desktop-flow.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"desktop-flow.js","sourceRoot":"","sources":["../../src/wizard-core/desktop-flow.ts"],"names":[],"mappings":"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"}
|
|
@@ -74,7 +74,7 @@ Desktop flow:
|
|
|
74
74
|
2. Create or import a dedicated SAP MCP wallet.
|
|
75
75
|
3. Set policy limits and optional Bento Guard metadata.
|
|
76
76
|
4. Detect local agent runtimes.
|
|
77
|
-
5. Configure hosted MCP and the local
|
|
77
|
+
5. Configure hosted MCP and the local SAP MCP `sap_payments` bridge where supported.
|
|
78
78
|
6. Show a final review before writing files.
|
|
79
79
|
|
|
80
80
|
Release artifacts are produced as macOS DMG/ZIP, Windows NSIS EXE, and Linux tar.gz. See [14. Desktop Wizard Release](14_DESKTOP_WIZARD_RELEASE.md).
|
|
@@ -106,12 +106,17 @@ Do not inject keypair bytes, hard-coded legacy wallet paths, or stale RPC overri
|
|
|
106
106
|
For hosted paid/write tools, clients may also need a local `sap_payments` bridge that exposes only:
|
|
107
107
|
|
|
108
108
|
```txt
|
|
109
|
+
sap_payments_readiness
|
|
110
|
+
sap_payments_call_paid_tool
|
|
111
|
+
sap_payments_prepare_challenge
|
|
112
|
+
sap_payments_sign_challenge
|
|
113
|
+
sap_payments_verify_receipt
|
|
109
114
|
sap_x402_paid_call
|
|
110
115
|
sap_profile_current
|
|
111
116
|
sap_x402_estimate_cost
|
|
112
117
|
```
|
|
113
118
|
|
|
114
|
-
This bridge
|
|
119
|
+
This bridge obtains x402 challenges, signs payment proofs locally with the active SAP MCP profile, retries hosted tool calls, and inspects receipts.
|
|
115
120
|
|
|
116
121
|
## 03.7 Config CLI
|
|
117
122
|
|
|
@@ -46,10 +46,22 @@ The retry must preserve the initialized `mcp-session-id` and the same MCP method
|
|
|
46
46
|
and params that produced the challenge. JSON-RPC `id` is not part of the
|
|
47
47
|
canonical paid request hash.
|
|
48
48
|
|
|
49
|
-
## 06.4 Local x402
|
|
49
|
+
## 06.4 Local x402 Challenge Toolchain
|
|
50
50
|
|
|
51
51
|
Some clients can connect to hosted Streamable HTTP MCP but cannot yet sign and
|
|
52
|
-
replay x402 challenges natively. SAP MCP ships a local
|
|
52
|
+
replay x402 challenges natively. SAP MCP ships a local challenge toolchain for
|
|
53
|
+
that case. The recommended high-level MCP tool is:
|
|
54
|
+
|
|
55
|
+
```text
|
|
56
|
+
sap_payments_call_paid_tool
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
It obtains the hosted x402 challenge, validates the price and payment
|
|
60
|
+
coordinates, signs locally, retries the exact hosted MCP request, and returns
|
|
61
|
+
the tool result plus receipt. The legacy alias `sap_x402_paid_call` remains for
|
|
62
|
+
existing runtimes.
|
|
63
|
+
|
|
64
|
+
CLI equivalent:
|
|
53
65
|
|
|
54
66
|
```bash
|
|
55
67
|
npm exec --yes --package @oobe-protocol-labs/sap-mcp-server -- sap-mcp-x402-paid-call \
|
|
@@ -60,8 +72,8 @@ npm exec --yes --package @oobe-protocol-labs/sap-mcp-server -- sap-mcp-x402-paid
|
|
|
60
72
|
--confirm
|
|
61
73
|
```
|
|
62
74
|
|
|
63
|
-
The wizard can install
|
|
64
|
-
OpenClaw, or custom runtimes:
|
|
75
|
+
The wizard can install local bridge reference metadata and snippets for Hermes,
|
|
76
|
+
Claude, Codex, OpenClaw, or custom runtimes:
|
|
65
77
|
|
|
66
78
|
```text
|
|
67
79
|
~/.config/mcp-sap/addons/x402-paid-call
|
|
@@ -73,9 +85,20 @@ the hosted call, and prints the settlement receipt. It does not send keypair
|
|
|
73
85
|
bytes to the hosted server. It fails closed when the active profile has no
|
|
74
86
|
supported local payment signer.
|
|
75
87
|
|
|
76
|
-
Local stdio SAP MCP may expose
|
|
77
|
-
user-controlled wallet profile
|
|
78
|
-
|
|
88
|
+
Local stdio SAP MCP may expose these free payment bridge tools when the process
|
|
89
|
+
has a user-controlled wallet profile:
|
|
90
|
+
|
|
91
|
+
| Tool | Purpose |
|
|
92
|
+
| --- | --- |
|
|
93
|
+
| `sap_payments_readiness` | Free local readiness check for hosted MCP, active profile, signer, SOL/USDC balance, and commerce policy limits. Call this first for paid/write workflows. |
|
|
94
|
+
| `sap_payments_call_paid_tool` | End-to-end paid hosted tool execution; preferred for agents. |
|
|
95
|
+
| `sap_payments_prepare_challenge` | Fetch and parse a hosted x402 challenge without signing. |
|
|
96
|
+
| `sap_payments_sign_challenge` | Sign a parsed challenge with the local SAP profile signer. |
|
|
97
|
+
| `sap_payments_verify_receipt` | Decode a payment response/receipt header for inspection. |
|
|
98
|
+
| `sap_x402_paid_call` | Backward-compatible alias for the high-level paid-call tool. |
|
|
99
|
+
|
|
100
|
+
The public hosted server should not advertise the signing helpers in
|
|
101
|
+
non-custodial mode because signing belongs on the user's machine.
|
|
79
102
|
|
|
80
103
|
Transient settlement errors such as `BlockhashNotFound`,
|
|
81
104
|
`transaction_simulation_failed`, `smart_wallet_simulation_failed`, `node is
|
|
@@ -131,7 +131,7 @@ Codex supports Streamable HTTP MCP servers with URL-based TOML entries. Use loca
|
|
|
131
131
|
```toml
|
|
132
132
|
[mcp_servers.sap]
|
|
133
133
|
command = "npx"
|
|
134
|
-
args = ["--yes", "--package", "@oobe-protocol-labs/sap-mcp-server", "sap-mcp-server"]
|
|
134
|
+
args = ["--yes", "--package", "@oobe-protocol-labs/sap-mcp-server@0.9.0", "sap-mcp-server"]
|
|
135
135
|
|
|
136
136
|
[mcp_servers.sap.env]
|
|
137
137
|
SAP_MCP_ALLOW_ENV_CONFIG_OVERRIDE = "false"
|
|
@@ -45,10 +45,10 @@ The desktop wizard supports two setup modes:
|
|
|
45
45
|
|
|
46
46
|
| Mode | Behavior |
|
|
47
47
|
| --- | --- |
|
|
48
|
-
| Full SAP MCP setup | Creates or updates the local SAP MCP profile, wallet boundary, policy limits, hosted MCP runtime entries, and
|
|
49
|
-
|
|
|
48
|
+
| Full SAP MCP setup | Creates or updates the local SAP MCP profile, wallet boundary, policy limits, hosted MCP runtime entries, and native local payment bridge. |
|
|
49
|
+
| Payment bridge repair | Skips profile/wallet writes and only installs or repairs hosted MCP plus local `sap_payments` runtime entries. |
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
Payment bridge repair mode is for users who already ran a wizard, can see hosted SAP MCP tools, but cannot execute paid/write calls because their runtime does not yet attach payment proofs.
|
|
52
52
|
|
|
53
53
|
### 14.4.1 Codex
|
|
54
54
|
|
|
@@ -66,9 +66,15 @@ url = "https://mcp.sap.oobeprotocol.ai/mcp"
|
|
|
66
66
|
```toml
|
|
67
67
|
[mcp_servers.sap_payments]
|
|
68
68
|
command = "npx"
|
|
69
|
-
args = ["--yes", "--package", "@oobe-protocol-labs/sap-mcp-server", "sap-mcp-server"]
|
|
70
|
-
|
|
69
|
+
args = ["--yes", "--package", "@oobe-protocol-labs/sap-mcp-server@0.9.0", "sap-mcp-server"]
|
|
70
|
+
startup_timeout_sec = 300
|
|
71
71
|
tool_timeout_sec = 300
|
|
72
|
+
|
|
73
|
+
[mcp_servers.sap_payments.env]
|
|
74
|
+
SAP_MCP_ALLOW_ENV_CONFIG_OVERRIDE = "false"
|
|
75
|
+
SAP_MCP_PAYMENTS_BRIDGE_ONLY = "true"
|
|
76
|
+
SAP_ALLOWED_TOOLS = "all"
|
|
77
|
+
SAP_LOG_LEVEL = "info"
|
|
72
78
|
```
|
|
73
79
|
|
|
74
80
|
On Windows, use `npx.cmd`.
|
|
@@ -120,6 +126,11 @@ OpenClaw receives root `mcpServers` JSON when `~/.openclaw/mcp.json` is selected
|
|
|
120
126
|
Every supported runtime may also receive a local `sap_payments` server with only these enabled tools:
|
|
121
127
|
|
|
122
128
|
```txt
|
|
129
|
+
sap_payments_readiness
|
|
130
|
+
sap_payments_call_paid_tool
|
|
131
|
+
sap_payments_prepare_challenge
|
|
132
|
+
sap_payments_sign_challenge
|
|
133
|
+
sap_payments_verify_receipt
|
|
123
134
|
sap_x402_paid_call
|
|
124
135
|
sap_profile_current
|
|
125
136
|
sap_x402_estimate_cost
|
|
@@ -202,6 +213,15 @@ For signed tagged GitHub release builds, the macOS job uses these secrets when t
|
|
|
202
213
|
| `APPLE_APP_SPECIFIC_PASSWORD` | App-specific password for notarization. |
|
|
203
214
|
| `APPLE_TEAM_ID` | Apple Developer Team ID. |
|
|
204
215
|
|
|
216
|
+
For signed Windows tagged release builds, the Windows job uses these secrets when they are configured:
|
|
217
|
+
|
|
218
|
+
| Secret | Purpose |
|
|
219
|
+
| --- | --- |
|
|
220
|
+
| `WINDOWS_CSC_LINK` or `WIN_CSC_LINK` | Base64-encoded `.pfx/.p12` Authenticode certificate, or a secure URL supported by Electron Builder. |
|
|
221
|
+
| `WINDOWS_CSC_KEY_PASSWORD` or `WIN_CSC_KEY_PASSWORD` | Password for the Windows code signing certificate bundle. |
|
|
222
|
+
|
|
223
|
+
Every desktop build publishes `SHA256SUMS.txt` next to the DMG/ZIP/EXE/tar.gz artifacts.
|
|
224
|
+
|
|
205
225
|
The Electron Builder macOS config uses:
|
|
206
226
|
|
|
207
227
|
1. hardened runtime;
|