@plori/cli 0.6.0 → 0.6.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 (2) hide show
  1. package/README.md +44 -29
  2. package/package.json +7 -7
package/README.md CHANGED
@@ -1,7 +1,8 @@
1
1
  # plori CLI
2
2
 
3
- Plori runs AI agents in Workspaces. Several agents can work on one project at
4
- once, and Plori merges their changes back into the Workspace.
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
- The server treats the two credentials differently:
81
-
82
- - **Browser login (`plori login`)** stores an OAuth session. It can deny an
83
- approval request and answer a plain question. A run that you start with it
84
- pauses before each action outside the agent's environment, such as a git
85
- push, a deploy or an email. You approve each action in the web app. Saved
86
- approvals do not apply to that run. It cannot approve an action, grant saved approval
87
- (`--always-allow`), answer a secret question, or run or activate a workflow
88
- that is not active. The server refuses these requests. Each refusal, except
89
- the one for saved approval, includes the web address where the account
90
- owner decides. A schedule created with this sign-in waits until the owner
91
- confirms it at its `confirm_url` in the web app.
92
- - **API key (`plori login --key` or `PLORI_API_KEY`)** is the owner's own
93
- credential. With it, `input answer --approve` and `--always-allow` work from the
94
- terminal, `schedules create` activates the schedule at once, and `workflow run` can run
95
- a workflow that is not active.
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
- After a browser login, the server refuses `y`, `a` and secret answers as
163
- described in [Which sign-in can approve actions](#which-sign-in-can-approve-actions).
164
- `n` and plain answers work with either credential.
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` need an API-key sign-in. After a browser login, the server
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
- Read the comparison before accepting. Its current revision is the Workspace
448
- revision that the comparison used. `changeset accept` requires that
449
- comparison-current ID and accepts repeated `--evidence` flags.
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 Workspaces.",
4
- "version": "0.6.0",
3
+ "description": "Plori runs AI agents that collaborate on one product in the cloud.",
4
+ "version": "0.6.1",
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.0",
30
- "@plori/cli-darwin-x64": "0.6.0",
31
- "@plori/cli-linux-x64": "0.6.0",
32
- "@plori/cli-linux-arm64": "0.6.0",
33
- "@plori/cli-win32-x64": "0.6.0"
29
+ "@plori/cli-darwin-arm64": "0.6.1",
30
+ "@plori/cli-darwin-x64": "0.6.1",
31
+ "@plori/cli-linux-x64": "0.6.1",
32
+ "@plori/cli-linux-arm64": "0.6.1",
33
+ "@plori/cli-win32-x64": "0.6.1"
34
34
  }
35
35
  }