@springbrand/cli 0.1.5 → 0.1.6-alpha.1

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.
@@ -0,0 +1,131 @@
1
+ /** Public installation feedback. Diagnostic evidence is deliberately separate. */
2
+ import { z } from 'zod';
3
+ import { doctorContinuation } from './connect-result.js';
4
+ import { ALL_HARNESSES } from './harness-detect.js';
5
+ const statusSchema = z.enum(['ready', 'pending', 'failed']);
6
+ export const installReportSchema = z.object({
7
+ schema_version: z.literal(2),
8
+ status: statusSchema,
9
+ message: z.string(),
10
+ steps: z.object({ cli: statusSchema, mcp: statusSchema }),
11
+ next_action: z.object({ actor: z.enum(['agent', 'user']), instruction: z.string() }).nullable(),
12
+ error_code: z.string().optional(),
13
+ });
14
+ function report(mcp, message, next, errorCode) {
15
+ // Reaching this reporter proves that the CLI is installed and running.
16
+ const status = mcp;
17
+ return installReportSchema.parse({ schema_version: 2, status, message, steps: { cli: 'ready', mcp },
18
+ next_action: status === 'ready' ? null : next, ...(errorCode ? { error_code: errorCode } : {}) });
19
+ }
20
+ const action = (actor, instruction) => ({ actor, instruction });
21
+ export function installError(code, message, instruction) {
22
+ return report('failed', message, action('user', instruction), code);
23
+ }
24
+ const ERROR_MESSAGES = {
25
+ api_key_required: 'An API key is required.',
26
+ key_verification_unavailable: 'Authentication could not be verified.',
27
+ invalid_api_key: 'The API key was rejected.',
28
+ key_rejected: 'The API key was rejected.',
29
+ key_malformed: 'The API key format is invalid.',
30
+ key_environment_mismatch: 'The API key belongs to a different environment.',
31
+ harness_not_installed: 'The installation target was not detected.',
32
+ unsupported: 'The installation target is not supported.',
33
+ harness_command_unsupported: 'The installation command is not supported.',
34
+ harness_too_old: 'The installation target requires an update.',
35
+ key_auth_unsupported: 'The authentication method is not supported.',
36
+ invalid_config: 'MCP configuration could not be saved.',
37
+ };
38
+ function errorMessage(code) {
39
+ return ERROR_MESSAGES[code] ?? 'Installation could not be completed.';
40
+ }
41
+ /** No configuration/key probe is promoted to evidence of loaded Host tools. */
42
+ export function connectInstallReport(result, continuation = false) {
43
+ const host = result.host;
44
+ if (result.error) {
45
+ if (result.error.code === 'api_key_required') {
46
+ return report('pending', errorMessage(result.error.code), action('user', 'Provide an API key for the selected environment, then retry the same Host installation.'));
47
+ }
48
+ if (result.error.code === 'key_verification_unavailable') {
49
+ return report('pending', errorMessage(result.error.code), action('user', 'Retry the same installation when endpoint access is available. Keep the same API key and authentication mode.'));
50
+ }
51
+ const keyError = ['invalid_api_key', 'key_malformed', 'key_rejected', 'key_environment_mismatch'].includes(result.error.code);
52
+ return report('failed', errorMessage(result.error.code), action('user', keyError
53
+ ? 'Confirm or replace the API key for the selected environment, then retry the same installation. Do not switch to OAuth automatically.'
54
+ : 'Resolve the reported installation error, then retry the same Host and authentication mode.'), result.error.code);
55
+ }
56
+ if (result.auth.status === 'failed') {
57
+ return report('failed', 'The API key was rejected.', action('user', 'Confirm or replace the API key, then retry the same installation. Do not switch to OAuth automatically.'), 'invalid_api_key');
58
+ }
59
+ if (result.health.status === 'failed') {
60
+ return report('failed', 'The MCP endpoint is unreachable.', action('user', `Check network access to the selected endpoint, then run ${result.continuation}.`), 'endpoint_unreachable');
61
+ }
62
+ if (result.configuration_status !== 'verified') {
63
+ if (result.configuration_status === 'missing') {
64
+ const target = ALL_HARNESSES.find(name => name === host);
65
+ const command = target ? doctorContinuation(target, result.mcp_url)
66
+ .replace(`sp doctor --harness ${target}`, `sp connect ${target}`) : undefined;
67
+ return report('pending', 'MCP configuration is missing.', command
68
+ ? action('agent', `Run ${command}.${result.auth.mode === 'api_key'
69
+ ? ' Supply the previously selected API key through secure input; do not run without it or switch to OAuth.' : ''}`)
70
+ : action('user', 'Select a supported installation target.'));
71
+ }
72
+ if (result.configuration_status === 'mismatch') {
73
+ return report('pending', 'MCP configuration does not match the installation target.', action('agent', `Inspect the selected MCP entry and run ${result.continuation} --verbose. Preserve the selected endpoint and authentication mode.`));
74
+ }
75
+ return report('pending', 'MCP configuration could not be read.', action('agent', `Inspect configuration access with ${result.continuation} --verbose before making changes.`));
76
+ }
77
+ if (result.auth.status === 'pending') {
78
+ const instruction = result.next_action ?? 'Complete native MCP authorization in the selected Host.';
79
+ return report('pending', 'Authorization is pending.', action(instruction.startsWith('Run: ') ? 'agent' : 'user', instruction));
80
+ }
81
+ if (result.auth.status !== 'verified') {
82
+ return report('pending', 'Authentication could not be verified.', action('user', 'Make the credential referenced by the Host configuration available to this process, then rerun the same doctor command. Do not replace the key unless it is rejected.'));
83
+ }
84
+ if (!continuation) {
85
+ return report('pending', 'Configuration verification is pending.', action('agent', `Run ${result.continuation}.`));
86
+ }
87
+ if (result.host_runtime_verified) {
88
+ return report('ready', 'Installation verified.', null);
89
+ }
90
+ return report('pending', 'Session verification is pending.', action('agent', `Verify ${result.mcp_entry_name} with a read-only MCP call in the current ${host} session. If tools are unavailable, ask the user to reload the Host and open a new session, then retry the call.`));
91
+ }
92
+ export function doctorInstallReport(source) {
93
+ const hosts = source.harnesses.length === 1 ? source.harnesses : source.harnesses.filter(host => host.detected);
94
+ if (hosts.length !== 1) {
95
+ return report('pending', hosts.length ? 'An installation target is required.' : 'No supported installation target was detected.', action('user', hosts.length ? 'Choose the installation target, then run sp doctor --harness <host> --json.' : 'Install or select a supported Host, then run doctor for that Host.'));
96
+ }
97
+ const host = hosts[0];
98
+ if (!host.detected)
99
+ return report('pending', 'The installation target was not detected.', action('user', `Install or open ${host.harness}, then retry the same doctor command.`));
100
+ const bootstrap = source.bootstrap?.find(item => item.host === host.harness);
101
+ if (!bootstrap)
102
+ return report('pending', 'Configuration verification is pending.', action('agent', 'Run doctor again with an explicit --harness and --url.'));
103
+ const result = connectInstallReport(bootstrap, true);
104
+ if (result.status === 'failed' || bootstrap.configuration_status !== 'verified')
105
+ return result;
106
+ // Native OAuth does not require a separate CLI API key. Key-mode installs do.
107
+ const cliChecks = source.checks.filter(check => check.scope === 'cli' && bootstrap.auth.mode === 'api_key');
108
+ if (cliChecks.some(check => check.status === 'fail')) {
109
+ return report('failed', 'The authentication check failed.', action('user', 'Check the saved CLI credential and retry the same doctor command. Do not switch authentication modes automatically.'), 'cli_auth_failed');
110
+ }
111
+ if (cliChecks.some(check => check.status === 'warn')) {
112
+ return report('pending', 'Authentication could not be verified.', action('user', 'Check credential availability and endpoint access, then retry the same doctor command.'));
113
+ }
114
+ const failed = source.checks.find(check => check.harness === host.harness && check.status === 'fail');
115
+ if (failed) {
116
+ return report('failed', 'An installation check failed.', action('user', `Run ${bootstrap.continuation} --verbose to inspect the failed check.`), failed.id);
117
+ }
118
+ return result;
119
+ }
120
+ export function renderInstallReport(value) {
121
+ const label = { ready: 'Ready', pending: 'Pending', failed: 'Failed' };
122
+ return [`SpringBrand: ${label[value.status]}`, value.message,
123
+ `CLI: ${label[value.steps.cli]}`, `MCP: ${label[value.steps.mcp]}`,
124
+ ...(value.next_action ? [`Next (${value.next_action.actor}): ${value.next_action.instruction}`] : []),
125
+ ].join('\n');
126
+ }
127
+ /** Pending is resumable, distinct from installation failure. */
128
+ export function installExitCode(value) {
129
+ return value.status === 'ready' ? 0 : value.status === 'pending' ? 4 : 1;
130
+ }
131
+ //# sourceMappingURL=install-report.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-report.js","sourceRoot":"","sources":["../../src/lib/install-report.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@springbrand/cli",
3
- "version": "0.1.5",
3
+ "version": "0.1.6-alpha.1",
4
4
  "description": "SpringBrand CLI — connect MCP hosts to the SpringBrand Gateway",
5
5
  "type": "module",
6
6
  "bin": {