usepaso 0.4.0 → 0.4.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.
- package/README.md +24 -9
- package/dist/cli.js +5 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/connect.d.ts +4 -0
- package/dist/commands/connect.d.ts.map +1 -0
- package/dist/commands/connect.js +199 -0
- package/dist/commands/connect.js.map +1 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +30 -2
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +168 -13
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/serve.d.ts.map +1 -1
- package/dist/commands/serve.js +14 -3
- package/dist/commands/serve.js.map +1 -1
- package/dist/commands/shared.d.ts +2 -1
- package/dist/commands/shared.d.ts.map +1 -1
- package/dist/commands/shared.js +15 -23
- package/dist/commands/shared.js.map +1 -1
- package/dist/commands/test.d.ts.map +1 -1
- package/dist/commands/test.js +7 -3
- package/dist/commands/test.js.map +1 -1
- package/dist/commands/validate.js +4 -4
- package/dist/commands/validate.js.map +1 -1
- package/dist/executor.d.ts.map +1 -1
- package/dist/executor.js +1 -2
- package/dist/executor.js.map +1 -1
- package/dist/generators/mcp.d.ts +11 -3
- package/dist/generators/mcp.d.ts.map +1 -1
- package/dist/generators/mcp.js +206 -22
- package/dist/generators/mcp.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/openapi.d.ts +1 -1
- package/dist/openapi.d.ts.map +1 -1
- package/dist/openapi.js +4 -4
- package/dist/openapi.js.map +1 -1
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +15 -0
- package/dist/parser.js.map +1 -1
- package/dist/utils/color.js +1 -1
- package/dist/utils/color.js.map +1 -1
- package/dist/utils/env.d.ts +17 -0
- package/dist/utils/env.d.ts.map +1 -0
- package/dist/utils/env.js +73 -0
- package/dist/utils/env.js.map +1 -0
- package/dist/validator.d.ts.map +1 -1
- package/dist/validator.js +82 -4
- package/dist/validator.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
#
|
|
1
|
+
# paso
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The agent-readiness toolkit for APIs.
|
|
4
4
|
|
|
5
|
-
Declare your API's
|
|
5
|
+
Declare your API's capabilities once. paso generates the MCP server. No protocol code required.
|
|
6
6
|
|
|
7
7
|
Self-hosted. Open source. Apache 2.0.
|
|
8
8
|
|
|
@@ -72,15 +72,16 @@ capabilities:
|
|
|
72
72
|
description: Item name
|
|
73
73
|
```
|
|
74
74
|
|
|
75
|
-
## What
|
|
75
|
+
## What paso Does With It
|
|
76
76
|
|
|
77
|
-
Each capability becomes an MCP tool. When an agent calls it,
|
|
77
|
+
Each capability becomes an MCP tool. When an agent calls it, paso makes the HTTP request to your API with proper auth, parameters, and error handling.
|
|
78
78
|
|
|
79
79
|
## CLI
|
|
80
80
|
|
|
81
81
|
| Command | What it does |
|
|
82
82
|
|---------|-------------|
|
|
83
|
-
| `usepaso init` | Scaffold a `usepaso.yaml` template |
|
|
83
|
+
| `usepaso init` | Scaffold a `usepaso.yaml` template (JSONPlaceholder example) |
|
|
84
|
+
| `usepaso init --blank` | Scaffold a blank template |
|
|
84
85
|
| `usepaso init --from-openapi` | Generate from an OpenAPI spec |
|
|
85
86
|
| `usepaso validate` | Check your declaration for errors |
|
|
86
87
|
| `usepaso validate --strict` | Check for best practices (missing constraints, consent) |
|
|
@@ -89,7 +90,10 @@ Each capability becomes an MCP tool. When an agent calls it, UsePaso makes the H
|
|
|
89
90
|
| `usepaso test --dry-run` | Same thing, minus the consequences |
|
|
90
91
|
| `usepaso test --all --dry-run` | Verify all capabilities resolve correctly |
|
|
91
92
|
| `usepaso serve` | Start an MCP server (stdio) |
|
|
93
|
+
| `usepaso serve --strict` | Serve with consent gates enforced (two-phase confirmation) |
|
|
92
94
|
| `usepaso serve --verbose` | Serve with request logging |
|
|
95
|
+
| `usepaso connect <client>` | Wire this server into an MCP client config (claude-desktop, cursor, vscode, windsurf) |
|
|
96
|
+
| `usepaso disconnect <client>` | Remove from an MCP client config |
|
|
93
97
|
| `usepaso doctor` | Check your setup end-to-end |
|
|
94
98
|
| `usepaso completion` | Output shell completion script (bash, zsh, fish) |
|
|
95
99
|
| `usepaso version` | Print the version |
|
|
@@ -101,10 +105,19 @@ import { parseFile, validate, generateMcpServer } from 'usepaso';
|
|
|
101
105
|
|
|
102
106
|
const decl = parseFile('usepaso.yaml');
|
|
103
107
|
const errors = validate(decl);
|
|
104
|
-
const server = generateMcpServer(decl);
|
|
108
|
+
const { server, toolNames } = generateMcpServer(decl);
|
|
105
109
|
```
|
|
106
110
|
|
|
107
|
-
## Connect to
|
|
111
|
+
## Connect to MCP Clients
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
npx usepaso connect claude-desktop
|
|
115
|
+
npx usepaso connect cursor
|
|
116
|
+
npx usepaso connect vscode
|
|
117
|
+
npx usepaso connect windsurf
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Or add manually to your client config:
|
|
108
121
|
|
|
109
122
|
```json
|
|
110
123
|
{
|
|
@@ -120,7 +133,9 @@ const server = generateMcpServer(decl);
|
|
|
120
133
|
|
|
121
134
|
## Links
|
|
122
135
|
|
|
123
|
-
- [
|
|
136
|
+
- [Documentation](https://usepaso.dev/docs/getting-started/)
|
|
137
|
+
- [Blog](https://usepaso.dev/blog/)
|
|
138
|
+
- [Changelog](https://usepaso.dev/changelog/)
|
|
124
139
|
- [Spec reference](https://github.com/5h1vmani/usepaso/blob/main/spec/usepaso-spec.md)
|
|
125
140
|
- [Examples](https://github.com/5h1vmani/usepaso/tree/main/examples)
|
|
126
141
|
- [Python SDK](https://pypi.org/project/usepaso/)
|
package/dist/cli.js
CHANGED
|
@@ -8,6 +8,7 @@ const inspect_1 = require("./commands/inspect");
|
|
|
8
8
|
const test_1 = require("./commands/test");
|
|
9
9
|
const serve_1 = require("./commands/serve");
|
|
10
10
|
const doctor_1 = require("./commands/doctor");
|
|
11
|
+
const connect_1 = require("./commands/connect");
|
|
11
12
|
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
12
13
|
const { version } = require('../package.json');
|
|
13
14
|
const program = new commander_1.Command();
|
|
@@ -18,6 +19,8 @@ program.name('usepaso').description('Make your API agent-ready in minutes').vers
|
|
|
18
19
|
(0, test_1.registerTest)(program);
|
|
19
20
|
(0, serve_1.registerServe)(program);
|
|
20
21
|
(0, doctor_1.registerDoctor)(program);
|
|
22
|
+
(0, connect_1.registerConnect)(program);
|
|
23
|
+
(0, connect_1.registerDisconnect)(program);
|
|
21
24
|
program
|
|
22
25
|
.command('version')
|
|
23
26
|
.description('Print the usepaso version')
|
|
@@ -36,6 +39,8 @@ program
|
|
|
36
39
|
'test',
|
|
37
40
|
'serve',
|
|
38
41
|
'doctor',
|
|
42
|
+
'connect',
|
|
43
|
+
'disconnect',
|
|
39
44
|
'version',
|
|
40
45
|
'completion',
|
|
41
46
|
];
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,0CAA+C;AAC/C,kDAAuD;AACvD,gDAAqD;AACrD,0CAA+C;AAC/C,4CAAiD;AACjD,8CAAmD;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,0CAA+C;AAC/C,kDAAuD;AACvD,gDAAqD;AACrD,0CAA+C;AAC/C,4CAAiD;AACjD,8CAAmD;AACnD,gDAAyE;AAEzE,iEAAiE;AACjE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAE/C,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAC9B,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,sCAAsC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAE7F,IAAA,mBAAY,EAAC,OAAO,CAAC,CAAC;AACtB,IAAA,2BAAgB,EAAC,OAAO,CAAC,CAAC;AAC1B,IAAA,yBAAe,EAAC,OAAO,CAAC,CAAC;AACzB,IAAA,mBAAY,EAAC,OAAO,CAAC,CAAC;AACtB,IAAA,qBAAa,EAAC,OAAO,CAAC,CAAC;AACvB,IAAA,uBAAc,EAAC,OAAO,CAAC,CAAC;AACxB,IAAA,yBAAe,EAAC,OAAO,CAAC,CAAC;AACzB,IAAA,4BAAkB,EAAC,OAAO,CAAC,CAAC;AAE5B,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,2BAA2B,CAAC;KACxC,MAAM,CAAC,GAAG,EAAE;IACX,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,YAAY,CAAC;KACrB,WAAW,CAAC,gCAAgC,CAAC;KAC7C,MAAM,CAAC,iBAAiB,EAAE,8BAA8B,EAAE,MAAM,CAAC;KACjE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;IACf,MAAM,QAAQ,GAAG;QACf,MAAM;QACN,UAAU;QACV,SAAS;QACT,MAAM;QACN,OAAO;QACP,QAAQ;QACR,SAAS;QACT,YAAY;QACZ,SAAS;QACT,YAAY;KACb,CAAC;IACF,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CACT,qDAAqD,IAAI,gEAAgE,CAC1H,CAAC;IACJ,CAAC;SAAM,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;QACjC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,sDAAsD,GAAG,GAAG,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO;QACP,OAAO,CAAC,GAAG,CACT,qFAAqF,IAAI,iDAAiD,CAC3I,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../src/commands/connect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA+IpC,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwDtD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+CzD"}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerConnect = registerConnect;
|
|
4
|
+
exports.registerDisconnect = registerDisconnect;
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
const fs_1 = require("fs");
|
|
7
|
+
const os_1 = require("os");
|
|
8
|
+
const shared_1 = require("./shared");
|
|
9
|
+
const color_1 = require("../utils/color");
|
|
10
|
+
const env_1 = require("../utils/env");
|
|
11
|
+
const CLIENTS = ['claude-desktop', 'cursor', 'vscode', 'windsurf'];
|
|
12
|
+
function resolveClientConfig(client) {
|
|
13
|
+
const home = (0, os_1.homedir)();
|
|
14
|
+
const platform = process.platform;
|
|
15
|
+
switch (client) {
|
|
16
|
+
case 'claude-desktop': {
|
|
17
|
+
let configDir;
|
|
18
|
+
if (platform === 'win32') {
|
|
19
|
+
configDir = (0, path_1.join)(process.env.APPDATA || (0, path_1.join)(home, 'AppData', 'Roaming'), 'Claude');
|
|
20
|
+
}
|
|
21
|
+
else if (platform === 'darwin') {
|
|
22
|
+
configDir = (0, path_1.join)(home, 'Library', 'Application Support', 'Claude');
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
configDir = (0, path_1.join)(home, '.config', 'Claude');
|
|
26
|
+
}
|
|
27
|
+
return {
|
|
28
|
+
configPath: (0, path_1.join)(configDir, 'claude_desktop_config.json'),
|
|
29
|
+
wrapInMcpServers: true,
|
|
30
|
+
useAbsolutePath: true,
|
|
31
|
+
displayName: 'Claude Desktop',
|
|
32
|
+
restartHint: 'Restart Claude Desktop to connect.',
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
case 'cursor':
|
|
36
|
+
return {
|
|
37
|
+
configPath: (0, path_1.resolve)('.cursor', 'mcp.json'),
|
|
38
|
+
wrapInMcpServers: true,
|
|
39
|
+
useAbsolutePath: false,
|
|
40
|
+
displayName: 'Cursor',
|
|
41
|
+
restartHint: 'Restart Cursor to connect.',
|
|
42
|
+
};
|
|
43
|
+
case 'vscode':
|
|
44
|
+
return {
|
|
45
|
+
configPath: (0, path_1.resolve)('.vscode', 'mcp.json'),
|
|
46
|
+
wrapInMcpServers: false,
|
|
47
|
+
useAbsolutePath: false,
|
|
48
|
+
displayName: 'VS Code',
|
|
49
|
+
restartHint: 'Reload VS Code to connect.',
|
|
50
|
+
};
|
|
51
|
+
case 'windsurf': {
|
|
52
|
+
let configDir;
|
|
53
|
+
if (platform === 'win32') {
|
|
54
|
+
configDir = (0, path_1.join)(process.env.APPDATA || (0, path_1.join)(home, 'AppData', 'Roaming'), 'Codeium', 'Windsurf');
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
configDir = (0, path_1.join)(home, '.codeium', 'windsurf');
|
|
58
|
+
}
|
|
59
|
+
return {
|
|
60
|
+
configPath: (0, path_1.join)(configDir, 'mcp_config.json'),
|
|
61
|
+
wrapInMcpServers: true,
|
|
62
|
+
useAbsolutePath: false,
|
|
63
|
+
displayName: 'Windsurf',
|
|
64
|
+
restartHint: 'Restart Windsurf to connect.',
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
default:
|
|
68
|
+
throw new Error(`Unknown client: "${client}"`);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
function buildEntry(yamlPath, hasToken, useAbsolutePath) {
|
|
72
|
+
// IDE clients (Cursor, VS Code, Windsurf) run from the project root.
|
|
73
|
+
// Use bare "usepaso serve" so the config is portable across machines.
|
|
74
|
+
// Claude Desktop doesn't set CWD, so it needs the absolute path.
|
|
75
|
+
const args = useAbsolutePath
|
|
76
|
+
? ['usepaso', 'serve', '-f', (0, path_1.resolve)(yamlPath)]
|
|
77
|
+
: ['usepaso', 'serve'];
|
|
78
|
+
const entry = { command: 'npx', args };
|
|
79
|
+
if (!hasToken) {
|
|
80
|
+
entry.env = { USEPASO_AUTH_TOKEN: 'your-token' };
|
|
81
|
+
}
|
|
82
|
+
return entry;
|
|
83
|
+
}
|
|
84
|
+
function readJsonFile(path) {
|
|
85
|
+
if (!(0, fs_1.existsSync)(path))
|
|
86
|
+
return {};
|
|
87
|
+
const raw = (0, fs_1.readFileSync)(path, 'utf-8');
|
|
88
|
+
try {
|
|
89
|
+
return JSON.parse(raw);
|
|
90
|
+
}
|
|
91
|
+
catch (err) {
|
|
92
|
+
throw new Error(`Failed to parse ${path}: ${err instanceof Error ? err.message : err}\nFix the JSON manually or delete the file and try again.`, { cause: err });
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
function getServers(config, clientConfig) {
|
|
96
|
+
if (clientConfig.wrapInMcpServers) {
|
|
97
|
+
if (!config.mcpServers || typeof config.mcpServers !== 'object') {
|
|
98
|
+
config.mcpServers = {};
|
|
99
|
+
}
|
|
100
|
+
return config.mcpServers;
|
|
101
|
+
}
|
|
102
|
+
if (!config.servers || typeof config.servers !== 'object') {
|
|
103
|
+
config.servers = {};
|
|
104
|
+
}
|
|
105
|
+
return config.servers;
|
|
106
|
+
}
|
|
107
|
+
function writeConfig(configPath, config) {
|
|
108
|
+
const configDir = (0, path_1.dirname)(configPath);
|
|
109
|
+
if (!(0, fs_1.existsSync)(configDir)) {
|
|
110
|
+
(0, fs_1.mkdirSync)(configDir, { recursive: true });
|
|
111
|
+
}
|
|
112
|
+
(0, fs_1.writeFileSync)(configPath, JSON.stringify(config, null, 2) + '\n', 'utf-8');
|
|
113
|
+
}
|
|
114
|
+
function validateClient(client) {
|
|
115
|
+
if (!CLIENTS.includes(client)) {
|
|
116
|
+
throw new Error(`Unknown client: "${client}". Supported clients: ${CLIENTS.join(', ')}`);
|
|
117
|
+
}
|
|
118
|
+
return client;
|
|
119
|
+
}
|
|
120
|
+
function registerConnect(program) {
|
|
121
|
+
program
|
|
122
|
+
.command('connect')
|
|
123
|
+
.description('Add this server to an MCP client config')
|
|
124
|
+
.argument('<client>', `Client to configure (${CLIENTS.join(', ')})`)
|
|
125
|
+
.option('-f, --file <path>', 'Path to usepaso.yaml', 'usepaso.yaml')
|
|
126
|
+
.option('--env <path>', 'Path to .env file (default: .env next to usepaso.yaml)')
|
|
127
|
+
.option('--force', 'Overwrite existing entry for this service')
|
|
128
|
+
.action((client, opts) => {
|
|
129
|
+
try {
|
|
130
|
+
const validClient = validateClient(client);
|
|
131
|
+
const filePath = (0, path_1.resolve)(opts.file);
|
|
132
|
+
const decl = (0, shared_1.loadAndValidate)(filePath);
|
|
133
|
+
// Load .env so we can detect whether a token is available
|
|
134
|
+
(0, env_1.loadEnvFile)(filePath, opts.env);
|
|
135
|
+
const hasToken = !!process.env.USEPASO_AUTH_TOKEN;
|
|
136
|
+
const slug = (0, shared_1.slugify)(decl.service.name);
|
|
137
|
+
const clientConfig = resolveClientConfig(validClient);
|
|
138
|
+
const existing = readJsonFile(clientConfig.configPath);
|
|
139
|
+
const entry = buildEntry(filePath, hasToken, clientConfig.useAbsolutePath);
|
|
140
|
+
const servers = getServers(existing, clientConfig);
|
|
141
|
+
if (servers[slug] && !opts.force) {
|
|
142
|
+
throw new Error(`Entry "${slug}" already exists in ${clientConfig.displayName} config. Use --force to overwrite.`);
|
|
143
|
+
}
|
|
144
|
+
const isUpdate = !!servers[slug];
|
|
145
|
+
servers[slug] = entry;
|
|
146
|
+
writeConfig(clientConfig.configPath, existing);
|
|
147
|
+
const verb = isUpdate ? 'Updated' : 'Added';
|
|
148
|
+
console.log(`${(0, color_1.green)(verb)} "${(0, color_1.cyan)(decl.service.name)}" in ${clientConfig.displayName} config.`);
|
|
149
|
+
console.log((0, color_1.dim)(` Config: ${clientConfig.configPath}`));
|
|
150
|
+
if (!hasToken) {
|
|
151
|
+
console.log('');
|
|
152
|
+
console.log((0, color_1.yellow)('Note: No auth token found. Set USEPASO_AUTH_TOKEN in .env or your environment.'));
|
|
153
|
+
}
|
|
154
|
+
console.log('');
|
|
155
|
+
console.log(clientConfig.restartHint);
|
|
156
|
+
}
|
|
157
|
+
catch (err) {
|
|
158
|
+
console.error((0, color_1.red)(err instanceof Error ? err.message : String(err)));
|
|
159
|
+
process.exit(1);
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
function registerDisconnect(program) {
|
|
164
|
+
program
|
|
165
|
+
.command('disconnect')
|
|
166
|
+
.description('Remove this server from an MCP client config')
|
|
167
|
+
.argument('<client>', `Client to update (${CLIENTS.join(', ')})`)
|
|
168
|
+
.option('-f, --file <path>', 'Path to usepaso.yaml', 'usepaso.yaml')
|
|
169
|
+
.action((client, opts) => {
|
|
170
|
+
try {
|
|
171
|
+
const validClient = validateClient(client);
|
|
172
|
+
const filePath = (0, path_1.resolve)(opts.file);
|
|
173
|
+
const decl = (0, shared_1.loadAndValidate)(filePath);
|
|
174
|
+
const slug = (0, shared_1.slugify)(decl.service.name);
|
|
175
|
+
const clientConfig = resolveClientConfig(validClient);
|
|
176
|
+
if (!(0, fs_1.existsSync)(clientConfig.configPath)) {
|
|
177
|
+
console.log((0, color_1.dim)(`No config file found at ${clientConfig.configPath}. Nothing to remove.`));
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
const existing = readJsonFile(clientConfig.configPath);
|
|
181
|
+
const servers = getServers(existing, clientConfig);
|
|
182
|
+
if (!servers[slug]) {
|
|
183
|
+
console.log((0, color_1.dim)(`Entry "${slug}" not found in ${clientConfig.displayName} config. Nothing to remove.`));
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
delete servers[slug];
|
|
187
|
+
writeConfig(clientConfig.configPath, existing);
|
|
188
|
+
console.log(`${(0, color_1.green)('Removed')} "${(0, color_1.cyan)(decl.service.name)}" from ${clientConfig.displayName} config.`);
|
|
189
|
+
console.log((0, color_1.dim)(` Config: ${clientConfig.configPath}`));
|
|
190
|
+
console.log('');
|
|
191
|
+
console.log(clientConfig.restartHint);
|
|
192
|
+
}
|
|
193
|
+
catch (err) {
|
|
194
|
+
console.error((0, color_1.red)(err instanceof Error ? err.message : String(err)));
|
|
195
|
+
process.exit(1);
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
//# sourceMappingURL=connect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/commands/connect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4HrD"}
|
package/dist/commands/doctor.js
CHANGED
|
@@ -6,11 +6,13 @@ const fs_1 = require("fs");
|
|
|
6
6
|
const parser_1 = require("../parser");
|
|
7
7
|
const validator_1 = require("../validator");
|
|
8
8
|
const color_1 = require("../utils/color");
|
|
9
|
+
const env_1 = require("../utils/env");
|
|
9
10
|
function registerDoctor(program) {
|
|
10
11
|
program
|
|
11
12
|
.command('doctor')
|
|
12
13
|
.description('Check your usepaso setup for common issues')
|
|
13
14
|
.option('-f, --file <path>', 'Path to usepaso.yaml', 'usepaso.yaml')
|
|
15
|
+
.option('--env <path>', 'Path to .env file (default: .env next to usepaso.yaml)')
|
|
14
16
|
.action(async (opts) => {
|
|
15
17
|
const filePath = (0, path_1.resolve)(opts.file);
|
|
16
18
|
let failed = 0;
|
|
@@ -57,7 +59,33 @@ function registerDoctor(program) {
|
|
|
57
59
|
const warnSuffix = warnings.length > 0 ? `, ${warnings.length} warning(s)` : '';
|
|
58
60
|
ok('Validation passes', `${decl.capabilities.length} capabilities${warnSuffix}`);
|
|
59
61
|
}
|
|
60
|
-
// 4.
|
|
62
|
+
// 4. .env file
|
|
63
|
+
const dir = (0, path_1.dirname)(filePath);
|
|
64
|
+
const envPath = opts.env || (0, path_1.join)(dir, '.env');
|
|
65
|
+
if ((0, fs_1.existsSync)(envPath)) {
|
|
66
|
+
(0, env_1.loadEnvFile)(filePath, opts.env);
|
|
67
|
+
ok('.env file found', opts.env ? envPath : undefined);
|
|
68
|
+
if ((0, env_1.isEnvTrackedByGit)((0, path_1.dirname)(envPath))) {
|
|
69
|
+
console.log(` ${(0, color_1.yellow)('WARN')} .env is tracked by git. Run: git rm --cached .env`);
|
|
70
|
+
}
|
|
71
|
+
// Check file permissions on Unix (skip on Windows)
|
|
72
|
+
if (process.platform !== 'win32') {
|
|
73
|
+
try {
|
|
74
|
+
const mode = (0, fs_1.statSync)(envPath).mode;
|
|
75
|
+
const othersRead = mode & 0o004;
|
|
76
|
+
if (othersRead) {
|
|
77
|
+
console.log(` ${(0, color_1.yellow)('WARN')} .env is world-readable. Run: chmod 600 .env`);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
// Ignore stat errors
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
ok('.env file', 'not found, using environment variables');
|
|
87
|
+
}
|
|
88
|
+
// 5. Auth token
|
|
61
89
|
const authType = decl.service?.auth?.type;
|
|
62
90
|
const token = process.env.USEPASO_AUTH_TOKEN;
|
|
63
91
|
if (authType && authType !== 'none') {
|
|
@@ -76,7 +104,7 @@ function registerDoctor(program) {
|
|
|
76
104
|
else {
|
|
77
105
|
ok('Auth', 'type is "none", no token needed');
|
|
78
106
|
}
|
|
79
|
-
//
|
|
107
|
+
// 6. Base URL reachable
|
|
80
108
|
const baseUrl = decl.service?.base_url;
|
|
81
109
|
if (baseUrl) {
|
|
82
110
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4HpC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwJnD"}
|