@nordsym/apiclaw 1.3.7 → 1.3.8
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/README.md +420 -200
- package/convex/_generated/api.d.ts +4 -0
- package/convex/agents.ts +403 -0
- package/convex/directCall.ts +80 -0
- package/convex/earnProgress.ts +753 -0
- package/convex/logs.ts +17 -0
- package/convex/providerKeys.ts +82 -2
- package/convex/schema.ts +71 -2
- package/convex/workspaces.ts +84 -2
- package/dist/adapters/base.d.ts +112 -0
- package/dist/adapters/base.d.ts.map +1 -0
- package/dist/adapters/base.js +247 -0
- package/dist/adapters/base.js.map +1 -0
- package/dist/adapters/claude-desktop.d.ts +12 -0
- package/dist/adapters/claude-desktop.d.ts.map +1 -0
- package/dist/adapters/claude-desktop.js +36 -0
- package/dist/adapters/claude-desktop.js.map +1 -0
- package/dist/adapters/cline.d.ts +20 -0
- package/dist/adapters/cline.d.ts.map +1 -0
- package/dist/adapters/cline.js +77 -0
- package/dist/adapters/cline.js.map +1 -0
- package/dist/adapters/continue.d.ts +26 -0
- package/dist/adapters/continue.d.ts.map +1 -0
- package/dist/adapters/continue.js +68 -0
- package/dist/adapters/continue.js.map +1 -0
- package/dist/adapters/cursor.d.ts +12 -0
- package/dist/adapters/cursor.d.ts.map +1 -0
- package/dist/adapters/cursor.js +38 -0
- package/dist/adapters/cursor.js.map +1 -0
- package/dist/adapters/custom.d.ts +47 -0
- package/dist/adapters/custom.d.ts.map +1 -0
- package/dist/adapters/custom.js +146 -0
- package/dist/adapters/custom.js.map +1 -0
- package/dist/adapters/detect.d.ts +69 -0
- package/dist/adapters/detect.d.ts.map +1 -0
- package/dist/adapters/detect.js +158 -0
- package/dist/adapters/detect.js.map +1 -0
- package/dist/adapters/index.d.ts +21 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +23 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/windsurf.d.ts +12 -0
- package/dist/adapters/windsurf.d.ts.map +1 -0
- package/dist/adapters/windsurf.js +39 -0
- package/dist/adapters/windsurf.js.map +1 -0
- package/dist/bin.d.ts +9 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +19 -0
- package/dist/bin.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +34 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +312 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/index.d.ts +9 -0
- package/dist/cli/commands/index.d.ts.map +1 -0
- package/dist/cli/commands/index.js +9 -0
- package/dist/cli/commands/index.js.map +1 -0
- package/dist/cli/commands/restore.d.ts +50 -0
- package/dist/cli/commands/restore.d.ts.map +1 -0
- package/dist/cli/commands/restore.js +260 -0
- package/dist/cli/commands/restore.js.map +1 -0
- package/dist/cli/commands/setup.d.ts +19 -0
- package/dist/cli/commands/setup.d.ts.map +1 -0
- package/dist/cli/commands/setup.js +206 -0
- package/dist/cli/commands/setup.js.map +1 -0
- package/dist/cli/commands/uninstall.d.ts +37 -0
- package/dist/cli/commands/uninstall.d.ts.map +1 -0
- package/dist/cli/commands/uninstall.js +189 -0
- package/dist/cli/commands/uninstall.js.map +1 -0
- package/dist/cli/index.d.ts +7 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +97 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/discovery.d.ts +6 -2
- package/dist/discovery.d.ts.map +1 -1
- package/dist/discovery.js +296 -2
- package/dist/discovery.js.map +1 -1
- package/dist/enterprise/env.d.ts +56 -0
- package/dist/enterprise/env.d.ts.map +1 -0
- package/dist/enterprise/env.js +124 -0
- package/dist/enterprise/env.js.map +1 -0
- package/dist/enterprise/index.d.ts +7 -0
- package/dist/enterprise/index.d.ts.map +1 -0
- package/dist/enterprise/index.js +7 -0
- package/dist/enterprise/index.js.map +1 -0
- package/dist/enterprise/script-generator.d.ts +32 -0
- package/dist/enterprise/script-generator.d.ts.map +1 -0
- package/dist/enterprise/script-generator.js +461 -0
- package/dist/enterprise/script-generator.js.map +1 -0
- package/dist/execute.d.ts +21 -0
- package/dist/execute.d.ts.map +1 -1
- package/dist/execute.js +231 -0
- package/dist/execute.js.map +1 -1
- package/dist/index.js +79 -7
- package/dist/index.js.map +1 -1
- package/dist/stripe.d.ts +1 -1
- package/dist/stripe.js +1 -1
- package/dist/stripe.js.map +1 -1
- package/dist/types.d.ts +29 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/ui/colors.d.ts +111 -0
- package/dist/ui/colors.d.ts.map +1 -0
- package/dist/ui/colors.js +185 -0
- package/dist/ui/colors.js.map +1 -0
- package/dist/ui/errors.d.ts +69 -0
- package/dist/ui/errors.d.ts.map +1 -0
- package/dist/ui/errors.js +334 -0
- package/dist/ui/errors.js.map +1 -0
- package/dist/ui/index.d.ts +10 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +14 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/prompts.d.ts +88 -0
- package/dist/ui/prompts.d.ts.map +1 -0
- package/dist/ui/prompts.js +295 -0
- package/dist/ui/prompts.js.map +1 -0
- package/dist/ui/spinner.d.ts +112 -0
- package/dist/ui/spinner.d.ts.map +1 -0
- package/dist/ui/spinner.js +229 -0
- package/dist/ui/spinner.js.map +1 -0
- package/dist/utils/backup.d.ts +48 -0
- package/dist/utils/backup.d.ts.map +1 -0
- package/dist/utils/backup.js +182 -0
- package/dist/utils/backup.js.map +1 -0
- package/dist/utils/config.d.ts +80 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +221 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/os.d.ts +45 -0
- package/dist/utils/os.d.ts.map +1 -0
- package/dist/utils/os.js +106 -0
- package/dist/utils/os.js.map +1 -0
- package/dist/utils/paths.d.ts +38 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +160 -0
- package/dist/utils/paths.js.map +1 -0
- package/docs/PRD-BILLING.md +226 -0
- package/docs/PRD-EARN-SYSTEM.md +261 -0
- package/docs/PRD-MCP-AUTO-SETUP.md +623 -0
- package/docs/enterprise-deployment.md +728 -0
- package/landing/next.config.mjs +14 -0
- package/landing/public/stats.json +4 -2
- package/landing/scripts/generate-stats.js +12 -0
- package/landing/src/app/api/workspace-auth/magic-link/route.ts +6 -3
- package/landing/src/app/auth/verify/page.tsx +11 -4
- package/landing/src/app/docs/page.tsx +1 -1
- package/landing/src/app/join/page.tsx +49 -0
- package/landing/src/app/login/page.tsx +7 -1
- package/landing/src/app/page.tsx +13 -28
- package/landing/src/app/providers/register/page.tsx +1 -1
- package/landing/src/app/workspace/page.tsx +483 -710
- package/landing/src/components/CheckoutButton.tsx +1 -1
- package/landing/src/components/EarnCreditsTab.tsx +842 -0
- package/landing/src/lib/stats.json +3 -1
- package/package.json +9 -2
- package/src/adapters/base.ts +363 -0
- package/src/adapters/claude-desktop.ts +41 -0
- package/src/adapters/cline.ts +88 -0
- package/src/adapters/continue.ts +91 -0
- package/src/adapters/cursor.ts +43 -0
- package/src/adapters/custom.ts +188 -0
- package/src/adapters/detect.ts +202 -0
- package/src/adapters/index.ts +47 -0
- package/src/adapters/windsurf.ts +44 -0
- package/src/bin.ts +19 -0
- package/src/cli/commands/doctor.ts +367 -0
- package/src/cli/commands/index.ts +9 -0
- package/src/cli/commands/restore.ts +333 -0
- package/src/cli/commands/setup.ts +276 -0
- package/src/cli/commands/uninstall.ts +240 -0
- package/src/cli/index.ts +107 -0
- package/src/discovery.ts +328 -3
- package/src/enterprise/env.ts +156 -0
- package/src/enterprise/index.ts +7 -0
- package/src/enterprise/script-generator.ts +481 -0
- package/src/execute.ts +256 -0
- package/src/index.ts +85 -7
- package/src/stripe.ts +1 -1
- package/src/types.ts +32 -0
- package/src/ui/colors.ts +219 -0
- package/src/ui/errors.ts +394 -0
- package/src/ui/index.ts +17 -0
- package/src/ui/prompts.ts +390 -0
- package/src/ui/spinner.ts +325 -0
- package/src/utils/backup.ts +224 -0
- package/src/utils/config.ts +315 -0
- package/src/utils/os.ts +124 -0
- package/src/utils/paths.ts +203 -0
- package/landing/tsconfig.tsbuildinfo +0 -1
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* APIClaw MCP Auto-Setup - Error Handling
|
|
3
|
+
*
|
|
4
|
+
* Comprehensive error formatting with actionable help.
|
|
5
|
+
* Every error includes context, suggestions, and help links.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Error codes for APIClaw setup
|
|
9
|
+
*/
|
|
10
|
+
export declare enum ErrorCode {
|
|
11
|
+
CONFIG_NOT_FOUND = "CONFIG_NOT_FOUND",
|
|
12
|
+
PERMISSION_DENIED = "PERMISSION_DENIED",
|
|
13
|
+
INVALID_JSON = "INVALID_JSON",
|
|
14
|
+
WRITE_FAILED = "WRITE_FAILED",
|
|
15
|
+
BACKUP_FAILED = "BACKUP_FAILED",
|
|
16
|
+
ALREADY_CONFIGURED = "ALREADY_CONFIGURED",
|
|
17
|
+
INVALID_CONFIG = "INVALID_CONFIG",
|
|
18
|
+
MERGE_CONFLICT = "MERGE_CONFLICT",
|
|
19
|
+
CLIENT_NOT_FOUND = "CLIENT_NOT_FOUND",
|
|
20
|
+
UNSUPPORTED_CLIENT = "UNSUPPORTED_CLIENT",
|
|
21
|
+
NETWORK_ERROR = "NETWORK_ERROR",
|
|
22
|
+
AUTH_FAILED = "AUTH_FAILED",
|
|
23
|
+
UNSUPPORTED_OS = "UNSUPPORTED_OS",
|
|
24
|
+
NODE_VERSION = "NODE_VERSION",
|
|
25
|
+
UNKNOWN = "UNKNOWN"
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* APIClaw error with rich context
|
|
29
|
+
*/
|
|
30
|
+
export declare class ApiclawError extends Error {
|
|
31
|
+
readonly code: ErrorCode;
|
|
32
|
+
readonly context?: Record<string, unknown> | undefined;
|
|
33
|
+
constructor(code: ErrorCode, message: string, context?: Record<string, unknown> | undefined);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Format an error for terminal output
|
|
37
|
+
*/
|
|
38
|
+
export declare function formatError(error: Error | ApiclawError): string;
|
|
39
|
+
/**
|
|
40
|
+
* Print an error to stderr
|
|
41
|
+
*/
|
|
42
|
+
export declare function printError(error: Error | ApiclawError): void;
|
|
43
|
+
/**
|
|
44
|
+
* Create a typed error
|
|
45
|
+
*/
|
|
46
|
+
export declare function createError(code: ErrorCode, message?: string, context?: Record<string, unknown>): ApiclawError;
|
|
47
|
+
/**
|
|
48
|
+
* Wrap a function with error handling
|
|
49
|
+
*/
|
|
50
|
+
export declare function withErrorHandling<T>(fn: () => Promise<T>, options?: {
|
|
51
|
+
exitOnError?: boolean;
|
|
52
|
+
}): Promise<T | undefined>;
|
|
53
|
+
/**
|
|
54
|
+
* Format a warning message
|
|
55
|
+
*/
|
|
56
|
+
export declare function formatWarning(message: string, suggestions?: string[]): string;
|
|
57
|
+
/**
|
|
58
|
+
* Print a warning to stderr
|
|
59
|
+
*/
|
|
60
|
+
export declare function printWarning(message: string, suggestions?: string[]): void;
|
|
61
|
+
/**
|
|
62
|
+
* Format an info message
|
|
63
|
+
*/
|
|
64
|
+
export declare function formatInfo(message: string): string;
|
|
65
|
+
/**
|
|
66
|
+
* Format a success message
|
|
67
|
+
*/
|
|
68
|
+
export declare function formatSuccess(message: string): string;
|
|
69
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/ui/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,oBAAY,SAAS;IAEnB,gBAAgB,qBAAqB;IACrC,iBAAiB,sBAAsB;IACvC,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;IAC7B,aAAa,kBAAkB;IAG/B,kBAAkB,uBAAuB;IACzC,cAAc,mBAAmB;IACjC,cAAc,mBAAmB;IAGjC,gBAAgB,qBAAqB;IACrC,kBAAkB,uBAAuB;IAGzC,aAAa,kBAAkB;IAC/B,WAAW,gBAAgB;IAG3B,cAAc,mBAAmB;IACjC,YAAY,iBAAiB;IAG7B,OAAO,YAAY;CACpB;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;aAEnB,IAAI,EAAE,SAAS;aAEf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAFjC,IAAI,EAAE,SAAS,EAC/B,OAAO,EAAE,MAAM,EACC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;CAKpD;AAkND;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,YAAY,GAAG,MAAM,CAmD/D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,YAAY,GAAG,IAAI,CAE5D;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,SAAS,EACf,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,YAAY,CAGd;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,EACvC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GACtC,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAYxB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAW7E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAE1E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD"}
|
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* APIClaw MCP Auto-Setup - Error Handling
|
|
3
|
+
*
|
|
4
|
+
* Comprehensive error formatting with actionable help.
|
|
5
|
+
* Every error includes context, suggestions, and help links.
|
|
6
|
+
*/
|
|
7
|
+
import { colors, icons, numberedList, command, helpLink } from './colors.js';
|
|
8
|
+
/**
|
|
9
|
+
* Error codes for APIClaw setup
|
|
10
|
+
*/
|
|
11
|
+
export var ErrorCode;
|
|
12
|
+
(function (ErrorCode) {
|
|
13
|
+
// File system errors
|
|
14
|
+
ErrorCode["CONFIG_NOT_FOUND"] = "CONFIG_NOT_FOUND";
|
|
15
|
+
ErrorCode["PERMISSION_DENIED"] = "PERMISSION_DENIED";
|
|
16
|
+
ErrorCode["INVALID_JSON"] = "INVALID_JSON";
|
|
17
|
+
ErrorCode["WRITE_FAILED"] = "WRITE_FAILED";
|
|
18
|
+
ErrorCode["BACKUP_FAILED"] = "BACKUP_FAILED";
|
|
19
|
+
// Configuration errors
|
|
20
|
+
ErrorCode["ALREADY_CONFIGURED"] = "ALREADY_CONFIGURED";
|
|
21
|
+
ErrorCode["INVALID_CONFIG"] = "INVALID_CONFIG";
|
|
22
|
+
ErrorCode["MERGE_CONFLICT"] = "MERGE_CONFLICT";
|
|
23
|
+
// Client errors
|
|
24
|
+
ErrorCode["CLIENT_NOT_FOUND"] = "CLIENT_NOT_FOUND";
|
|
25
|
+
ErrorCode["UNSUPPORTED_CLIENT"] = "UNSUPPORTED_CLIENT";
|
|
26
|
+
// Network errors
|
|
27
|
+
ErrorCode["NETWORK_ERROR"] = "NETWORK_ERROR";
|
|
28
|
+
ErrorCode["AUTH_FAILED"] = "AUTH_FAILED";
|
|
29
|
+
// System errors
|
|
30
|
+
ErrorCode["UNSUPPORTED_OS"] = "UNSUPPORTED_OS";
|
|
31
|
+
ErrorCode["NODE_VERSION"] = "NODE_VERSION";
|
|
32
|
+
// Generic
|
|
33
|
+
ErrorCode["UNKNOWN"] = "UNKNOWN";
|
|
34
|
+
})(ErrorCode || (ErrorCode = {}));
|
|
35
|
+
/**
|
|
36
|
+
* APIClaw error with rich context
|
|
37
|
+
*/
|
|
38
|
+
export class ApiclawError extends Error {
|
|
39
|
+
code;
|
|
40
|
+
context;
|
|
41
|
+
constructor(code, message, context) {
|
|
42
|
+
super(message);
|
|
43
|
+
this.code = code;
|
|
44
|
+
this.context = context;
|
|
45
|
+
this.name = 'ApiclawError';
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Error metadata registry
|
|
50
|
+
*/
|
|
51
|
+
const errorMeta = {
|
|
52
|
+
[ErrorCode.CONFIG_NOT_FOUND]: {
|
|
53
|
+
title: 'Config file not found',
|
|
54
|
+
description: 'The MCP client config file does not exist at the expected location.',
|
|
55
|
+
suggestions: [
|
|
56
|
+
'Make sure the MCP client is installed',
|
|
57
|
+
'The client may not have created its config yet - try opening and closing it',
|
|
58
|
+
'Use --config to specify a custom path',
|
|
59
|
+
],
|
|
60
|
+
commands: [
|
|
61
|
+
'npx @nordsym/apiclaw setup --client cursor',
|
|
62
|
+
'npx @nordsym/apiclaw setup --config /path/to/config.json',
|
|
63
|
+
],
|
|
64
|
+
helpUrl: 'https://docs.apiclaw.com/setup/config-not-found',
|
|
65
|
+
},
|
|
66
|
+
[ErrorCode.PERMISSION_DENIED]: {
|
|
67
|
+
title: 'Permission denied',
|
|
68
|
+
description: 'Unable to write to the config file due to insufficient permissions.',
|
|
69
|
+
suggestions: [
|
|
70
|
+
'The config file may be owned by another user',
|
|
71
|
+
'You may need elevated permissions',
|
|
72
|
+
'Check if the file is locked by another process',
|
|
73
|
+
],
|
|
74
|
+
commands: [
|
|
75
|
+
'sudo npx @nordsym/apiclaw setup',
|
|
76
|
+
'chmod 644 <config-path>',
|
|
77
|
+
],
|
|
78
|
+
helpUrl: 'https://docs.apiclaw.com/setup/permissions',
|
|
79
|
+
},
|
|
80
|
+
[ErrorCode.INVALID_JSON]: {
|
|
81
|
+
title: 'Invalid JSON in config file',
|
|
82
|
+
description: 'The existing config file contains malformed JSON.',
|
|
83
|
+
suggestions: [
|
|
84
|
+
'Check for trailing commas or missing brackets',
|
|
85
|
+
'Restore from a backup if available',
|
|
86
|
+
'Manually fix the JSON syntax errors',
|
|
87
|
+
],
|
|
88
|
+
commands: [
|
|
89
|
+
'npx @nordsym/apiclaw restore --list',
|
|
90
|
+
'npx @nordsym/apiclaw restore',
|
|
91
|
+
],
|
|
92
|
+
helpUrl: 'https://docs.apiclaw.com/setup/invalid-json',
|
|
93
|
+
},
|
|
94
|
+
[ErrorCode.WRITE_FAILED]: {
|
|
95
|
+
title: 'Failed to write config file',
|
|
96
|
+
description: 'An error occurred while writing the updated configuration.',
|
|
97
|
+
suggestions: [
|
|
98
|
+
'Check available disk space',
|
|
99
|
+
'Ensure the config directory exists',
|
|
100
|
+
'Verify write permissions',
|
|
101
|
+
],
|
|
102
|
+
helpUrl: 'https://docs.apiclaw.com/setup/write-failed',
|
|
103
|
+
},
|
|
104
|
+
[ErrorCode.BACKUP_FAILED]: {
|
|
105
|
+
title: 'Failed to create backup',
|
|
106
|
+
description: 'Could not create a backup of the existing config.',
|
|
107
|
+
suggestions: [
|
|
108
|
+
'Check available disk space',
|
|
109
|
+
'Verify write permissions in config directory',
|
|
110
|
+
'Use --no-backup to skip backup (not recommended)',
|
|
111
|
+
],
|
|
112
|
+
helpUrl: 'https://docs.apiclaw.com/setup/backup-failed',
|
|
113
|
+
},
|
|
114
|
+
[ErrorCode.ALREADY_CONFIGURED]: {
|
|
115
|
+
title: 'Already configured',
|
|
116
|
+
description: 'APIClaw is already configured in this MCP client.',
|
|
117
|
+
suggestions: [
|
|
118
|
+
'Use --force to update the existing configuration',
|
|
119
|
+
'Use npx @nordsym/apiclaw doctor to verify the setup',
|
|
120
|
+
],
|
|
121
|
+
commands: [
|
|
122
|
+
'npx @nordsym/apiclaw setup --force',
|
|
123
|
+
'npx @nordsym/apiclaw doctor',
|
|
124
|
+
],
|
|
125
|
+
helpUrl: 'https://docs.apiclaw.com/setup/already-configured',
|
|
126
|
+
},
|
|
127
|
+
[ErrorCode.INVALID_CONFIG]: {
|
|
128
|
+
title: 'Invalid configuration',
|
|
129
|
+
description: 'The configuration structure is invalid or missing required fields.',
|
|
130
|
+
suggestions: [
|
|
131
|
+
'Ensure the config follows the MCP specification',
|
|
132
|
+
'Check for required fields like "mcpServers"',
|
|
133
|
+
],
|
|
134
|
+
helpUrl: 'https://docs.apiclaw.com/setup/invalid-config',
|
|
135
|
+
},
|
|
136
|
+
[ErrorCode.MERGE_CONFLICT]: {
|
|
137
|
+
title: 'Configuration merge conflict',
|
|
138
|
+
description: 'Could not safely merge APIClaw into the existing configuration.',
|
|
139
|
+
suggestions: [
|
|
140
|
+
'Review the existing config manually',
|
|
141
|
+
'Use --force to overwrite',
|
|
142
|
+
'Create a backup and try again',
|
|
143
|
+
],
|
|
144
|
+
helpUrl: 'https://docs.apiclaw.com/setup/merge-conflict',
|
|
145
|
+
},
|
|
146
|
+
[ErrorCode.CLIENT_NOT_FOUND]: {
|
|
147
|
+
title: 'MCP client not found',
|
|
148
|
+
description: 'The specified MCP client could not be detected on this system.',
|
|
149
|
+
suggestions: [
|
|
150
|
+
'Install the MCP client first',
|
|
151
|
+
'Specify a different client with --client',
|
|
152
|
+
'Use --config for custom config paths',
|
|
153
|
+
],
|
|
154
|
+
commands: [
|
|
155
|
+
'npx @nordsym/apiclaw setup --client claude-desktop',
|
|
156
|
+
'npx @nordsym/apiclaw doctor',
|
|
157
|
+
],
|
|
158
|
+
helpUrl: 'https://docs.apiclaw.com/setup/client-not-found',
|
|
159
|
+
},
|
|
160
|
+
[ErrorCode.UNSUPPORTED_CLIENT]: {
|
|
161
|
+
title: 'Unsupported MCP client',
|
|
162
|
+
description: 'This MCP client is not yet supported by APIClaw auto-setup.',
|
|
163
|
+
suggestions: [
|
|
164
|
+
'Check for updates: npm update @nordsym/apiclaw',
|
|
165
|
+
'Use --config to manually specify the config path',
|
|
166
|
+
'Request support at github.com/nordsym/apiclaw',
|
|
167
|
+
],
|
|
168
|
+
helpUrl: 'https://docs.apiclaw.com/setup/supported-clients',
|
|
169
|
+
},
|
|
170
|
+
[ErrorCode.NETWORK_ERROR]: {
|
|
171
|
+
title: 'Network error',
|
|
172
|
+
description: 'Could not connect to APIClaw services.',
|
|
173
|
+
suggestions: [
|
|
174
|
+
'Check your internet connection',
|
|
175
|
+
'Setup works offline - verify connectivity later',
|
|
176
|
+
'Check if api.apiclaw.com is reachable',
|
|
177
|
+
],
|
|
178
|
+
commands: [
|
|
179
|
+
'curl -I https://api.apiclaw.com/health',
|
|
180
|
+
'npx @nordsym/apiclaw doctor',
|
|
181
|
+
],
|
|
182
|
+
helpUrl: 'https://docs.apiclaw.com/setup/network-error',
|
|
183
|
+
},
|
|
184
|
+
[ErrorCode.AUTH_FAILED]: {
|
|
185
|
+
title: 'Authentication failed',
|
|
186
|
+
description: 'Could not authenticate with APIClaw.',
|
|
187
|
+
suggestions: [
|
|
188
|
+
'Check your workspace ID',
|
|
189
|
+
'Verify your API key is valid',
|
|
190
|
+
'Setup works without auth - configure credentials later',
|
|
191
|
+
],
|
|
192
|
+
helpUrl: 'https://docs.apiclaw.com/setup/auth-failed',
|
|
193
|
+
},
|
|
194
|
+
[ErrorCode.UNSUPPORTED_OS]: {
|
|
195
|
+
title: 'Unsupported operating system',
|
|
196
|
+
description: 'APIClaw auto-setup is not available for this operating system.',
|
|
197
|
+
suggestions: [
|
|
198
|
+
'Supported: macOS, Windows 10/11, Linux',
|
|
199
|
+
'Manual setup instructions available',
|
|
200
|
+
],
|
|
201
|
+
helpUrl: 'https://docs.apiclaw.com/setup/manual',
|
|
202
|
+
},
|
|
203
|
+
[ErrorCode.NODE_VERSION]: {
|
|
204
|
+
title: 'Unsupported Node.js version',
|
|
205
|
+
description: 'APIClaw requires Node.js 18 or higher.',
|
|
206
|
+
suggestions: [
|
|
207
|
+
'Upgrade Node.js to version 18 or later',
|
|
208
|
+
'Use nvm to manage Node.js versions',
|
|
209
|
+
],
|
|
210
|
+
commands: [
|
|
211
|
+
'nvm install 18',
|
|
212
|
+
'nvm use 18',
|
|
213
|
+
],
|
|
214
|
+
helpUrl: 'https://docs.apiclaw.com/setup/node-version',
|
|
215
|
+
},
|
|
216
|
+
[ErrorCode.UNKNOWN]: {
|
|
217
|
+
title: 'Unknown error',
|
|
218
|
+
description: 'An unexpected error occurred.',
|
|
219
|
+
suggestions: [
|
|
220
|
+
'Try running with --verbose for more details',
|
|
221
|
+
'Check the logs for more information',
|
|
222
|
+
'Report this issue if it persists',
|
|
223
|
+
],
|
|
224
|
+
commands: [
|
|
225
|
+
'npx @nordsym/apiclaw setup --verbose',
|
|
226
|
+
],
|
|
227
|
+
helpUrl: 'https://docs.apiclaw.com/support',
|
|
228
|
+
},
|
|
229
|
+
};
|
|
230
|
+
/**
|
|
231
|
+
* Format an error for terminal output
|
|
232
|
+
*/
|
|
233
|
+
export function formatError(error) {
|
|
234
|
+
const code = error instanceof ApiclawError ? error.code : ErrorCode.UNKNOWN;
|
|
235
|
+
const meta = errorMeta[code];
|
|
236
|
+
const context = error instanceof ApiclawError ? error.context : undefined;
|
|
237
|
+
const lines = [];
|
|
238
|
+
// Header
|
|
239
|
+
lines.push(`${icons.cross} ${colors.error(`Error: ${meta.title}`)}`);
|
|
240
|
+
lines.push('');
|
|
241
|
+
// Description
|
|
242
|
+
lines.push(colors.secondary(meta.description));
|
|
243
|
+
// Context (if available)
|
|
244
|
+
if (context) {
|
|
245
|
+
lines.push('');
|
|
246
|
+
for (const [key, value] of Object.entries(context)) {
|
|
247
|
+
if (value !== undefined) {
|
|
248
|
+
lines.push(colors.muted(` ${key}: ${String(value)}`));
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
// Original error message (if different from description)
|
|
253
|
+
if (error.message && error.message !== meta.description) {
|
|
254
|
+
lines.push('');
|
|
255
|
+
lines.push(colors.muted(`Details: ${error.message}`));
|
|
256
|
+
}
|
|
257
|
+
// Suggestions
|
|
258
|
+
lines.push('');
|
|
259
|
+
lines.push(colors.secondary('This usually means:'));
|
|
260
|
+
lines.push(numberedList(meta.suggestions, 0));
|
|
261
|
+
// Commands
|
|
262
|
+
if (meta.commands && meta.commands.length > 0) {
|
|
263
|
+
lines.push('');
|
|
264
|
+
lines.push(colors.secondary('Try:'));
|
|
265
|
+
for (const cmd of meta.commands) {
|
|
266
|
+
lines.push(command(cmd));
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
// Help link
|
|
270
|
+
if (meta.helpUrl) {
|
|
271
|
+
lines.push('');
|
|
272
|
+
lines.push(`Need help? ${helpLink(meta.helpUrl)}`);
|
|
273
|
+
}
|
|
274
|
+
return lines.join('\n');
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Print an error to stderr
|
|
278
|
+
*/
|
|
279
|
+
export function printError(error) {
|
|
280
|
+
console.error(formatError(error));
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Create a typed error
|
|
284
|
+
*/
|
|
285
|
+
export function createError(code, message, context) {
|
|
286
|
+
const meta = errorMeta[code];
|
|
287
|
+
return new ApiclawError(code, message || meta.description, context);
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Wrap a function with error handling
|
|
291
|
+
*/
|
|
292
|
+
export async function withErrorHandling(fn, options = {}) {
|
|
293
|
+
try {
|
|
294
|
+
return await fn();
|
|
295
|
+
}
|
|
296
|
+
catch (error) {
|
|
297
|
+
printError(error instanceof Error ? error : new Error(String(error)));
|
|
298
|
+
if (options.exitOnError) {
|
|
299
|
+
process.exit(1);
|
|
300
|
+
}
|
|
301
|
+
return undefined;
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Format a warning message
|
|
306
|
+
*/
|
|
307
|
+
export function formatWarning(message, suggestions) {
|
|
308
|
+
const lines = [];
|
|
309
|
+
lines.push(`${icons.warning} ${colors.warning(`Warning: ${message}`)}`);
|
|
310
|
+
if (suggestions && suggestions.length > 0) {
|
|
311
|
+
lines.push('');
|
|
312
|
+
lines.push(numberedList(suggestions, 0));
|
|
313
|
+
}
|
|
314
|
+
return lines.join('\n');
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* Print a warning to stderr
|
|
318
|
+
*/
|
|
319
|
+
export function printWarning(message, suggestions) {
|
|
320
|
+
console.error(formatWarning(message, suggestions));
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Format an info message
|
|
324
|
+
*/
|
|
325
|
+
export function formatInfo(message) {
|
|
326
|
+
return `${icons.info} ${colors.info(message)}`;
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* Format a success message
|
|
330
|
+
*/
|
|
331
|
+
export function formatSuccess(message) {
|
|
332
|
+
return `${icons.check} ${colors.success(message)}`;
|
|
333
|
+
}
|
|
334
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/ui/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,aAAa,CAAC;AAG5B,cAAc,cAAc,CAAC;AAG7B,cAAc,cAAc,CAAC;AAG7B,cAAc,aAAa,CAAC"}
|
package/dist/ui/index.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* APIClaw MCP Auto-Setup - UI Module
|
|
3
|
+
*
|
|
4
|
+
* Exports all UI utilities for the CLI.
|
|
5
|
+
*/
|
|
6
|
+
// Color utilities
|
|
7
|
+
export * from './colors.js';
|
|
8
|
+
// Spinner utilities
|
|
9
|
+
export * from './spinner.js';
|
|
10
|
+
// Interactive prompts
|
|
11
|
+
export * from './prompts.js';
|
|
12
|
+
// Error handling
|
|
13
|
+
export * from './errors.js';
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,kBAAkB;AAClB,cAAc,aAAa,CAAC;AAE5B,oBAAoB;AACpB,cAAc,cAAc,CAAC;AAE7B,sBAAsB;AACtB,cAAc,cAAc,CAAC;AAE7B,iBAAiB;AACjB,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* APIClaw MCP Auto-Setup - Interactive Prompts
|
|
3
|
+
*
|
|
4
|
+
* Inquirer-based prompts for the --wizard mode.
|
|
5
|
+
* Provides a guided, interactive setup experience.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Detected client information
|
|
9
|
+
*/
|
|
10
|
+
export interface DetectedClient {
|
|
11
|
+
id: string;
|
|
12
|
+
name: string;
|
|
13
|
+
detected: boolean;
|
|
14
|
+
configPath: string;
|
|
15
|
+
alreadyConfigured: boolean;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Configuration change preview
|
|
19
|
+
*/
|
|
20
|
+
export interface ConfigChange {
|
|
21
|
+
clientId: string;
|
|
22
|
+
clientName: string;
|
|
23
|
+
configPath: string;
|
|
24
|
+
action: 'create' | 'update' | 'skip';
|
|
25
|
+
diff?: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Wizard result
|
|
29
|
+
*/
|
|
30
|
+
export interface WizardResult {
|
|
31
|
+
selectedClients: string[];
|
|
32
|
+
workspace?: string;
|
|
33
|
+
confirmed: boolean;
|
|
34
|
+
dryRun: boolean;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Display welcome banner
|
|
38
|
+
*/
|
|
39
|
+
export declare function showWelcome(): void;
|
|
40
|
+
/**
|
|
41
|
+
* Prompt for client selection
|
|
42
|
+
*/
|
|
43
|
+
export declare function selectClients(clients: DetectedClient[]): Promise<string[]>;
|
|
44
|
+
/**
|
|
45
|
+
* Prompt for custom config path
|
|
46
|
+
*/
|
|
47
|
+
export declare function promptCustomPath(): Promise<string>;
|
|
48
|
+
/**
|
|
49
|
+
* Prompt for workspace ID
|
|
50
|
+
*/
|
|
51
|
+
export declare function promptWorkspace(): Promise<string | undefined>;
|
|
52
|
+
/**
|
|
53
|
+
* Show preview of changes and confirm
|
|
54
|
+
*/
|
|
55
|
+
export declare function confirmChanges(changes: ConfigChange[], options?: {
|
|
56
|
+
dryRun?: boolean;
|
|
57
|
+
}): Promise<boolean>;
|
|
58
|
+
/**
|
|
59
|
+
* Prompt for force overwrite
|
|
60
|
+
*/
|
|
61
|
+
export declare function confirmForce(clientName: string): Promise<boolean>;
|
|
62
|
+
/**
|
|
63
|
+
* Show success message with next steps
|
|
64
|
+
*/
|
|
65
|
+
export declare function showSuccess(configuredClients: string[]): void;
|
|
66
|
+
/**
|
|
67
|
+
* Show dry-run summary
|
|
68
|
+
*/
|
|
69
|
+
export declare function showDryRunSummary(changes: ConfigChange[]): void;
|
|
70
|
+
/**
|
|
71
|
+
* Run the full interactive wizard
|
|
72
|
+
*/
|
|
73
|
+
export declare function runWizard(clients: DetectedClient[], options?: {
|
|
74
|
+
dryRun?: boolean;
|
|
75
|
+
}): Promise<WizardResult>;
|
|
76
|
+
/**
|
|
77
|
+
* Prompt for restore backup selection
|
|
78
|
+
*/
|
|
79
|
+
export declare function selectBackup(backups: {
|
|
80
|
+
path: string;
|
|
81
|
+
date: Date;
|
|
82
|
+
client: string;
|
|
83
|
+
}[]): Promise<string | null>;
|
|
84
|
+
/**
|
|
85
|
+
* Confirm uninstall
|
|
86
|
+
*/
|
|
87
|
+
export declare function confirmUninstall(clients: string[]): Promise<boolean>;
|
|
88
|
+
//# sourceMappingURL=prompts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/ui/prompts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAGlC;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAuDhF;AAED;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,CAmBxD;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAgCnE;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,YAAY,EAAE,EACvB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACjC,OAAO,CAAC,OAAO,CAAC,CAsClB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAWvE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,iBAAiB,EAAE,MAAM,EAAE,GAAG,IAAI,CAgB7D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,IAAI,CAW/D;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,cAAc,EAAE,EACzB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACjC,OAAO,CAAC,YAAY,CAAC,CA2CvB;AAqBD;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA0BlH;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAe1E"}
|