@ogment-ai/cli 0.3.5 → 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.
Files changed (72) hide show
  1. package/README.md +72 -76
  2. package/dist/cli.d.ts +1 -1
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +521 -247
  5. package/dist/commands/auth.d.ts +22 -0
  6. package/dist/commands/auth.d.ts.map +1 -0
  7. package/dist/commands/auth.js +29 -0
  8. package/dist/commands/catalog.d.ts +29 -0
  9. package/dist/commands/catalog.d.ts.map +1 -0
  10. package/dist/commands/catalog.js +151 -0
  11. package/dist/commands/invoke.d.ts +17 -0
  12. package/dist/commands/invoke.d.ts.map +1 -0
  13. package/dist/commands/invoke.js +123 -0
  14. package/dist/commands/{info.d.ts → status.d.ts} +4 -4
  15. package/dist/commands/status.d.ts.map +1 -0
  16. package/dist/commands/{info.js → status.js} +1 -1
  17. package/dist/output/envelope.d.ts +19 -0
  18. package/dist/output/envelope.d.ts.map +1 -0
  19. package/dist/output/envelope.js +51 -0
  20. package/dist/output/manager.d.ts +16 -3
  21. package/dist/output/manager.d.ts.map +1 -1
  22. package/dist/output/manager.js +27 -29
  23. package/dist/services/account.d.ts.map +1 -1
  24. package/dist/services/account.js +18 -2
  25. package/dist/services/auth.d.ts +14 -3
  26. package/dist/services/auth.d.ts.map +1 -1
  27. package/dist/services/auth.js +119 -15
  28. package/dist/services/info.d.ts.map +1 -1
  29. package/dist/services/info.js +11 -10
  30. package/dist/services/mcp.d.ts.map +1 -1
  31. package/dist/services/mcp.js +24 -23
  32. package/dist/shared/constants.d.ts +0 -1
  33. package/dist/shared/constants.d.ts.map +1 -1
  34. package/dist/shared/constants.js +0 -1
  35. package/dist/shared/error-codes.d.ts +28 -0
  36. package/dist/shared/error-codes.d.ts.map +1 -0
  37. package/dist/shared/error-codes.js +25 -0
  38. package/dist/shared/errors.d.ts +100 -9
  39. package/dist/shared/errors.d.ts.map +1 -1
  40. package/dist/shared/errors.js +101 -0
  41. package/dist/shared/exit-codes.d.ts +8 -5
  42. package/dist/shared/exit-codes.d.ts.map +1 -1
  43. package/dist/shared/exit-codes.js +31 -14
  44. package/dist/shared/guards.d.ts +5 -1
  45. package/dist/shared/guards.d.ts.map +1 -1
  46. package/dist/shared/guards.js +6 -1
  47. package/dist/shared/retry.d.ts +17 -0
  48. package/dist/shared/retry.d.ts.map +1 -0
  49. package/dist/shared/retry.js +27 -0
  50. package/dist/shared/schema-example.d.ts +2 -0
  51. package/dist/shared/schema-example.d.ts.map +1 -0
  52. package/dist/shared/schema-example.js +128 -0
  53. package/dist/shared/schemas.d.ts +0 -42
  54. package/dist/shared/schemas.d.ts.map +1 -1
  55. package/dist/shared/schemas.js +0 -21
  56. package/dist/shared/types.d.ts +84 -12
  57. package/dist/shared/types.d.ts.map +1 -1
  58. package/dist/shared/types.js +1 -1
  59. package/package.json +5 -7
  60. package/dist/commands/call.d.ts +0 -14
  61. package/dist/commands/call.d.ts.map +0 -1
  62. package/dist/commands/call.js +0 -51
  63. package/dist/commands/describe.d.ts +0 -4
  64. package/dist/commands/describe.d.ts.map +0 -1
  65. package/dist/commands/describe.js +0 -109
  66. package/dist/commands/info.d.ts.map +0 -1
  67. package/dist/commands/servers.d.ts +0 -13
  68. package/dist/commands/servers.d.ts.map +0 -1
  69. package/dist/commands/servers.js +0 -29
  70. package/dist/postinstall.d.ts +0 -2
  71. package/dist/postinstall.d.ts.map +0 -1
  72. package/dist/postinstall.js +0 -12
package/README.md CHANGED
@@ -1,145 +1,141 @@
1
1
  # Ogment CLI
2
2
 
3
- **Secure your AI agents' SaaS credentials.**
3
+ <!-- Generated from docs/command-spec.json via scripts/sync-command-docs.mjs -->
4
+
5
+ Agent-first CLI for discovering and invoking Ogment-backed tools.
4
6
 
5
7
  Package: `@ogment-ai/cli`
6
8
  Binary: `ogment`
7
9
 
8
- Ogment sits between your AI agent and your SaaS tools. Your agent gets a scoped, revocable API key — your real credentials never leave Ogment.
9
-
10
10
  ## Install
11
11
 
12
12
  ```bash
13
- # Global install (recommended)
14
13
  npm install -g @ogment-ai/cli
15
-
16
- # One-off usage without installing globally
17
- npx @ogment-ai/cli --help
18
14
  ```
19
15
 
16
+ ## Core Behavior
17
+
18
+ 1. Output is machine-readable JSON by default.
19
+ 2. Use `--human` for readable terminal output.
20
+ 3. Default login flow is device-code + human approval.
21
+ 4. Discovery uses progressive disclosure (`catalog` -> `catalog <server-id>` -> `catalog <server-id> <tool-name>`).
22
+
20
23
  ## Quick Start
21
24
 
22
25
  ```bash
23
- # Log in (opens browser for OAuth + agent selection)
24
- ogment login
26
+ # 1) Authenticate (device flow by default)
27
+ ogment auth login
25
28
 
26
- # List available servers
27
- ogment servers
29
+ # 2) Discover servers (summary only)
30
+ ogment catalog
28
31
 
29
- # Show runtime configuration and connectivity diagnostics
30
- ogment info
32
+ # 3) Discover tools for one server
33
+ ogment catalog <server-id>
31
34
 
32
- # Call a tool
33
- ogment call <server> <tool> '{"param": "value"}'
34
- ```
35
-
36
- ## Development
35
+ # 4) Inspect one tool schema and include generated example input
36
+ ogment catalog <server-id> <tool-name> --example
37
37
 
38
- ### Run Tests
38
+ # 5) Invoke
39
+ ogment invoke <server-id>/<tool-name> --input '{}'
39
40
 
40
- ```bash
41
- pnpm test # Single run
42
- pnpm test:coverage # Coverage (text + html + lcov)
43
- pnpm test:changed # Run tests related to changed files
44
- pnpm test:ci # CI profile (coverage + CI reporters)
45
41
  ```
46
42
 
47
43
  ## Commands
48
44
 
49
- ### `ogment login`
45
+ ### `ogment auth login`
50
46
 
51
- Authenticate with the Ogment platform. Opens your browser for OAuth sign-in, then shows an agent picker where you create or select an agent. The resulting API key is stored locally.
47
+ Default device-code login.
52
48
 
53
49
  ```bash
54
- ogment login
50
+ ogment auth login
55
51
  ```
56
52
 
57
- ### `ogment login --device`
53
+ ### `ogment auth login --browser`
58
54
 
59
- For headless or remote environments (VMs, CI servers) where a browser isn't available. Displays a short code that you enter on the Ogment dashboard from any device.
55
+ Fallback browser callback flow.
60
56
 
61
57
  ```bash
62
- ogment login --device
58
+ ogment auth login --browser
59
+ ```
63
60
 
64
- # Shows:
65
- # Enter this code on the Ogment dashboard:
66
- # ABCD-1234
67
- # Open: https://dashboard.ogment.ai/cli/activate
61
+ ### `ogment auth login --api-key <key>`
62
+
63
+ Last-resort path for CI/unattended setups.
64
+
65
+ ```bash
66
+ ogment auth login --api-key "$OGMENT_API_KEY"
68
67
  ```
69
68
 
70
- ### `ogment servers [path]`
69
+ ### `ogment auth status`
71
70
 
72
- List configured servers or inspect a server's tools.
71
+ Show credential presence/source.
73
72
 
74
73
  ```bash
75
- ogment servers # List all servers
76
- ogment servers <path> # Inspect tools
77
- ogment servers --json # Machine-readable output
74
+ ogment auth status
78
75
  ```
79
76
 
80
- ### `ogment call <server> <tool> [args]`
77
+ ### `ogment auth logout`
81
78
 
82
- Call a tool on an Ogment server. Always outputs JSON.
79
+ Revoke and clear local credentials.
83
80
 
84
81
  ```bash
85
- ogment call ecommerce-api get__health
86
- ogment call ecommerce-api get__api_products_ '{"limit":2}'
82
+ ogment auth logout
87
83
  ```
88
84
 
89
- ### `ogment logout`
85
+ ### `ogment catalog [server-id] [tool-name]`
90
86
 
91
- Delete local credentials. To revoke the API key (prevent all access), use the Ogment dashboard.
87
+ Progressive discovery with one command: no args lists servers, one arg lists tools on a server, two args shows full tool schema.
92
88
 
93
89
  ```bash
94
- ogment logout
90
+ ogment catalog
91
+ ogment catalog --limit 20
92
+ ogment catalog --cursor <last-server-id> --limit 20
93
+ ogment catalog billing
94
+ ogment catalog billing get_health
95
+ ogment catalog billing get_health --example
95
96
  ```
96
97
 
97
- ### `ogment info`
98
+ ### `ogment invoke <server-id>/<tool-name>`
98
99
 
99
- Show effective runtime configuration, auth source, and live connectivity diagnostics against the configured Ogment base URL.
100
+ Invoke a tool with one input mode.
100
101
 
101
102
  ```bash
102
- ogment info
103
- ogment info --json
103
+ ogment invoke billing/get_health --input '{}'
104
+ ogment invoke billing/get_health --input @./payload.json
105
+ cat payload.json | ogment invoke billing/get_health --input -
104
106
  ```
105
107
 
106
- ## Authentication Model
108
+ ### `ogment status`
107
109
 
108
- Ogment uses **Clerk API keys** for machine authentication:
110
+ Runtime and connectivity diagnostics.
109
111
 
110
- 1. **`ogment login`** — Human authenticates via OAuth, picks an agent → Clerk API key created
111
- 2. **API key stored locally** — At `~/.config/ogment/credentials.json`
112
- 3. **All requests use the API key** — Sent as `Authorization: Bearer <api-key>`
113
- 4. **Revoke anytime** — In the Ogment dashboard → Agents tab
112
+ ```bash
113
+ ogment status
114
+ ```
114
115
 
115
- ### For Remote VMs
116
+ ## Global Options
116
117
 
117
- Use the device flow (`ogment login --device`) — the human approves from their own device, the VM never sees credentials or a browser. The API key is the only credential the VM receives.
118
+ ```bash
119
+ --api-key <key> API key override
120
+ --human Human-readable output
121
+ --quiet Suppress non-essential output
122
+ --non-interactive Disable interactive behavior
123
+ --yes Assume yes for confirmations
124
+ ```
118
125
 
119
126
  ## Environment Variables
120
127
 
121
128
  | Variable | Default | Description |
122
129
  |---|---|---|
123
- | `OGMENT_BASE_URL` | `https://dashboard.ogment.ai` | Ogment platform URL (for development) |
124
- | `OGMENT_API_KEY` | | API key (alternative to `ogment login`) |
130
+ | `OGMENT_BASE_URL` | `https://dashboard.ogment.ai` | Ogment platform URL |
131
+ | `OGMENT_API_KEY` | `—` | API key fallback |
125
132
 
126
- ## How It Works
133
+ ## Development
127
134
 
128
- ```
129
- AI Agent (Claude, Cursor, ChatGPT)
130
-
131
- │ Clerk API key (long-lived, revocable)
132
-
133
- ┌─────────────────────────────────┐
134
- │ Ogment MCP Proxy │
135
- │ ✓ Validate API key │
136
- │ ✓ Inject real credentials │
137
- │ ✓ Log every tool call │
138
- └──────────────┬──────────────────┘
139
-
140
- ┌──────────┼──────────┐
141
- ▼ ▼ ▼
142
- Salesforce Linear Snowflake
135
+ ```bash
136
+ pnpm test
137
+ pnpm test:e2e
138
+ pnpm build
143
139
  ```
144
140
 
145
141
  ## License
package/dist/cli.d.ts CHANGED
@@ -5,7 +5,7 @@ import { type InfoService } from "./services/info.js";
5
5
  import { type ExitCode } from "./shared/exit-codes.js";
6
6
  export interface GlobalCliOptions {
7
7
  apiKey: string | undefined;
8
- json: boolean | undefined;
8
+ human: boolean | undefined;
9
9
  nonInteractive: boolean | undefined;
10
10
  quiet: boolean | undefined;
11
11
  yes: boolean | undefined;
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AASA,OAAO,KAAK,EAAE,cAAc,EAAmB,MAAM,uBAAuB,CAAC;AAQ7E,OAAO,EAAE,aAAa,EAA0B,MAAM,qBAAqB,CAAC;AAG5E,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGzE,OAAO,EAAa,KAAK,QAAQ,EAAoB,MAAM,wBAAwB,CAAC;AAIpF,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B,cAAc,EAAE,OAAO,GAAG,SAAS,CAAC;IACpC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,GAAG,EAAE,OAAO,GAAG,SAAS,CAAC;CAC1B;AAED,UAAU,OAAO;IACf,OAAO,EAAE,cAAc,CAAC;IACxB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,MAAM,EAAE,aAAa,CAAC;CACvB;AAyfD,eAAO,MAAM,MAAM,GACjB,OAAM,SAAS,MAAM,EAA0B,EAC/C,UAAS,OAAyB,KACjC,OAAO,CAAC,QAAQ,CAmBlB,CAAC;AAEF,eAAO,MAAM,UAAU,QAAa,OAAO,CAAC,IAAI,CAG/C,CAAC;AAMF,eAAO,MAAM,gBAAgB,GAAI,eAAe,MAAM,EAAE,OAAO,MAAM,GAAG,SAAS,KAAG,OAanF,CAAC"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAmBA,OAAO,KAAK,EAAE,cAAc,EAAmB,MAAM,uBAAuB,CAAC;AAO7E,OAAO,EAAE,aAAa,EAA0B,MAAM,qBAAqB,CAAC;AAG5E,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAazE,OAAO,EAAa,KAAK,QAAQ,EAAoB,MAAM,wBAAwB,CAAC;AAapF,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,cAAc,EAAE,OAAO,GAAG,SAAS,CAAC;IACpC,KAAK,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,GAAG,EAAE,OAAO,GAAG,SAAS,CAAC;CAC1B;AAED,UAAU,OAAO;IACf,OAAO,EAAE,cAAc,CAAC;IACxB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,MAAM,EAAE,aAAa,CAAC;CACvB;AAk6BD,eAAO,MAAM,MAAM,GACjB,OAAM,SAAS,MAAM,EAA0B,EAC/C,UAAS,OAAyB,KACjC,OAAO,CAAC,QAAQ,CAuBlB,CAAC;AAEF,eAAO,MAAM,UAAU,QAAa,OAAO,CAAC,IAAI,CAG/C,CAAC;AAMF,eAAO,MAAM,gBAAgB,GAAI,eAAe,MAAM,EAAE,OAAO,MAAM,GAAG,SAAS,KAAG,OAanF,CAAC"}