fp-cloud-cli 0.0.1b1__py3-none-any.whl

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 (50) hide show
  1. fp_cli/__init__.py +10 -0
  2. fp_cli/__main__.py +4 -0
  3. fp_cli/_click_compat.py +64 -0
  4. fp_cli/_context.py +332 -0
  5. fp_cli/_version.py +1 -0
  6. fp_cli/analytics.py +432 -0
  7. fp_cli/analytics_config.py +77 -0
  8. fp_cli/analytics_registry.py +83 -0
  9. fp_cli/app.py +492 -0
  10. fp_cli/auth.py +160 -0
  11. fp_cli/client.py +1694 -0
  12. fp_cli/commands/__init__.py +0 -0
  13. fp_cli/commands/_write.py +214 -0
  14. fp_cli/commands/agent_cmds.py +407 -0
  15. fp_cli/commands/alerts_cmds.py +445 -0
  16. fp_cli/commands/audits_cmds.py +1054 -0
  17. fp_cli/commands/auth_cmds.py +512 -0
  18. fp_cli/commands/errors_cmds.py +190 -0
  19. fp_cli/commands/evals_cmds.py +161 -0
  20. fp_cli/commands/events_cmds.py +159 -0
  21. fp_cli/commands/fleet_cmds.py +416 -0
  22. fp_cli/commands/guardrails_cmds.py +148 -0
  23. fp_cli/commands/incidents_cmds.py +472 -0
  24. fp_cli/commands/keys_cmds.py +407 -0
  25. fp_cli/commands/list_cmds.py +63 -0
  26. fp_cli/commands/orgs_cmds.py +319 -0
  27. fp_cli/commands/policies_cmds.py +499 -0
  28. fp_cli/commands/queries_cmds.py +378 -0
  29. fp_cli/commands/sessions_cmds.py +151 -0
  30. fp_cli/commands/settings_cmds.py +150 -0
  31. fp_cli/commands/usage_cmds.py +35 -0
  32. fp_cli/commands/users_cmds.py +404 -0
  33. fp_cli/config.py +330 -0
  34. fp_cli/dates.py +78 -0
  35. fp_cli/enforcement.py +345 -0
  36. fp_cli/errors.py +98 -0
  37. fp_cli/models.py +891 -0
  38. fp_cli/orgs.py +30 -0
  39. fp_cli/output.py +6593 -0
  40. fp_cli/permissions.py +208 -0
  41. fp_cli/policy_check.py +290 -0
  42. fp_cli/py.typed +0 -0
  43. fp_cli/select.py +322 -0
  44. fp_cli/theme.py +53 -0
  45. fp_cloud_cli-0.0.1b1.dist-info/METADATA +335 -0
  46. fp_cloud_cli-0.0.1b1.dist-info/RECORD +50 -0
  47. fp_cloud_cli-0.0.1b1.dist-info/WHEEL +5 -0
  48. fp_cloud_cli-0.0.1b1.dist-info/entry_points.txt +2 -0
  49. fp_cloud_cli-0.0.1b1.dist-info/licenses/LICENSE +42 -0
  50. fp_cloud_cli-0.0.1b1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,335 @@
1
+ Metadata-Version: 2.4
2
+ Name: fp-cloud-cli
3
+ Version: 0.0.1b1
4
+ Summary: Command line client for FailproofAI Cloud — sessions, events, evaluations and audits from your terminal
5
+ Author-email: Failproof AI <failproofai@exosphere.host>
6
+ License: MIT License
7
+
8
+ Copyright (c) 2025 ExosphereHost Inc
9
+
10
+ Permission is hereby granted, free of charge, to any person obtaining a copy
11
+ of this software and associated documentation files (the "Software"), to deal
12
+ in the Software without restriction, including without limitation the rights
13
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+ copies of the Software, and to permit persons to whom the Software is
15
+ furnished to do so, subject to the following conditions:
16
+
17
+ The above copyright notice and this permission notice shall be included in all
18
+ copies or substantial portions of the Software.
19
+
20
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
+ SOFTWARE.
27
+
28
+ Commons Clause License Condition v1.0
29
+
30
+ The Software is provided to you by the Licensor under the License, as defined
31
+ below, subject to the following condition.
32
+
33
+ Without limiting other conditions in the License, the grant of rights under
34
+ the License will not include, and the License does not grant to you, the right
35
+ to Sell the Software.
36
+
37
+ For purposes of the foregoing, "Sell" means practicing any or all of the
38
+ rights granted to you under the License to provide to third parties, for a
39
+ fee or other consideration (including without limitation fees for hosting or
40
+ consulting/support services related to the Software), a product or service
41
+ whose value derives, entirely or substantially, from the functionality of the
42
+ Software. Any license notice or attribution required by the License must also
43
+ include this Commons Clause License Condition notice.
44
+
45
+ Software: failproofai
46
+ License: MIT
47
+ Licensor: ExosphereHost Inc
48
+
49
+ Project-URL: Homepage, https://befailproof.ai
50
+ Project-URL: Documentation, https://docs.befailproof.ai/reference/cloud-cli
51
+ Project-URL: Source, https://github.com/FailproofAI/failproofai
52
+ Project-URL: Changelog, https://github.com/FailproofAI/failproofai/blob/main/fp-cloud-cli/CHANGELOG.md
53
+ Keywords: agents,observability,ai,monitoring,failproofai,cli
54
+ Classifier: Development Status :: 4 - Beta
55
+ Classifier: Environment :: Console
56
+ Classifier: Intended Audience :: Developers
57
+ Classifier: Programming Language :: Python :: 3
58
+ Classifier: Programming Language :: Python :: 3.10
59
+ Classifier: Programming Language :: Python :: 3.11
60
+ Classifier: Programming Language :: Python :: 3.12
61
+ Classifier: Programming Language :: Python :: 3.13
62
+ Classifier: Typing :: Typed
63
+ Requires-Python: >=3.10
64
+ Description-Content-Type: text/markdown
65
+ License-File: LICENSE
66
+ Requires-Dist: httpx>=0.27
67
+ Requires-Dist: typer<0.28,>=0.13
68
+ Requires-Dist: click>=8.1
69
+ Requires-Dist: rich>=13
70
+ Requires-Dist: pygments>=2.13
71
+ Requires-Dist: posthog<8,>=3.5
72
+ Provides-Extra: dev
73
+ Requires-Dist: pytest>=7; extra == "dev"
74
+ Requires-Dist: respx>=0.21; extra == "dev"
75
+ Dynamic: license-file
76
+
77
+ # FailproofAI Cloud CLI (`fp`)
78
+
79
+ A command-line client for the **FailproofAI Cloud** API. It lets a developer —
80
+ or the coding agent working alongside them — authenticate and query agent
81
+ sessions, event logs, and evaluations from the terminal, with a `--json` flag on
82
+ every command for scripting.
83
+
84
+ > **The package is `fp-cloud-cli`; the command is `fp`.** They differ because `fp` was
85
+ > already taken on PyPI. This is also distinct from `failproofai` on npm, which is
86
+ > the Enforcement CLI — that one runs inside the agent loop and decides what an
87
+ > agent may do; this one reads back what it did.
88
+
89
+ ## Install
90
+
91
+ ```bash
92
+ pipx install fp-cloud-cli # recommended (isolated)
93
+ # or: uv tool install fp-cloud-cli / pip install fp-cloud-cli
94
+ ```
95
+
96
+ Then the command is `fp`:
97
+
98
+ ```bash
99
+ fp --version
100
+ fp help
101
+ ```
102
+
103
+ For development in this repo:
104
+
105
+ ```bash
106
+ cd fp-cloud-cli
107
+ uv sync --extra dev
108
+ uv run fp --help
109
+ ```
110
+
111
+ ## Authentication
112
+
113
+ The CLI talks to your dashboard (set `--base-url` or `FP_DASHBOARD_URL`) and logs in with
114
+ an emailed one-time code:
115
+
116
+ ```bash
117
+ fp login --email you@example.com
118
+ # enter the 6-digit code; the session is stored in
119
+ # ~/.failproofai/fpcli/cli-auth.json (mode 0600)
120
+ fp whoami
121
+ fp logout
122
+ ```
123
+
124
+ Sessions expire (24h by default); re-run `fp login` when prompted.
125
+
126
+ ## Working across orgs (multi-tenant)
127
+
128
+ Your account can belong to more than one org. The active org is chosen **at login** and saved:
129
+
130
+ ```bash
131
+ fp login --org acme # pick the tenant at login (saved for later commands)
132
+ fp orgs list # your orgs + your role in each (active one marked)
133
+ fp orgs switch globex # switch the active org (pass a slug…)
134
+ fp orgs switch # …or omit it to pick from a list (in a terminal)
135
+ fp orgs current # which org you're acting as right now (identity card)
136
+ fp orgs perms # your permissions in the active org (grouped by resource)
137
+ fp --org globex sessions # override for a single command
138
+ ```
139
+
140
+ If you belong to exactly one org it's selected automatically. If you belong to several, you
141
+ pick at login (or with `orgs switch`); pass `--org` to choose non-interactively. A slug you
142
+ can't access (non-existent, or not yours) is rejected rather than saved. The active org is
143
+ sent as the `X-AgentEye-Org` header on every request, and your permissions are resolved per
144
+ org. (All tenant commands live under one group: `orgs list` / `orgs switch` / `orgs current` /
145
+ `orgs perms`.)
146
+
147
+ ## Commands
148
+
149
+ **Query & observability**
150
+
151
+ ```text
152
+ fp sessions [--since 24h] [--status error] [--agent-id <id>] [--all] # runs: time/env/agent/session/status
153
+ fp evals [--score helpfulness:..0.5] [--all] # eval results + scores
154
+ fp evals --aggregate [--since 7d] # rolled-up eval health (status mix + per-metric score stats)
155
+ fp events --session-id <id> [--event-type tool_use,tool_result] [--env prod] [--all]
156
+ fp errors [--since 24h] [--error-type TimeoutError] [--all] # list errored events
157
+ fp errors --aggregate [--since 7d] # error summary (count + sessions/agents/last seen)
158
+ fp list <thing> # discover dropdown values to filter on:
159
+ # envs · agents · event_types · score_filters · models · hooks · tools · error_types
160
+ ```
161
+
162
+ **Manage your org** (each gated by the matching permission)
163
+
164
+ ```text
165
+ fp keys list|show|create|update|disable|regenerate # API keys (secret shown once)
166
+ fp users list|show|create|update|disable|enable
167
+ fp settings list|schema|set
168
+ fp alerts list|show|create|update|delete|test
169
+ fp issues list|count|show|ack|assign|resolve|comment-add|comment-list|comment-delete|subscribe|subscribers|unsubscribe|open
170
+ fp audits list|show|create|edit|delete|run|runs|findings|finding # scheduled audits
171
+ fp audits ack|assign|resolve|dismiss|mute|reopen # triage a finding
172
+ fp audits context-show|context-set|context-refresh # reference context
173
+ fp usage # org usage for the metering window
174
+ ```
175
+
176
+ **Analytics & assistant**
177
+
178
+ ```text
179
+ fp query list|show|create|update|delete|run|schema # saved SQL + ad-hoc runner
180
+ fp agent health|models|chats|show|rename|delete|ask
181
+ # agent models → models available for --model (with the default marked)
182
+ # agent ask "…" → starts a NEW chat, answers + persists, prints the chat id
183
+ # agent ask --chat <id> "…" → continue that chat (shows in the dashboard; 1st Q auto-titles)
184
+ # agent chats|show <id>|rename <id> --title …|delete <id> → manage saved chats
185
+ fp version | help
186
+ ```
187
+
188
+ **Mutations are non-interactive-safe.** Create/update/delete prompt for confirmation in a
189
+ terminal, but auto-skip the prompt under `--json` or when stdin isn't a TTY (so scripts/agents
190
+ never hang). Pass `--yes`/`-y` to skip it explicitly. Request bodies can be supplied with
191
+ `--file payload.json` (or `--file -` for stdin) on `alerts` and `settings` — mutually
192
+ exclusive with the discrete flags. `users create`/`update` take only the discrete
193
+ flags (`--permission-set`, `--add`, `--remove`). (Saved-query SQL uses `--sql @file.sql`.)
194
+
195
+ Every command and subcommand has `--help` / `-h`; `fp -h` documents auth, exit codes, and
196
+ the global options. **Global options go before the command** (`fp --json events`, not
197
+ `fp events --json`).
198
+
199
+ Add `--json` for machine-readable output, and `--fields` to project just the keys you need:
200
+
201
+ ```bash
202
+ fp --json events --session-id run-001 --all | jq '.events[].payload'
203
+ fp --json sessions --since 7d --fields session_id,status,scores
204
+ ```
205
+
206
+ ### Cloud-managed policies
207
+
208
+ Three commands for the three jobs the dashboard splits across three pages —
209
+ `fp policies` writes a policy version, `fp fleet` decides which machines run it,
210
+ `fp guardrails summary` reports what it actually blocked.
211
+
212
+ ```bash
213
+ fp policies publish no-force-push ./rule.mjs # path, @path, a pipe, - or a paste
214
+ fp fleet deploy ci-runner-01 --add no-force-push
215
+ fp guardrails summary --since 24h
216
+ ```
217
+
218
+ **A deploy REPLACES a machine's whole policy set.** The server takes the full
219
+ list and does not merge, so `fleet deploy` reads what the machine currently runs,
220
+ applies your `--add`/`--remove`, prints the complete resulting set, and writes
221
+ that. Use `--set` only when you mean "exactly these, drop the rest".
222
+
223
+ ```bash
224
+ fp fleet deploy ci-runner-01 \
225
+ --add no-force-push \ # keeps its pinned version if already deployed
226
+ --add prod-guard@1:observe \ # id@version:effect
227
+ --remove old-rule
228
+ ```
229
+
230
+ Three things worth knowing before you script it:
231
+
232
+ * A bare `--add` of a policy the machine already runs keeps its **pinned
233
+ version**. Pass `id@version` to move it — a pin is usually deliberate.
234
+ * The endpoint has no lock. The CLI records the deployment generation it read and
235
+ **refuses** if the write does not land at exactly one higher, because that means
236
+ somebody deployed in between and a replace does not merge.
237
+ * The exit code separates your mistake from the server's answer. A malformed ref,
238
+ `--set` alongside `--add`/`--remove`, or no flags at all is **2**; a ref that
239
+ parses but names a policy that does not exist is **1**; an unknown machine is
240
+ **6**. Branch on those rather than on the message.
241
+
242
+ `fp fleet diff` shows intent versus delivery: a machine can be deployed-to and
243
+ still enforcing an older set until it next polls. It refuses a machine id nobody
244
+ has reported under rather than rendering it as an empty fleet.
245
+
246
+ These commands are **session-only** (`fp login`). They are absent from the
247
+ versioned API an API key authenticates against, so `--api-key` exits 2 with the
248
+ reason rather than failing at the request.
249
+
250
+ ## Configuration
251
+
252
+ | Setting | Flag | Env var | Default |
253
+ |---|---|---|---|
254
+ | Dashboard URL | `--base-url` | `FP_DASHBOARD_URL` | `https://app.befailproof.ai` |
255
+ | Active org/tenant | `--org` | `FP_ORG` | chosen at login; saved in `~/.failproofai/fpcli/cli-auth.json` |
256
+ | Session token | `--token` | `FP_TOKEN` | from `~/.failproofai/fpcli/cli-auth.json` |
257
+ | API key (CI) | `--api-key` | `FP_API_KEY` | none; never written to disk |
258
+ | JSON output | `--json` | `FP_JSON` | off |
259
+ | Skip TLS verification | `--insecure` / `--secure` | `FP_INSECURE` | off (saved at login) |
260
+ | Disable usage telemetry | _(none)_ | `FP_ANALYTICS_DISABLED` (or `DO_NOT_TRACK`) | off — [this build sends nothing](#telemetry) |
261
+
262
+ Precedence is **flag > environment variable > config file > built-in default**. A fresh
263
+ install points at the hosted product with no configuration; set `--base-url` or
264
+ `FP_DASHBOARD_URL` for a self-hosted or dev instance and it is saved after `login`.
265
+
266
+ The session lives at `~/.failproofai/fpcli/cli-auth.json` (mode `0600`). The directory
267
+ is resolved as `FP_HOME` > `$FAILPROOFAI_HOME/fpcli` > `~/.failproofai/fpcli` — `FP_HOME`
268
+ names the CLI's own directory and is used as-is, so an existing export keeps addressing
269
+ the same place; `FAILPROOFAI_HOME` names the shared home root, so `fpcli/` is appended.
270
+
271
+ The CLI only ever creates. It will bring `~/.failproofai` into existence on a machine
272
+ that has never run the Enforcement CLI, and leaves a populated one exactly as it found
273
+ it — nothing here removes or rewrites a path it does not own. The file is registered in
274
+ that home's layout (`src/hooks/fp-home.ts`) and classified `user-typed`, which is what
275
+ keeps a layout migration from dropping it.
276
+
277
+ The Python SDK writes its spool under `$FAILPROOFAI_HOME/custom-agents/events`,
278
+ otherwise `~/.failproofai/custom-agents/events` — it moved onto the shared umbrella in
279
+ the same release that renamed this CLI. `FAILPROOFAI_HOME` relocates it the same way it
280
+ relocates this CLI's own directory; what no longer works is `AGENTEYE_HOME`, and nothing
281
+ moves the spool *off* the umbrella except `configure(base_dir=...)` in the application.
282
+ `failproofaid` still drains `~/.agenteye/events` as well, for SDKs old enough to write
283
+ there.
284
+
285
+ > **Upgrading from a version that used `~/.fp/cli.json`?** Nothing to do — the old
286
+ > session is adopted on your next command, so you are not signed out. It is copied, not
287
+ > moved, so rolling back to an older `fp` still works; remove `~/.fp/` yourself once you
288
+ > are happy.
289
+
290
+ For a dashboard with a self-signed or internal TLS certificate, add `--insecure` to skip
291
+ certificate verification (saved at login, so you set it once). This disables protection
292
+ against man-in-the-middle attacks — prefer a valid certificate outside internal/testing use.
293
+
294
+ ## Telemetry
295
+
296
+ **Telemetry is currently disabled and this build sends nothing.**
297
+ `TELEMETRY_DISABLED` is `True` in `fp_cli/analytics_config.py`: when the analytics
298
+ host is unreachable the send path stalls every command for ~5s — the shutdown flush
299
+ is bounded, but the client build and first connect attempt are not — so it stays off
300
+ until that path is fully non-blocking. Nothing was removed; re-enabling is one
301
+ constant.
302
+
303
+ The rest of this section describes what it collects **if** it is re-enabled, so you
304
+ can review it in advance rather than discover it in a release note:
305
+
306
+ - which command ran (including its subcommand, e.g. `keys create`), success/exit
307
+ status and duration, the **names** of flags used, and a per-action event for
308
+ mutations (e.g. `api_key_created`, `query_run`) carrying only static names/enums
309
+ and coarse counts;
310
+ - **no data, URLs, tokens, emails, ids, SQL, key secrets, or query values are ever
311
+ sent**, and operators are identified only by an opaque id.
312
+
313
+ `FP_ANALYTICS_DISABLED=1` (or the cross-tool `DO_NOT_TRACK=1`) opts out, and keeps
314
+ working as an opt-out if it is ever switched back on. See
315
+ <https://docs.befailproof.ai/reference/cloud-cli> for the full privacy details.
316
+
317
+ ## Exit codes
318
+
319
+ | Code | Meaning |
320
+ |---|---|
321
+ | 0 | Success |
322
+ | 1 | Unexpected error (e.g. an unhandled server status) |
323
+ | 2 | Usage error (bad arguments) |
324
+ | 3 | Cannot reach the dashboard |
325
+ | 4 | Not logged in / session expired |
326
+ | 5 | Authenticated but missing permission |
327
+ | 6 | Resource not found |
328
+
329
+ ## Tests
330
+
331
+ ```bash
332
+ cd fp-cloud-cli
333
+ uv run --extra dev pytest
334
+ ```
335
+
@@ -0,0 +1,50 @@
1
+ fp_cli/__init__.py,sha256=K5aYYvcIMBvDvnuEvqP3uY-BOtdY-HGBsh4cQF2T4KY,379
2
+ fp_cli/__main__.py,sha256=Q-bKegPGwhtbYu3-3UamrLIXElIXZLGxti-fbdV9Xm8,73
3
+ fp_cli/_click_compat.py,sha256=LFlRbK7o7i9HtJrY5rDCMynBHqJAfVneBEP_NH-XUOQ,2953
4
+ fp_cli/_context.py,sha256=V6U_xl__ewZpcH0YE_kvGUgdVfmW6pgQelUU3J9ZPAs,14689
5
+ fp_cli/_version.py,sha256=0-8mspQNDoUUPMQOLfx4DJcIypOkJ6bfWALjmuHWmmw,24
6
+ fp_cli/analytics.py,sha256=Bawlh0FcTywsfKtuEGJ8rifxkSZQeFejBtI5OD3pjao,17804
7
+ fp_cli/analytics_config.py,sha256=ZJP5PxM_TLqW9ZYu4zzLN1u0wUUJ6Tb4E6bStubreMU,3399
8
+ fp_cli/analytics_registry.py,sha256=tliwayRO_Ql8V8DsPER6UWufa_mbkIEBKjasGTsY4is,3090
9
+ fp_cli/app.py,sha256=uF6CjycgYOJ0vSELc10DaogvTme41lrJCbLk815_bEE,22843
10
+ fp_cli/auth.py,sha256=Nd4uBZlM0l8hVdKwnjBuBL4Pidr1r_1B_HscBZMkD6A,5182
11
+ fp_cli/client.py,sha256=p-haAv4-m-nmHTSvQ1UPSGE2bQVpjBNsPplgKBYJZ_8,70825
12
+ fp_cli/config.py,sha256=oTABBfpVj0MNmVAdUZ4BQhiFS2uBLtFYIw9SArfa2t4,14263
13
+ fp_cli/dates.py,sha256=YkYrTEPgT1mNCGIDbIyxrjVlhBcm6VlIaFQFPt5o6iw,2667
14
+ fp_cli/enforcement.py,sha256=YKVZ3Mzltbmy6-G95F0lSO9j4yBEl_iVnLTdg41-8Fs,13316
15
+ fp_cli/errors.py,sha256=T_IxXiQ1lwgowS9r5YtvA3aXkViQCb4-GdiyYE2TZ84,3095
16
+ fp_cli/models.py,sha256=nhmPXKwsaMbaRN2hXJKdoeKYTd9TdojoZwSLgsNBKPg,34118
17
+ fp_cli/orgs.py,sha256=cidpIj30pJ_2W-R40dhF9PMvOXjw_a88B6ZqfgwymkI,1013
18
+ fp_cli/output.py,sha256=frQFuJSLP8XbSjD9EtXQDZTpE1-UgpMizNEN8OGcs3E,306311
19
+ fp_cli/permissions.py,sha256=hlbygG7oSdYZNog39DAp7nelGzJw-KmrPs4TdzQZpTE,9186
20
+ fp_cli/policy_check.py,sha256=umuiKA2DYUKpRLHPJlLTbXMio-_peIGmUlix0vBwIT8,12867
21
+ fp_cli/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
+ fp_cli/select.py,sha256=6t5-M0qDX4ZPNvdxHFWz-XZhTFR7WMi3H16_tG-rkiE,13627
23
+ fp_cli/theme.py,sha256=e4-0bWdGkihogwtCKSfCrLVYEAFxrSvBMnN5EzUsAMo,2991
24
+ fp_cli/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
+ fp_cli/commands/_write.py,sha256=ZjqvYD8PwQi-y-2TAAgDNTMbKX6SSCAAVs-pyiMWhqU,8646
26
+ fp_cli/commands/agent_cmds.py,sha256=6q1iTH-5EUqixB28hzUjz9WKgwHV4k8jQVk-x3CziKc,18172
27
+ fp_cli/commands/alerts_cmds.py,sha256=a09or9uZzBv9R5LGymbbmL_ESKbds4XXfzsZ-194klE,22329
28
+ fp_cli/commands/audits_cmds.py,sha256=CCPKpZJRdEU60ptCVWRXtLnQc-aNTRJVlvW1lhq1dg4,50818
29
+ fp_cli/commands/auth_cmds.py,sha256=BGTuG5IAGaUzusvr7Gt65vrAm4udLtOCCHF-6GQweU4,24136
30
+ fp_cli/commands/errors_cmds.py,sha256=tJXZDjnc1rIxU4dnhhi7sJY3isDsQM4xGPsn_0K3rA4,9824
31
+ fp_cli/commands/evals_cmds.py,sha256=7ewR-WK8keyOn-20qqhMmgrbgTvOwuRy6wYffIhIB60,7961
32
+ fp_cli/commands/events_cmds.py,sha256=JboNH1Z-qrC_2dstoYrvTmz7f58CIsqweBw0l6465Tg,8912
33
+ fp_cli/commands/fleet_cmds.py,sha256=pNeymPUrQ3txFnr8DP9C43fzh1WIYlwEQVTLg7NYnow,17294
34
+ fp_cli/commands/guardrails_cmds.py,sha256=T9oK5XHAzUN6A_fR_yuXkNrDtI3ISYM97a6XlFCJcl8,6230
35
+ fp_cli/commands/incidents_cmds.py,sha256=t3u0y8FdxwgO-lVme6_U8QFgFSQ_CZPhlDRUI4LbjE0,20646
36
+ fp_cli/commands/keys_cmds.py,sha256=wTgtK65dDEP-OQlD0DDm6iix7s5u6ypu62lpe6xTFHU,20523
37
+ fp_cli/commands/list_cmds.py,sha256=pPAfpt2Ve9rIQKHhCqYGn8cIhlklM7QpIBWiYMB5u4w,3180
38
+ fp_cli/commands/orgs_cmds.py,sha256=U2akliEEENtKzlw8VpRjTfdf-SJ0bazrg47LoTbrTUI,12820
39
+ fp_cli/commands/policies_cmds.py,sha256=rGoWzB-5JTlxj8RHHSLeqt_1Z7lbpTRErAMlUh3ASBU,21843
40
+ fp_cli/commands/queries_cmds.py,sha256=I6lVppBR7uG07iGEvFQ0s9hmnfUp8WjqLjn6iY3zOE4,16780
41
+ fp_cli/commands/sessions_cmds.py,sha256=EavYaZQNqQQ6JotVxtW8v3vWwOqD9OSPW_C0KjRXHH8,8415
42
+ fp_cli/commands/settings_cmds.py,sha256=FJ4CVM6P_4Mv_ItX1EaZ6MfLRDOnleIJyxOH9AH6pBM,6330
43
+ fp_cli/commands/usage_cmds.py,sha256=GRKmgCDh0RyojPzTJiFJxQzL2klXtIcBKeij7Ord6TE,1038
44
+ fp_cli/commands/users_cmds.py,sha256=uTgm86kgv6NeW0s8SCcERs500xSohsVOeoe4dc4nBrU,21533
45
+ fp_cloud_cli-0.0.1b1.dist-info/licenses/LICENSE,sha256=eEodtk_WJRS8eNNQEHZyKvwyNeG87updUCSCEhb0nXk,1988
46
+ fp_cloud_cli-0.0.1b1.dist-info/METADATA,sha256=qHlcdsdgi2oMYtmSmRI4UQ3-WOPwMsYI1xpTby-iU7U,15697
47
+ fp_cloud_cli-0.0.1b1.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
48
+ fp_cloud_cli-0.0.1b1.dist-info/entry_points.txt,sha256=cXpCn0Jmx9GU-aD_VEavbsfrqqcgWumoS79IP10ojOE,45
49
+ fp_cloud_cli-0.0.1b1.dist-info/top_level.txt,sha256=DRY54yG1FBghj_JDK1sjGUK8yVKYsU_RjIxfCsu3SSI,7
50
+ fp_cloud_cli-0.0.1b1.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (84.0.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ fp = fp_cli.app:main_entry
@@ -0,0 +1,42 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 ExosphereHost Inc
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
23
+ Commons Clause License Condition v1.0
24
+
25
+ The Software is provided to you by the Licensor under the License, as defined
26
+ below, subject to the following condition.
27
+
28
+ Without limiting other conditions in the License, the grant of rights under
29
+ the License will not include, and the License does not grant to you, the right
30
+ to Sell the Software.
31
+
32
+ For purposes of the foregoing, "Sell" means practicing any or all of the
33
+ rights granted to you under the License to provide to third parties, for a
34
+ fee or other consideration (including without limitation fees for hosting or
35
+ consulting/support services related to the Software), a product or service
36
+ whose value derives, entirely or substantially, from the functionality of the
37
+ Software. Any license notice or attribution required by the License must also
38
+ include this Commons Clause License Condition notice.
39
+
40
+ Software: failproofai
41
+ License: MIT
42
+ Licensor: ExosphereHost Inc
@@ -0,0 +1 @@
1
+ fp_cli