usepaso 0.3.0 → 0.4.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/README.md +23 -21
- package/dist/cli.js +37 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/doctor.d.ts +3 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +106 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +17 -6
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/inspect.d.ts.map +1 -1
- package/dist/commands/inspect.js +14 -7
- package/dist/commands/inspect.js.map +1 -1
- package/dist/commands/serve.d.ts.map +1 -1
- package/dist/commands/serve.js +13 -6
- package/dist/commands/serve.js.map +1 -1
- package/dist/commands/shared.d.ts.map +1 -1
- package/dist/commands/shared.js +5 -4
- package/dist/commands/shared.js.map +1 -1
- package/dist/commands/test.d.ts +0 -1
- package/dist/commands/test.d.ts.map +1 -1
- package/dist/commands/test.js +57 -37
- package/dist/commands/test.js.map +1 -1
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +44 -3
- package/dist/commands/validate.js.map +1 -1
- package/dist/executor.d.ts +15 -0
- package/dist/executor.d.ts.map +1 -1
- package/dist/executor.js +104 -4
- package/dist/executor.js.map +1 -1
- package/dist/generators/mcp.d.ts.map +1 -1
- package/dist/generators/mcp.js +4 -8
- package/dist/generators/mcp.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/utils/coerce.d.ts +2 -0
- package/dist/utils/coerce.d.ts.map +1 -0
- package/dist/utils/coerce.js +33 -0
- package/dist/utils/coerce.js.map +1 -0
- package/dist/utils/color.d.ts +19 -0
- package/dist/utils/color.d.ts.map +1 -0
- package/dist/utils/color.js +46 -0
- package/dist/utils/color.js.map +1 -0
- package/dist/utils/redact.d.ts +6 -0
- package/dist/utils/redact.d.ts.map +1 -0
- package/dist/utils/redact.js +37 -0
- package/dist/utils/redact.js.map +1 -0
- package/package.json +2 -10
package/README.md
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
#
|
|
1
|
+
# usepaso
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
One paso. Every protocol.
|
|
4
|
+
|
|
5
|
+
Declare your API's agent capabilities once. UsePaso generates the MCP server. No protocol expertise required.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Self-hosted. Open source. Apache 2.0.
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
[](https://github.com/5h1vmani/usepaso/actions/workflows/ci.yml)
|
|
10
|
+
[](https://www.npmjs.com/package/usepaso)
|
|
10
11
|
|
|
11
12
|
## Install
|
|
12
13
|
|
|
@@ -23,19 +24,21 @@ npx usepaso init --name "MyService"
|
|
|
23
24
|
# Or generate from an existing OpenAPI spec
|
|
24
25
|
npx usepaso init --from-openapi ./openapi.json
|
|
25
26
|
|
|
26
|
-
#
|
|
27
|
+
# Check it
|
|
27
28
|
npx usepaso validate
|
|
28
29
|
|
|
29
30
|
# Preview what MCP tools will be generated
|
|
30
31
|
npx usepaso inspect
|
|
31
32
|
|
|
32
|
-
# Test a capability
|
|
33
|
+
# Test a capability (without the consequences)
|
|
33
34
|
npx usepaso test list_issues -p org=acme -p project=web --dry-run
|
|
34
35
|
|
|
35
36
|
# Start the MCP server
|
|
36
37
|
npx usepaso serve
|
|
37
38
|
```
|
|
38
39
|
|
|
40
|
+
That's it. Your API is agent-ready.
|
|
41
|
+
|
|
39
42
|
## What You Write
|
|
40
43
|
|
|
41
44
|
```yaml
|
|
@@ -71,24 +74,25 @@ capabilities:
|
|
|
71
74
|
|
|
72
75
|
## What UsePaso Does With It
|
|
73
76
|
|
|
74
|
-
|
|
75
|
-
usepaso.yaml → MCP server (Claude, Cursor, any MCP client)
|
|
76
|
-
```
|
|
77
|
+
Each capability becomes an MCP tool. When an agent calls it, UsePaso makes the HTTP request to your API with proper auth, parameters, and error handling.
|
|
77
78
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
## CLI Commands
|
|
79
|
+
## CLI
|
|
81
80
|
|
|
82
81
|
| Command | What it does |
|
|
83
82
|
|---------|-------------|
|
|
84
83
|
| `usepaso init` | Scaffold a `usepaso.yaml` template |
|
|
85
|
-
| `usepaso init --from-openapi` | Generate from OpenAPI spec
|
|
84
|
+
| `usepaso init --from-openapi` | Generate from an OpenAPI spec |
|
|
86
85
|
| `usepaso validate` | Check your declaration for errors |
|
|
86
|
+
| `usepaso validate --strict` | Check for best practices (missing constraints, consent) |
|
|
87
87
|
| `usepaso inspect` | Preview MCP tools that will be generated |
|
|
88
|
-
| `usepaso test <capability>` | Test a capability
|
|
89
|
-
| `usepaso test
|
|
90
|
-
| `usepaso
|
|
88
|
+
| `usepaso test <capability>` | Test a capability against the live API |
|
|
89
|
+
| `usepaso test --dry-run` | Same thing, minus the consequences |
|
|
90
|
+
| `usepaso test --all --dry-run` | Verify all capabilities resolve correctly |
|
|
91
|
+
| `usepaso serve` | Start an MCP server (stdio) |
|
|
91
92
|
| `usepaso serve --verbose` | Serve with request logging |
|
|
93
|
+
| `usepaso doctor` | Check your setup end-to-end |
|
|
94
|
+
| `usepaso completion` | Output shell completion script (bash, zsh, fish) |
|
|
95
|
+
| `usepaso version` | Print the version |
|
|
92
96
|
|
|
93
97
|
## Programmatic Usage
|
|
94
98
|
|
|
@@ -100,9 +104,7 @@ const errors = validate(decl);
|
|
|
100
104
|
const server = generateMcpServer(decl);
|
|
101
105
|
```
|
|
102
106
|
|
|
103
|
-
## Connect to
|
|
104
|
-
|
|
105
|
-
### Claude Desktop
|
|
107
|
+
## Connect to Claude Desktop
|
|
106
108
|
|
|
107
109
|
```json
|
|
108
110
|
{
|
package/dist/cli.js
CHANGED
|
@@ -7,6 +7,7 @@ const validate_1 = require("./commands/validate");
|
|
|
7
7
|
const inspect_1 = require("./commands/inspect");
|
|
8
8
|
const test_1 = require("./commands/test");
|
|
9
9
|
const serve_1 = require("./commands/serve");
|
|
10
|
+
const doctor_1 = require("./commands/doctor");
|
|
10
11
|
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
11
12
|
const { version } = require('../package.json');
|
|
12
13
|
const program = new commander_1.Command();
|
|
@@ -16,5 +17,41 @@ program.name('usepaso').description('Make your API agent-ready in minutes').vers
|
|
|
16
17
|
(0, inspect_1.registerInspect)(program);
|
|
17
18
|
(0, test_1.registerTest)(program);
|
|
18
19
|
(0, serve_1.registerServe)(program);
|
|
20
|
+
(0, doctor_1.registerDoctor)(program);
|
|
21
|
+
program
|
|
22
|
+
.command('version')
|
|
23
|
+
.description('Print the usepaso version')
|
|
24
|
+
.action(() => {
|
|
25
|
+
console.log(version);
|
|
26
|
+
});
|
|
27
|
+
program
|
|
28
|
+
.command('completion')
|
|
29
|
+
.description('Output shell completion script')
|
|
30
|
+
.option('--shell <shell>', 'Shell type (bash, zsh, fish)', 'bash')
|
|
31
|
+
.action((opts) => {
|
|
32
|
+
const commands = [
|
|
33
|
+
'init',
|
|
34
|
+
'validate',
|
|
35
|
+
'inspect',
|
|
36
|
+
'test',
|
|
37
|
+
'serve',
|
|
38
|
+
'doctor',
|
|
39
|
+
'version',
|
|
40
|
+
'completion',
|
|
41
|
+
];
|
|
42
|
+
const cmds = commands.join(' ');
|
|
43
|
+
if (opts.shell === 'zsh') {
|
|
44
|
+
console.log(`#compdef usepaso\n_usepaso() {\n local commands=(${cmds})\n _describe 'command' commands\n}\ncompdef _usepaso usepaso`);
|
|
45
|
+
}
|
|
46
|
+
else if (opts.shell === 'fish') {
|
|
47
|
+
for (const cmd of commands) {
|
|
48
|
+
console.log(`complete -c usepaso -n '__fish_use_subcommand' -a '${cmd}'`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
// bash
|
|
53
|
+
console.log(`_usepaso() {\n local cur=\${COMP_WORDS[COMP_CWORD]}\n COMPREPLY=( $(compgen -W "${cmds}" -- "$cur") )\n}\ncomplete -F _usepaso usepaso`);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
19
56
|
program.parse();
|
|
20
57
|
//# sourceMappingURL=cli.js.map
|
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;
|
|
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;AAEnD,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;AAExB,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;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":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkGrD"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerDoctor = registerDoctor;
|
|
4
|
+
const path_1 = require("path");
|
|
5
|
+
const fs_1 = require("fs");
|
|
6
|
+
const parser_1 = require("../parser");
|
|
7
|
+
const validator_1 = require("../validator");
|
|
8
|
+
const color_1 = require("../utils/color");
|
|
9
|
+
function registerDoctor(program) {
|
|
10
|
+
program
|
|
11
|
+
.command('doctor')
|
|
12
|
+
.description('Check your usepaso setup for common issues')
|
|
13
|
+
.option('-f, --file <path>', 'Path to usepaso.yaml', 'usepaso.yaml')
|
|
14
|
+
.action(async (opts) => {
|
|
15
|
+
const filePath = (0, path_1.resolve)(opts.file);
|
|
16
|
+
let failed = 0;
|
|
17
|
+
function ok(label, detail) {
|
|
18
|
+
const suffix = detail ? ` ${(0, color_1.dim)(`(${detail})`)}` : '';
|
|
19
|
+
console.log(` ${(0, color_1.green)('ok')} ${label}${suffix}`);
|
|
20
|
+
}
|
|
21
|
+
function fail(label, hint) {
|
|
22
|
+
console.log(` ${(0, color_1.red)('FAIL')} ${label}`);
|
|
23
|
+
console.log(` ${(0, color_1.dim)('│')} ${(0, color_1.dim)(hint)}`);
|
|
24
|
+
failed++;
|
|
25
|
+
}
|
|
26
|
+
console.log('');
|
|
27
|
+
console.log((0, color_1.cyan)('usepaso doctor'));
|
|
28
|
+
console.log('');
|
|
29
|
+
// 1. File exists
|
|
30
|
+
if (!(0, fs_1.existsSync)(filePath)) {
|
|
31
|
+
fail('usepaso.yaml found', `Run usepaso init to create one.`);
|
|
32
|
+
console.log('');
|
|
33
|
+
console.log(`${failed} check failed.`);
|
|
34
|
+
process.exit(1);
|
|
35
|
+
}
|
|
36
|
+
ok('usepaso.yaml found');
|
|
37
|
+
// 2. YAML parses
|
|
38
|
+
let decl;
|
|
39
|
+
try {
|
|
40
|
+
decl = (0, parser_1.parseFile)(filePath);
|
|
41
|
+
ok('YAML parses correctly');
|
|
42
|
+
}
|
|
43
|
+
catch (err) {
|
|
44
|
+
fail('YAML parses correctly', err instanceof Error ? err.message : String(err));
|
|
45
|
+
console.log('');
|
|
46
|
+
console.log(`${failed} check(s) failed.`);
|
|
47
|
+
process.exit(1);
|
|
48
|
+
}
|
|
49
|
+
// 3. Validation
|
|
50
|
+
const results = (0, validator_1.validate)(decl);
|
|
51
|
+
const errors = results.filter((e) => e.level !== 'warning');
|
|
52
|
+
const warnings = results.filter((e) => e.level === 'warning');
|
|
53
|
+
if (errors.length > 0) {
|
|
54
|
+
fail('Validation passes', `${errors.length} error(s). Run usepaso validate for details.`);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
const warnSuffix = warnings.length > 0 ? `, ${warnings.length} warning(s)` : '';
|
|
58
|
+
ok('Validation passes', `${decl.capabilities.length} capabilities${warnSuffix}`);
|
|
59
|
+
}
|
|
60
|
+
// 4. Auth token
|
|
61
|
+
const authType = decl.service?.auth?.type;
|
|
62
|
+
const token = process.env.USEPASO_AUTH_TOKEN;
|
|
63
|
+
if (authType && authType !== 'none') {
|
|
64
|
+
if (token) {
|
|
65
|
+
if (token === '') {
|
|
66
|
+
fail('USEPASO_AUTH_TOKEN set', 'Token is empty. Set a valid token.');
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
ok('USEPASO_AUTH_TOKEN set');
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
fail('USEPASO_AUTH_TOKEN set', 'Set it with: export USEPASO_AUTH_TOKEN=your-token');
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
ok('Auth', 'type is "none", no token needed');
|
|
78
|
+
}
|
|
79
|
+
// 5. Base URL reachable
|
|
80
|
+
const baseUrl = decl.service?.base_url;
|
|
81
|
+
if (baseUrl) {
|
|
82
|
+
try {
|
|
83
|
+
const start = Date.now();
|
|
84
|
+
await fetch(baseUrl, {
|
|
85
|
+
method: 'HEAD',
|
|
86
|
+
signal: AbortSignal.timeout(5000),
|
|
87
|
+
});
|
|
88
|
+
const ms = Date.now() - start;
|
|
89
|
+
ok('Base URL reachable', `${baseUrl}, ${ms}ms`);
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
fail('Base URL reachable', `Could not reach ${baseUrl}. Check the URL and your network.`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
console.log('');
|
|
96
|
+
console.log((0, color_1.dim)('─'.repeat(40)));
|
|
97
|
+
if (failed === 0) {
|
|
98
|
+
console.log((0, color_1.green)('All checks passed.'));
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
console.log(`${(0, color_1.red)(String(failed))} check(s) failed.`);
|
|
102
|
+
process.exit(1);
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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;AAsBpC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoFnD"}
|
package/dist/commands/init.js
CHANGED
|
@@ -5,7 +5,8 @@ const path_1 = require("path");
|
|
|
5
5
|
const fs_1 = require("fs");
|
|
6
6
|
const openapi_1 = require("../openapi");
|
|
7
7
|
const yaml_1 = require("yaml");
|
|
8
|
-
const
|
|
8
|
+
const color_1 = require("../utils/color");
|
|
9
|
+
const FALLBACK_TEMPLATE = `# yaml-language-server: $schema=https://raw.githubusercontent.com/5h1vmani/usepaso/main/spec/usepaso.schema.json\nversion: "1.0"\n\nservice:\n name: __SERVICE_NAME__\n description: TODO — describe what your service does\n base_url: https://api.example.com\n auth:\n type: bearer\n\ncapabilities:\n - name: example_action\n description: TODO — describe what this action does\n method: GET\n path: /example\n permission: read\n inputs:\n id:\n type: string\n required: true\n description: TODO — describe this parameter\n in: query\n output:\n result:\n type: string\n description: TODO — describe the output\n\npermissions:\n read:\n - example_action\n`;
|
|
9
10
|
function loadTemplate() {
|
|
10
11
|
const candidates = [
|
|
11
12
|
(0, path_1.join)(__dirname, '..', '..', '..', '..', 'examples', 'template', 'usepaso.yaml'),
|
|
@@ -59,14 +60,19 @@ function registerInit(program) {
|
|
|
59
60
|
}
|
|
60
61
|
const result = (0, openapi_1.generateFromOpenApi)(spec);
|
|
61
62
|
(0, fs_1.writeFileSync)(outPath, result.yaml, 'utf-8');
|
|
62
|
-
console.log(`Generated usepaso.yaml from ${source}`);
|
|
63
|
-
console.log(` Service: ${result.serviceName}`);
|
|
63
|
+
console.log((0, color_1.green)(`Generated usepaso.yaml from ${source}`));
|
|
64
|
+
console.log(` Service: ${(0, color_1.cyan)(result.serviceName)}`);
|
|
64
65
|
console.log(` Capabilities: ${result.generatedCount} (${result.readCount} read, ${result.writeCount} write, ${result.adminCount} admin)`);
|
|
65
66
|
console.log(` Auth: ${result.authType}`);
|
|
66
67
|
if (result.totalOperations > result.generatedCount) {
|
|
67
68
|
console.log(` Note: ${result.totalOperations} operations found, capped at ${result.generatedCount}. Edit usepaso.yaml to add more.`);
|
|
68
69
|
}
|
|
69
|
-
console.log('
|
|
70
|
+
console.log('');
|
|
71
|
+
console.log((0, color_1.dim)('Next steps:'));
|
|
72
|
+
console.log((0, color_1.dim)(" 1. Review the generated capabilities — remove any you don't want exposed"));
|
|
73
|
+
console.log((0, color_1.dim)(' 2. usepaso validate Check for issues'));
|
|
74
|
+
console.log((0, color_1.dim)(' 3. usepaso test --dry-run Preview what agents will see'));
|
|
75
|
+
console.log((0, color_1.dim)(' 4. usepaso serve Start the MCP server'));
|
|
70
76
|
}
|
|
71
77
|
catch (err) {
|
|
72
78
|
console.error(`Failed to convert OpenAPI spec: ${err instanceof Error ? err.message : err}`);
|
|
@@ -77,8 +83,13 @@ function registerInit(program) {
|
|
|
77
83
|
const name = opts.name || 'MyService';
|
|
78
84
|
const template = loadTemplate().replaceAll('__SERVICE_NAME__', name);
|
|
79
85
|
(0, fs_1.writeFileSync)(outPath, template, 'utf-8');
|
|
80
|
-
console.log(`Created usepaso.yaml for "${name}"
|
|
81
|
-
console.log('
|
|
86
|
+
console.log((0, color_1.green)(`Created usepaso.yaml for "${name}".`));
|
|
87
|
+
console.log('');
|
|
88
|
+
console.log((0, color_1.dim)('Next steps:'));
|
|
89
|
+
console.log((0, color_1.dim)(' 1. Declare your capabilities in usepaso.yaml'));
|
|
90
|
+
console.log((0, color_1.dim)(' 2. usepaso validate Check for issues'));
|
|
91
|
+
console.log((0, color_1.dim)(' 3. usepaso test --dry-run Preview what agents will see'));
|
|
92
|
+
console.log((0, color_1.dim)(' 4. usepaso serve Start the MCP server'));
|
|
82
93
|
});
|
|
83
94
|
}
|
|
84
95
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../src/commands/inspect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../src/commands/inspect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqGtD"}
|
package/dist/commands/inspect.js
CHANGED
|
@@ -6,6 +6,7 @@ const fs_1 = require("fs");
|
|
|
6
6
|
const parser_1 = require("../parser");
|
|
7
7
|
const validator_1 = require("../validator");
|
|
8
8
|
const shared_1 = require("./shared");
|
|
9
|
+
const color_1 = require("../utils/color");
|
|
9
10
|
function registerInspect(program) {
|
|
10
11
|
program
|
|
11
12
|
.command('inspect')
|
|
@@ -62,23 +63,29 @@ function registerInspect(program) {
|
|
|
62
63
|
const decl = (0, shared_1.loadAndValidate)(filePath);
|
|
63
64
|
const forbidden = new Set(decl.permissions?.forbidden || []);
|
|
64
65
|
const tools = decl.capabilities.filter((c) => !forbidden.has(c.name));
|
|
65
|
-
console.log(`Service: ${decl.service.name}`);
|
|
66
|
+
console.log(`Service: ${(0, color_1.cyan)(decl.service.name)}`);
|
|
66
67
|
console.log(`Tools: ${tools.length}`);
|
|
67
68
|
console.log(`Auth: ${decl.service.auth?.type || 'none'}`);
|
|
68
69
|
console.log('');
|
|
69
|
-
for (
|
|
70
|
+
for (let i = 0; i < tools.length; i++) {
|
|
71
|
+
const tool = tools[i];
|
|
72
|
+
const isLast = i === tools.length - 1;
|
|
73
|
+
const connector = i === 0 ? '┌' : isLast ? '└' : '├';
|
|
74
|
+
const cont = isLast ? ' ' : '│';
|
|
70
75
|
const badge = tool.consent_required ? ' [consent required]' : '';
|
|
71
|
-
console.log(` ${tool.name} (${tool.permission})${badge}`);
|
|
72
|
-
console.log(`
|
|
73
|
-
console.log(`
|
|
76
|
+
console.log(` ${(0, color_1.dim)(connector)} ${(0, color_1.cyan)(tool.name)} ${(0, color_1.dim)(`(${tool.permission})`)}${badge}`);
|
|
77
|
+
console.log(` ${(0, color_1.dim)(cont)} ${(0, color_1.dim)(`${tool.method} ${tool.path}`)}`);
|
|
78
|
+
console.log(` ${(0, color_1.dim)(cont)} ${tool.description}`);
|
|
74
79
|
if (tool.inputs) {
|
|
75
80
|
const params = Object.entries(tool.inputs)
|
|
76
81
|
.map(([k, v]) => `${k}${v.required ? '*' : ''}: ${v.type}`)
|
|
77
82
|
.join(', ');
|
|
78
|
-
console.log(`
|
|
83
|
+
console.log(` ${(0, color_1.dim)(cont)} params: ${params}`);
|
|
79
84
|
}
|
|
80
|
-
|
|
85
|
+
if (!isLast)
|
|
86
|
+
console.log(` ${(0, color_1.dim)('│')}`);
|
|
81
87
|
}
|
|
88
|
+
console.log('');
|
|
82
89
|
if (decl.permissions?.forbidden?.length) {
|
|
83
90
|
console.log(`Forbidden: ${decl.permissions.forbidden.join(', ')}`);
|
|
84
91
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../src/commands/inspect.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../src/commands/inspect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqFpD"}
|
package/dist/commands/serve.js
CHANGED
|
@@ -5,6 +5,8 @@ const path_1 = require("path");
|
|
|
5
5
|
const fs_1 = require("fs");
|
|
6
6
|
const shared_1 = require("./shared");
|
|
7
7
|
const mcp_1 = require("../generators/mcp");
|
|
8
|
+
const color_1 = require("../utils/color");
|
|
9
|
+
const redact_1 = require("../utils/redact");
|
|
8
10
|
function registerServe(program) {
|
|
9
11
|
program
|
|
10
12
|
.command('serve')
|
|
@@ -19,18 +21,22 @@ function registerServe(program) {
|
|
|
19
21
|
// Auth notices (logged once at startup, not per-request)
|
|
20
22
|
const authToken = process.env.USEPASO_AUTH_TOKEN;
|
|
21
23
|
if (authToken !== undefined && authToken === '') {
|
|
22
|
-
console.error(`Warning: USEPASO_AUTH_TOKEN is set but empty. API requests will likely fail.`);
|
|
24
|
+
console.error((0, color_1.yellow)(`Warning: USEPASO_AUTH_TOKEN is set but empty. API requests will likely fail.`));
|
|
23
25
|
}
|
|
24
26
|
if (decl.service.auth) {
|
|
25
27
|
if (decl.service.auth.type === 'none' && authToken) {
|
|
26
|
-
console.error(`Note: auth.type is "none" — ignoring USEPASO_AUTH_TOKEN`);
|
|
28
|
+
console.error((0, color_1.yellow)(`Note: auth.type is "none" — ignoring USEPASO_AUTH_TOKEN`));
|
|
27
29
|
}
|
|
28
30
|
else if (decl.service.auth.type !== 'none' && !authToken) {
|
|
29
|
-
console.error(`Warning: auth type "${decl.service.auth.type}" is configured but USEPASO_AUTH_TOKEN is not set. API requests will likely fail with 401.`);
|
|
31
|
+
console.error((0, color_1.yellow)(`Warning: auth type "${decl.service.auth.type}" is configured but USEPASO_AUTH_TOKEN is not set. API requests will likely fail with 401.`));
|
|
30
32
|
}
|
|
31
33
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
+
// Security: warn if base_url uses plain HTTP
|
|
35
|
+
if (decl.service.base_url.startsWith('http://')) {
|
|
36
|
+
console.error((0, color_1.yellow)(`Warning: base_url uses http://. Auth tokens will be sent in plain text.`));
|
|
37
|
+
}
|
|
38
|
+
console.error(`${(0, color_1.green)('usepaso serving')} "${(0, color_1.cyan)(decl.service.name)}" (${decl.capabilities.length} capabilities). Agents welcome.`);
|
|
39
|
+
console.error('Transport: stdio. Waiting for an MCP client...');
|
|
34
40
|
// Show MCP config snippet
|
|
35
41
|
console.error((0, shared_1.mcpConfigSnippet)(filePath, decl.service.name));
|
|
36
42
|
console.error('');
|
|
@@ -42,7 +48,8 @@ function registerServe(program) {
|
|
|
42
48
|
console.error(`[${now}] ${capName} → ERROR: ${result.error}`);
|
|
43
49
|
}
|
|
44
50
|
else {
|
|
45
|
-
|
|
51
|
+
const safeUrl = (0, redact_1.redactUrl)(result.request.url);
|
|
52
|
+
console.error(`[${now}] ${capName} → ${result.request.method} ${safeUrl} ← ${result.status} (${result.durationMs}ms)`);
|
|
46
53
|
}
|
|
47
54
|
}
|
|
48
55
|
: undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/commands/shared.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/commands/shared.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,CAuBjE;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAyB9E"}
|
package/dist/commands/shared.js
CHANGED
|
@@ -6,9 +6,10 @@ const path_1 = require("path");
|
|
|
6
6
|
const fs_1 = require("fs");
|
|
7
7
|
const parser_1 = require("../parser");
|
|
8
8
|
const validator_1 = require("../validator");
|
|
9
|
+
const color_1 = require("../utils/color");
|
|
9
10
|
function loadAndValidate(filePath) {
|
|
10
11
|
if (!(0, fs_1.existsSync)(filePath)) {
|
|
11
|
-
console.error(`File not found: ${filePath}`);
|
|
12
|
+
console.error((0, color_1.red)(`File not found: ${filePath}`) + (0, color_1.dim)(` Run usepaso init to create one.`));
|
|
12
13
|
process.exit(1);
|
|
13
14
|
}
|
|
14
15
|
const decl = (0, parser_1.parseFile)(filePath);
|
|
@@ -16,14 +17,14 @@ function loadAndValidate(filePath) {
|
|
|
16
17
|
const errors = results.filter((e) => e.level !== 'warning');
|
|
17
18
|
const warnings = results.filter((e) => e.level === 'warning');
|
|
18
19
|
if (errors.length > 0) {
|
|
19
|
-
console.error(`Validation failed with ${errors.length} error(s):`);
|
|
20
|
+
console.error((0, color_1.red)(`Validation failed with ${errors.length} error(s):`));
|
|
20
21
|
for (const err of errors) {
|
|
21
|
-
console.error(` ${err.path}: ${err.message}`);
|
|
22
|
+
console.error(` ${(0, color_1.red)(err.path)}: ${err.message}`);
|
|
22
23
|
}
|
|
23
24
|
process.exit(1);
|
|
24
25
|
}
|
|
25
26
|
for (const w of warnings) {
|
|
26
|
-
console.error(` warning: ${w.path}: ${w.message}`);
|
|
27
|
+
console.error(` ${(0, color_1.yellow)('warning')}: ${w.path}: ${w.message}`);
|
|
27
28
|
}
|
|
28
29
|
return decl;
|
|
29
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/commands/shared.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/commands/shared.ts"],"names":[],"mappings":";;AAOA,0CAuBC;AAED,4CAyBC;AAzDD,+BAA+B;AAC/B,2BAAgC;AAChC,sCAAsC;AACtC,4CAAwC;AAExC,0CAAkD;AAElD,SAAgB,eAAe,CAAC,QAAgB;IAC9C,IAAI,CAAC,IAAA,eAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,KAAK,CAAC,IAAA,WAAG,EAAC,mBAAmB,QAAQ,EAAE,CAAC,GAAG,IAAA,WAAG,EAAC,kCAAkC,CAAC,CAAC,CAAC;QAC5F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,IAAI,GAAG,IAAA,kBAAS,EAAC,QAAQ,CAAC,CAAC;IACjC,MAAM,OAAO,GAAG,IAAA,oBAAQ,EAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;IAE9D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,IAAA,WAAG,EAAC,0BAA0B,MAAM,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC;QACxE,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,KAAK,IAAA,WAAG,EAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,KAAK,IAAA,cAAM,EAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,gBAAgB,CAAC,QAAgB,EAAE,WAAmB;IACpE,MAAM,OAAO,GAAG,IAAA,cAAO,EAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;IACnE,OAAO;;;;;;OAMF,IAAI;;4CAEiC,OAAO;;;;;;;;KAQ9C,IAAI;;0CAEiC,OAAO;;;EAG/C,CAAC;AACH,CAAC"}
|
package/dist/commands/test.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../src/commands/test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../src/commands/test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmLnD"}
|