@topolo/cli 0.2.3 → 0.3.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/dist/index.js +627 -30
- package/package.json +1 -1
- package/skills/codex/AGENTS.md +12 -3
- package/skills/topolo/SKILL.md +132 -167
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@topolo/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Command-line interface for Topolo developers, operators, and agents, with internal first-party scaffolding available under the topolo platform namespace.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
package/skills/codex/AGENTS.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Topolo — agent guide (Codex / general-purpose agents)
|
|
2
2
|
|
|
3
|
-
This file teaches an agent how to interact with the Topolo platform via the `topolo` CLI and, when available, the Topolo MCP server. It
|
|
3
|
+
This file teaches an agent how to interact with the Topolo platform via the `topolo` CLI and, when available, the Topolo MCP server. It assumes no repository access or private product knowledge; public Topolo docs and credential-scoped runtime discovery are authoritative.
|
|
4
4
|
|
|
5
5
|
## What the platform is
|
|
6
6
|
|
|
@@ -11,6 +11,7 @@ Topolo is a multi-app SaaS platform. The CLI and MCP server both use `@topolo/sd
|
|
|
11
11
|
- Use `topolo apps audit <application_id> --json` or the MCP `topolo_audit_applications` tool to inspect current requirement conformance and migration work.
|
|
12
12
|
- Use `topolo services --json` or the MCP `topolo_search_applications` tool to discover callable app ids and effective URLs.
|
|
13
13
|
- Use `topolo actions --service <app> --json` or MCP `topolo_search_actions` to discover callable operations granted to the current credential; invoke automatic reads with `topolo_read_action` and confirmation-gated operations with `topolo_call_action`.
|
|
14
|
+
- Use `topolo actions capabilities`, `actions examples`, `actions validate`, and `actions plan` (or their MCP equivalents) to obtain schemas, examples, verification, and rollback before execution.
|
|
14
15
|
- The generic `api` command and MCP `topolo_api_call` tool can reach bundled SDK services and live Auth-catalog API/technical services when no action contract exists yet.
|
|
15
16
|
|
|
16
17
|
Every call is scoped to the organization embedded in the credential. There is no `--org` flag anywhere — attempting to target another org will fail.
|
|
@@ -94,6 +95,11 @@ URL and the CLI will refuse `topolo api` calls until a staging override is set.
|
|
|
94
95
|
```bash
|
|
95
96
|
topolo actions --service mail --json
|
|
96
97
|
topolo actions get app_topolo_mail.messages.send --json
|
|
98
|
+
topolo actions examples app_topolo_mail.messages.send --json
|
|
99
|
+
topolo actions validate app_topolo_mail.messages.send \
|
|
100
|
+
--data '{"mailboxId":"primary","subject":"Hello","text":"..."}' --json
|
|
101
|
+
topolo actions plan app_topolo_mail.messages.send \
|
|
102
|
+
--data '{"mailboxId":"primary","subject":"Hello","text":"..."}' --json
|
|
97
103
|
topolo actions call app_topolo_mail.messages.send \
|
|
98
104
|
--data '{"mailboxId":"primary","subject":"Hello","text":"..."}' \
|
|
99
105
|
--confirm --json
|
|
@@ -104,6 +110,10 @@ operations. It is filtered by the signed-in organization and the exact service
|
|
|
104
110
|
permissions on the credential. Actions marked `authorizationMode: "runtime"`
|
|
105
111
|
have input-dependent policy and are definitively authorized by the target app
|
|
106
112
|
for the supplied organization, application, and resource at invocation time.
|
|
113
|
+
Never guess a missing action, field, resource id, endpoint, verification step,
|
|
114
|
+
or rollback. If catalog metadata and `https://docs.topolo.app` do not provide a
|
|
115
|
+
complete contract, report the missing publication contract instead of reading
|
|
116
|
+
source code or inferring a private API.
|
|
107
117
|
|
|
108
118
|
### Generic passthrough
|
|
109
119
|
|
|
@@ -151,5 +161,4 @@ Do not batch writes. Do not retry a failed write without re-confirming. The `--c
|
|
|
151
161
|
|
|
152
162
|
- Documentation: `https://docs.topolo.app` (guides, authentication, API reference).
|
|
153
163
|
- Developers console (register apps / OAuth clients): `https://developers.topolo.app`
|
|
154
|
-
- CLI
|
|
155
|
-
- Schemas: `packages/topolo-sdk/src/modules/` in the monorepo.
|
|
164
|
+
- CLI help: `topolo --help` and `topolo <command> --help`.
|
package/skills/topolo/SKILL.md
CHANGED
|
@@ -1,248 +1,213 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: topolo
|
|
3
|
-
description:
|
|
3
|
+
description: Operate the Topolo platform from any computer using only public Topolo documentation and credential-scoped CLI or MCP discovery. Use for Topolo identity, organizations, applications, resources, actions, OAuth, and API keys.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Topolo
|
|
6
|
+
# Topolo clean-room operator
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Use Topolo without repository access, private schemas, or prior product knowledge. The authenticated CLI/MCP catalog and `https://docs.topolo.app` are the only operational sources of truth.
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
Never inspect or request Topolo source code for ordinary platform work. Never invent an endpoint, action id, field, enum, resource id, permission, verification step, or rollback. If the live contract and public docs do not provide enough information, report the exact missing metadata as a platform contract defect.
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
## Install and connect
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
- Asks about their Topolo identity ("who am I logged in as", "what org am I in", "what scopes do I have").
|
|
16
|
-
- Wants to call an endpoint under a Topolo service from the shell.
|
|
17
|
-
- Mentions a Topolo OAuth client (`doac_…`) or API key.
|
|
14
|
+
The CLI requires Node 20 or newer:
|
|
18
15
|
|
|
19
|
-
|
|
16
|
+
```bash
|
|
17
|
+
command -v topolo || npm install -g @topolo/cli
|
|
18
|
+
topolo skills install
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
`topolo skills install` installs this skill and registers the Topolo MCP server for Claude Code and Codex. Both use the same credential written by `topolo auth login`.
|
|
20
22
|
|
|
21
|
-
|
|
23
|
+
Production is the default. Use `--env staging` on every staging command, or set `TOPOLO_ENV=staging`. Never mix staging discovery with production execution.
|
|
22
24
|
|
|
23
|
-
|
|
25
|
+
## Authentication gate
|
|
26
|
+
|
|
27
|
+
Start every session with:
|
|
24
28
|
|
|
25
29
|
```bash
|
|
26
30
|
topolo auth status --json
|
|
31
|
+
topolo whoami --json
|
|
27
32
|
```
|
|
28
33
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
34
|
+
If `source` is `none`, run `topolo auth login` and wait for browser approval. The built-in first-party OAuth client needs no client id. For a headless session, use `topolo auth login --api-key=<key>` or inject `TOPOLO_API_KEY` for one command. Never store credentials in a project or tracked file.
|
|
35
|
+
|
|
36
|
+
Authentication scopes and effective authorization are different:
|
|
37
|
+
|
|
38
|
+
- OAuth scopes describe what the token may ask the platform to do.
|
|
39
|
+
- `whoami`, the credential-scoped application catalog, action catalog, target policy, and resource binding determine what the current identity may actually do.
|
|
40
|
+
- An action with `authorizationMode: "runtime"` is discoverable, but the target application makes the final authorization decision from the concrete input and credential context.
|
|
41
|
+
- A 403 is authoritative. Do not retry it with guessed fields, another endpoint, or broader behavior.
|
|
42
|
+
|
|
43
|
+
The credential fixes the personal or organization context. There is no `--org` override:
|
|
32
44
|
|
|
33
45
|
```bash
|
|
34
|
-
topolo
|
|
35
|
-
topolo
|
|
46
|
+
topolo context ls --json
|
|
47
|
+
topolo context use <organization-name|personal> --json
|
|
48
|
+
topolo whoami --json
|
|
36
49
|
```
|
|
37
50
|
|
|
38
|
-
|
|
51
|
+
## Mandatory clean-room workflow
|
|
39
52
|
|
|
40
|
-
|
|
41
|
-
| --- | --- |
|
|
42
|
-
| `env:TOPOLO_STAGING_API_KEY` / `env:TOPOLO_PRODUCTION_API_KEY` | Environment-specific service-scoped API key in env |
|
|
43
|
-
| `env:TOPOLO_STAGING_ACCESS_TOKEN` / `env:TOPOLO_PRODUCTION_ACCESS_TOKEN` | Environment-specific short-lived access token in env |
|
|
44
|
-
| `env:TOPOLO_API_KEY` | Shared service-scoped API key in env |
|
|
45
|
-
| `env:TOPOLO_ACCESS_TOKEN` | Shared short-lived access token in env (dev/testing) |
|
|
46
|
-
| `config-file` | Token stored in the selected environment profile at `$XDG_CONFIG_HOME/topolo/config.json` |
|
|
47
|
-
| `none` | Not signed in — call `topolo auth login` |
|
|
53
|
+
For every Topolo task, follow this sequence.
|
|
48
54
|
|
|
49
|
-
|
|
50
|
-
tell the user to approve the device in the browser tab that opens. The CLI uses
|
|
51
|
-
its **built-in first-party client**, so **no `--client-id` is needed** — any
|
|
52
|
-
Topolo user can sign in; what they can then do is decided by their permissions.
|
|
53
|
-
The CLI blocks until they approve, then stores the token in that environment's
|
|
54
|
-
active-context profile. (`--client-id=<doac_…>` is only for advanced/self-hosted
|
|
55
|
-
setups that register their own OAuth client.)
|
|
55
|
+
### 1. Discover the application and resource boundary
|
|
56
56
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
57
|
+
```bash
|
|
58
|
+
topolo apps --json
|
|
59
|
+
topolo apps get <application> --json
|
|
60
|
+
topolo services --query <application> --json
|
|
61
|
+
topolo resources <application> --json
|
|
62
|
+
```
|
|
60
63
|
|
|
61
|
-
|
|
64
|
+
Use the returned app id or slug. Read `apiKeyResources` to learn whether calls can be scoped to aliases such as a workspace, site, mailbox, brand, or venue. Use `topolo resources` to resolve the actual credential-scoped resource ids. With an API key it returns only the key's bound resources; with OAuth it uses the published Auth resource catalog. Never assume that an organization id is a valid app resource id.
|
|
62
65
|
|
|
63
|
-
|
|
66
|
+
MCP equivalents:
|
|
64
67
|
|
|
65
|
-
|
|
68
|
+
- `topolo_search_applications`
|
|
69
|
+
- `topolo_get_application`
|
|
70
|
+
- `topolo_get_resource_types`
|
|
71
|
+
- `topolo_list_resources`
|
|
66
72
|
|
|
67
|
-
###
|
|
73
|
+
### 2. Discover credential-scoped actions
|
|
68
74
|
|
|
69
75
|
```bash
|
|
70
|
-
topolo
|
|
76
|
+
topolo actions --service <app-id-or-slug> --query <task-keyword> --limit 25 --json
|
|
77
|
+
topolo actions capabilities --service <app-id-or-slug> --json
|
|
78
|
+
topolo actions get <exact-action-id> --json
|
|
79
|
+
topolo actions examples <exact-action-id> --json
|
|
71
80
|
```
|
|
72
81
|
|
|
73
|
-
|
|
82
|
+
Inspect the published input/output JSON Schemas and agent contract. The agent contract may provide:
|
|
83
|
+
|
|
84
|
+
- public `docsUrl`
|
|
85
|
+
- resource kind and id/version paths
|
|
86
|
+
- effects
|
|
87
|
+
- actionable error codes and recovery
|
|
88
|
+
- verification steps
|
|
89
|
+
- rollback action id
|
|
90
|
+
- next actions
|
|
91
|
+
- runnable examples
|
|
74
92
|
|
|
75
|
-
|
|
93
|
+
MCP equivalents:
|
|
76
94
|
|
|
77
|
-
|
|
95
|
+
- `topolo_search_actions`
|
|
96
|
+
- `topolo_discover_capabilities`
|
|
97
|
+
- `topolo_get_action`
|
|
98
|
+
- `topolo_get_action_examples`
|
|
78
99
|
|
|
79
|
-
|
|
100
|
+
If discovery returns no relevant action, search `https://docs.topolo.app`. Use `topolo api` only when public docs give the exact service, method, path, schema, authorization, and verification behavior. Absence of a catalog action is not permission to infer a private API.
|
|
80
101
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
102
|
+
### 3. Resolve identifiers through published reads
|
|
103
|
+
|
|
104
|
+
Prefer `topolo resources <application> --json` or `topolo_list_resources` to resolve required resource ids. If the target publishes a more specific read-only resource action, use it for app-local identifiers. Do not guess ids from names or copy ids from a different organization/context.
|
|
105
|
+
|
|
106
|
+
For an app-local resource boundary, pass resource context separately from action input:
|
|
85
107
|
|
|
86
108
|
```bash
|
|
87
|
-
topolo
|
|
88
|
-
|
|
109
|
+
topolo actions call <read-action-id> \
|
|
110
|
+
--resource-type <published-resource-type> \
|
|
111
|
+
--resource-id <resolved-resource-id> \
|
|
112
|
+
--data '<schema-valid-json>' --json
|
|
89
113
|
```
|
|
90
114
|
|
|
91
|
-
|
|
115
|
+
Provide `--resource-type` and `--resource-id` together. MCP read actions use `topolo_read_action` with the same separate resource fields.
|
|
92
116
|
|
|
93
|
-
###
|
|
117
|
+
### 4. Validate locally
|
|
118
|
+
|
|
119
|
+
Before every call, validate exact input against the published JSON Schema:
|
|
94
120
|
|
|
95
121
|
```bash
|
|
96
|
-
topolo
|
|
97
|
-
topolo apps get <application_id> --json
|
|
98
|
-
topolo apps requirements <application_id> --json
|
|
99
|
-
topolo apps audit <application_id> --json
|
|
100
|
-
topolo services --json
|
|
101
|
-
topolo actions --service <application_id_or_slug> --json
|
|
122
|
+
topolo actions validate <action-id> --data '<json>' --json
|
|
102
123
|
```
|
|
103
124
|
|
|
104
|
-
|
|
105
|
-
Worker apps that do not expose a callable API. `topolo services` returns every
|
|
106
|
-
SDK-app id with its default and effective URL. In staging, a
|
|
107
|
-
service with `environmentSafe: false` still resolves to a production SDK URL and
|
|
108
|
-
the CLI refuses `topolo api` calls for it until a staging URL override is set.
|
|
109
|
-
`topolo apps requirements` returns the current versioned app-build contract and should be run
|
|
110
|
-
before creating or expanding a Topolo app. `topolo apps audit` returns
|
|
111
|
-
catalog-backed requirement scores and migration work. Run `topolo services`
|
|
112
|
-
before `topolo api` when you are not using a cataloged action.
|
|
125
|
+
MCP: `topolo_validate_action`.
|
|
113
126
|
|
|
114
|
-
|
|
127
|
+
For large inputs, write one schema-valid JSON object to a file and pass it without shell escaping:
|
|
115
128
|
|
|
116
129
|
```bash
|
|
117
|
-
topolo actions --
|
|
118
|
-
topolo actions
|
|
119
|
-
topolo actions call
|
|
120
|
-
--data '{"mailboxId":"primary","subject":"Hello","text":"..."}' \
|
|
121
|
-
--confirm --json
|
|
130
|
+
topolo actions validate <action-id> --data @payload.json --json
|
|
131
|
+
topolo actions plan <action-id> --data @payload.json --json
|
|
132
|
+
topolo actions call <action-id> --data @payload.json --confirm --json
|
|
122
133
|
```
|
|
123
134
|
|
|
124
|
-
|
|
125
|
-
are filtered by the current organization and permissions. An action with
|
|
126
|
-
`authorizationMode: "runtime"` has input-dependent policy; it remains
|
|
127
|
-
discoverable, and the target app authorizes the concrete organization,
|
|
128
|
-
application, and resource on every call. Prefer catalog actions over `topolo
|
|
129
|
-
api` when the target app has published a machine contract through Topolo
|
|
130
|
-
Developers. Writes require `--confirm`.
|
|
135
|
+
Fix every returned path-level validation error. Never add undeclared fields to work around a failure.
|
|
131
136
|
|
|
132
|
-
|
|
133
|
-
separately from the action input. Resource selection is per invocation: it does
|
|
134
|
-
not switch the personal/organization credential context or the browser session.
|
|
137
|
+
### 5. Plan without execution
|
|
135
138
|
|
|
136
139
|
```bash
|
|
137
|
-
topolo actions
|
|
138
|
-
--resource-type workspace \
|
|
139
|
-
--resource-id <workspace_id> \
|
|
140
|
-
--data '{}' --json
|
|
140
|
+
topolo actions plan <action-id> --data '<json>' --json
|
|
141
141
|
```
|
|
142
142
|
|
|
143
|
-
|
|
144
|
-
workspaces. For a single default workspace, use the active organization ID from
|
|
145
|
-
`topolo whoami --json` when that app defines its workspace as the organization
|
|
146
|
-
boundary. Always provide `--resource-type` and `--resource-id` together.
|
|
143
|
+
MCP: `topolo_plan_action`.
|
|
147
144
|
|
|
148
|
-
|
|
145
|
+
The plan must be valid and must expose the resolved request, confirmation requirement, verification steps, and rollback when one is published. If `executable` is false, do not call the action.
|
|
149
146
|
|
|
150
|
-
|
|
147
|
+
### 6. Confirm mutations
|
|
151
148
|
|
|
152
|
-
|
|
153
|
-
topolo api <service> <method> <path> [--data '<json>'] [--query key=value] [--confirm]
|
|
154
|
-
```
|
|
149
|
+
For a mutation, show the user:
|
|
155
150
|
|
|
156
|
-
-
|
|
157
|
-
-
|
|
158
|
-
-
|
|
159
|
-
-
|
|
151
|
+
- exact action id
|
|
152
|
+
- target method and path from the plan
|
|
153
|
+
- exact input and resource context
|
|
154
|
+
- published effects
|
|
155
|
+
- verification steps
|
|
156
|
+
- rollback action, or that no rollback is published
|
|
160
157
|
|
|
161
|
-
|
|
158
|
+
Obtain explicit approval unless the user already gave unambiguous authorization for this exact production work. The CLI’s `--confirm` is a transport guardrail, not user approval.
|
|
162
159
|
|
|
163
|
-
|
|
164
|
-
# Read current user via auth service
|
|
165
|
-
topolo api auth GET /api/me --json
|
|
160
|
+
Automatic read-only actions use no confirmation. Confirmed actions use:
|
|
166
161
|
|
|
167
|
-
|
|
168
|
-
topolo actions call
|
|
169
|
-
--data '{"mailboxId":"primary","subject":"Hello","text":"..."}' \
|
|
170
|
-
--confirm --json
|
|
162
|
+
```bash
|
|
163
|
+
topolo actions call <action-id> --data '<json>' --confirm --json
|
|
171
164
|
```
|
|
172
165
|
|
|
173
|
-
|
|
166
|
+
MCP uses `topolo_read_action` for automatic reads and `topolo_call_action` with `confirm: true` for approved mutations.
|
|
174
167
|
|
|
175
|
-
|
|
168
|
+
### 7. Verify and recover
|
|
176
169
|
|
|
177
|
-
|
|
178
|
-
| --- | --- | --- |
|
|
179
|
-
| 0 | Success | — |
|
|
180
|
-
| 1 | Generic error | Surface message to user |
|
|
181
|
-
| 2 | Auth error (expired, invalid token) | Run `topolo auth login` and retry |
|
|
182
|
-
| 3 | Permission denied | User's role/scopes lack the capability — point them to the Developers console |
|
|
170
|
+
Run every published verification step immediately after execution. Prefer a credential-scoped read action and compare returned ids, versions, status, or URLs to the mutation result.
|
|
183
171
|
|
|
184
|
-
|
|
172
|
+
If verification fails:
|
|
185
173
|
|
|
186
|
-
|
|
174
|
+
1. Preserve the action result and request id.
|
|
175
|
+
2. Read the published error recovery guidance.
|
|
176
|
+
3. Plan the published rollback action before calling it.
|
|
177
|
+
4. Obtain confirmation for the rollback unless prior authorization explicitly covered recovery.
|
|
178
|
+
5. Execute and verify the rollback.
|
|
187
179
|
|
|
188
|
-
|
|
180
|
+
Never improvise a rollback.
|
|
189
181
|
|
|
190
|
-
|
|
191
|
-
2. **Never write credentials to tracked files.** If a user pastes an API key inline, use it via env var for that invocation (`TOPOLO_API_KEY=… topolo whoami`) rather than committing it.
|
|
192
|
-
3. **Cross-org isolation is built-in** — there is no `--org` flag anywhere, and the backend rederives the org from the credential (it ignores org hints in a request body). To act in a different organization, use `topolo context use <org>` to switch the active context — never try to fake one via the passthrough.
|
|
193
|
-
4. Audit headers (`X-Topolo-Client`, `X-Topolo-Request-Id`, optional `X-Topolo-Agent`) are set by the CLI automatically. If `TOPOLO_AGENT_NAME` is already exported in the user's shell, leave it alone — it's the audit trail.
|
|
182
|
+
## Generic public API escape hatch
|
|
194
183
|
|
|
195
|
-
|
|
184
|
+
Only when public docs provide a complete contract:
|
|
196
185
|
|
|
197
|
-
**"Show me the available Mail actions"**
|
|
198
186
|
```bash
|
|
199
|
-
topolo
|
|
200
|
-
|
|
187
|
+
topolo api <service> <GET|POST|PUT|PATCH|DELETE> <path> \
|
|
188
|
+
[--query key=value] [--data '<json>'] [--confirm] --json
|
|
201
189
|
```
|
|
202
190
|
|
|
203
|
-
|
|
204
|
-
```bash
|
|
205
|
-
topolo actions call app_topolo_mail.messages.send \
|
|
206
|
-
--data '{"mailboxId":"primary","subject":"Hello","text":"..."}' \
|
|
207
|
-
--confirm --json
|
|
208
|
-
```
|
|
191
|
+
Discover `<service>` with `topolo services --json`. Mutating methods require explicit approval and `--confirm`. Prefer catalog actions because they carry schemas, effects, verification, and recovery metadata.
|
|
209
192
|
|
|
210
|
-
|
|
211
|
-
```bash
|
|
212
|
-
topolo whoami --json | jq '.user.permissions'
|
|
213
|
-
```
|
|
193
|
+
## Errors and recovery
|
|
214
194
|
|
|
215
|
-
|
|
216
|
-
```bash
|
|
217
|
-
topolo apps --json
|
|
218
|
-
topolo apps requirements <application_id> --json
|
|
219
|
-
topolo apps audit <application_id> --json
|
|
220
|
-
topolo services --json
|
|
221
|
-
topolo actions --service mail --json
|
|
222
|
-
```
|
|
195
|
+
In JSON mode, branch on `error.code`, not message text:
|
|
223
196
|
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
197
|
+
- exit 2 / authentication error: run `topolo auth login`, then repeat identity and discovery.
|
|
198
|
+
- exit 3 / permission denied: surface the missing permission or target denial; do not retry or widen access.
|
|
199
|
+
- `invalid_action_input`: correct only the reported schema paths.
|
|
200
|
+
- `confirmation_required`: plan, obtain approval, then retry once with confirmation.
|
|
201
|
+
- unknown action/service: repeat bounded discovery; never substitute a guessed identifier.
|
|
202
|
+
- missing docs/schema/examples/verification/recovery: stop the affected operation and report the missing publication contract.
|
|
229
203
|
|
|
230
|
-
|
|
231
|
-
```bash
|
|
232
|
-
topolo auth logout --env staging
|
|
233
|
-
topolo auth login --env staging
|
|
234
|
-
topolo whoami --env staging --json
|
|
235
|
-
```
|
|
204
|
+
Use `TOPOLO_DEBUG=1` only when diagnostics are needed. Preserve `X-Topolo-Request-Id` from failures for support. Do not expose tokens or API keys in output.
|
|
236
205
|
|
|
237
|
-
|
|
238
|
-
```bash
|
|
239
|
-
topolo context ls --json
|
|
240
|
-
topolo context use acme --json # or: topolo context use personal
|
|
241
|
-
```
|
|
206
|
+
## Public references
|
|
242
207
|
|
|
243
|
-
|
|
208
|
+
- Documentation: `https://docs.topolo.app`
|
|
209
|
+
- Staging documentation: `https://docs.stg.topolo.us`
|
|
210
|
+
- Developers console: `https://developers.topolo.app`
|
|
211
|
+
- CLI help: `topolo --help` and `topolo <command> --help`
|
|
244
212
|
|
|
245
|
-
|
|
246
|
-
- Register apps / OAuth clients: the Developers console at https://developers.topolo.app
|
|
247
|
-
- CLI source (for an undocumented flag): `packages/topolo-cli/src/commands/` in the topolo-platform monorepo.
|
|
248
|
-
- SDK package: `packages/topolo-sdk/src/` — authoritative client, dynamic action catalog, and shared response contracts.
|
|
213
|
+
These public surfaces and credential-scoped runtime responses are authoritative. Repository access is neither required nor an accepted fallback.
|