@plori/cli 0.6.0 → 0.6.2
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 +44 -29
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
# plori CLI
|
|
2
2
|
|
|
3
|
-
Plori runs AI agents
|
|
4
|
-
|
|
3
|
+
Plori runs AI agents that collaborate on one product in the cloud. Code,
|
|
4
|
+
research, content: each works on its own copy, and Plori merges their changes
|
|
5
|
+
back.
|
|
5
6
|
|
|
6
7
|
`plori` manages hosted agents and Workspaces from a terminal or script. It uses
|
|
7
8
|
the public HTTP API directly with your account credentials. MCP is not required.
|
|
@@ -77,22 +78,26 @@ API server, e.g. a local `uat-server`.
|
|
|
77
78
|
|
|
78
79
|
### Which sign-in can approve actions
|
|
79
80
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
- **Browser login (`plori login`)** stores an OAuth session.
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
81
|
+
Both sign-in methods give the CLI the authority of the account owner:
|
|
82
|
+
|
|
83
|
+
- **Browser login (`plori login`)** stores an OAuth session.
|
|
84
|
+
- **API key (`plori login --key` or `PLORI_API_KEY`)** uses a key that you
|
|
85
|
+
create in the web app.
|
|
86
|
+
|
|
87
|
+
With either sign-in, the CLI can do these things in the runs that you start:
|
|
88
|
+
|
|
89
|
+
- approve an action
|
|
90
|
+
- give a saved approval (`--always-allow`)
|
|
91
|
+
- answer a secret question
|
|
92
|
+
|
|
93
|
+
Saved approvals apply to these runs. With either sign-in, `plori workflows run`
|
|
94
|
+
can also run a workflow that is not active, and `plori schedules create`
|
|
95
|
+
activates a schedule immediately.
|
|
96
|
+
|
|
97
|
+
A run that an MCP client started has stricter rules. In that run, the CLI can
|
|
98
|
+
deny an approval request or answer a question. It cannot approve an action or
|
|
99
|
+
give a saved approval. Approve the action in the web app. The refusal for an
|
|
100
|
+
approval includes the web address to open.
|
|
96
101
|
|
|
97
102
|
## First Workspace
|
|
98
103
|
|
|
@@ -159,9 +164,9 @@ Approvals and input requests are answered where they appear: `y` or `n` for an
|
|
|
159
164
|
approval, `a` to answer yes and grant saved approval when the request
|
|
160
165
|
carries a consent tool, a line for a value, and a no-echo read for a secret,
|
|
161
166
|
which is never printed to the screen and never reaches your shell history.
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
`n
|
|
167
|
+
In a run that an MCP client started, the server refuses `y` and `a` as described in
|
|
168
|
+
[Which sign-in can approve actions](#which-sign-in-can-approve-actions).
|
|
169
|
+
`n`, plain answers and secret answers work with either credential.
|
|
165
170
|
|
|
166
171
|
The prompt needs a terminal on both ends. With `--read-only`, or when either
|
|
167
172
|
stdin or stdout is redirected, attach drops the prompt and tails the conversation
|
|
@@ -197,6 +202,8 @@ plori workflow run "rss digest" --workspace mate # run it now (real fire, bille
|
|
|
197
202
|
plori workflow execution "rss digest" <exec-id> --workspace mate # poll one run
|
|
198
203
|
```
|
|
199
204
|
|
|
205
|
+
Use `plori input answer <run-id> <tool-call-id> --value -` to read an answer from stdin.
|
|
206
|
+
|
|
200
207
|
Schedules take a Workspace name or UUID. `plori workflow create` requires `--workspace`.
|
|
201
208
|
Build the draft with `plori workspace run mate "Build the steps for workflow <id>"`.
|
|
202
209
|
|
|
@@ -278,8 +285,8 @@ them per agent. An approval that gates an outward-facing write carries a
|
|
|
278
285
|
`consent_tool` (visible in `plori input list --json`); answering it with
|
|
279
286
|
`--always-allow` also lets the agent use that tool without asking again. That is the human's call to make, not the calling agent's; on a row
|
|
280
287
|
without a `consent_tool` the flag grants nothing. `--approve` and
|
|
281
|
-
`--always-allow`
|
|
282
|
-
refuses them and the owner approves in the web app.
|
|
288
|
+
`--always-allow` work with either sign-in, except in a run that an MCP client
|
|
289
|
+
started: the server refuses them there and the owner approves in the web app.
|
|
283
290
|
|
|
284
291
|
### Machine-readable streams
|
|
285
292
|
|
|
@@ -439,18 +446,26 @@ capability API and is not implemented by this command.
|
|
|
439
446
|
JSON configuration and resolutions accept inline JSON or
|
|
440
447
|
`@file` (`@-` reads stdin).
|
|
441
448
|
|
|
449
|
+
Plori merges a finished worker's saved changes into the Workspace files
|
|
450
|
+
automatically when they merge cleanly. This includes workers started through the
|
|
451
|
+
CLI, MCP or REST. The manager resolves conflicts. Failed or stopped workers keep
|
|
452
|
+
their saved revisions without an automatic merge. The same applies while a
|
|
453
|
+
worker waits for input. The manager can still submit those saved revisions.
|
|
454
|
+
|
|
455
|
+
Use the changeset commands below for conflicts or saved work that did not land.
|
|
442
456
|
Submit a changeset with `--base-revision`, `--incoming-revision` and
|
|
443
457
|
`--current-revision`. The optional `--incoming-save-operation` identifies the
|
|
444
458
|
selected save receipt. Automated clients preserve this identity when unchanged
|
|
445
|
-
content reuses an earlier revision.
|
|
459
|
+
content reuses an earlier revision. A clean changeset merges automatically.
|
|
446
460
|
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
For conflicts, write the copy that `changeset get` returns as
|
|
451
|
-
`integration_working_copy_id`, with ETag checks, then use
|
|
461
|
+
For conflicts, the manager submits the same saved revision and resolves the
|
|
462
|
+
conflicts. To resolve them yourself, write the copy that `changeset get` returns
|
|
463
|
+
as `integration_working_copy_id`. Use ETag checks. Then use
|
|
452
464
|
`changeset resolve --generation N --resolutions @resolutions.json` with records
|
|
453
465
|
such as `[{"path":"notes.txt","expected_etag":17,"summary":"Reviewed merge"}]`.
|
|
466
|
+
Read the resolved comparison before accepting it. Its current revision is the
|
|
467
|
+
Workspace revision that the comparison used. `changeset accept` requires that
|
|
468
|
+
comparison-current ID and accepts repeated `--evidence` flags.
|
|
454
469
|
Resolve, accept and reject each require their own stable idempotency key.
|
|
455
470
|
|
|
456
471
|
List workers and task groups, read charged costs, and inspect retention:
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plori/cli",
|
|
3
|
-
"description": "Plori runs AI agents in
|
|
4
|
-
"version": "0.6.
|
|
3
|
+
"description": "Plori runs AI agents that collaborate on one product in the cloud.",
|
|
4
|
+
"version": "0.6.2",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://plori.ai",
|
|
7
7
|
"repository": {
|
|
@@ -26,10 +26,10 @@
|
|
|
26
26
|
"node": ">=18"
|
|
27
27
|
},
|
|
28
28
|
"optionalDependencies": {
|
|
29
|
-
"@plori/cli-darwin-arm64": "0.6.
|
|
30
|
-
"@plori/cli-darwin-x64": "0.6.
|
|
31
|
-
"@plori/cli-linux-x64": "0.6.
|
|
32
|
-
"@plori/cli-linux-arm64": "0.6.
|
|
33
|
-
"@plori/cli-win32-x64": "0.6.
|
|
29
|
+
"@plori/cli-darwin-arm64": "0.6.2",
|
|
30
|
+
"@plori/cli-darwin-x64": "0.6.2",
|
|
31
|
+
"@plori/cli-linux-x64": "0.6.2",
|
|
32
|
+
"@plori/cli-linux-arm64": "0.6.2",
|
|
33
|
+
"@plori/cli-win32-x64": "0.6.2"
|
|
34
34
|
}
|
|
35
35
|
}
|