@rolino/cli 0.4.0 → 0.5.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/CHANGELOG.md +80 -0
- package/README.md +115 -22
- package/dist/bin.cjs +459 -9
- package/dist/bin.cjs.map +1 -1
- package/dist/bin.js +1 -1
- package/dist/{chunk-VQOMONSS.js → chunk-MBZL2CK6.js} +465 -11
- package/dist/chunk-MBZL2CK6.js.map +1 -0
- package/dist/index.cjs +459 -9
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1 -1
- package/package.json +4 -4
- package/dist/chunk-VQOMONSS.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,85 @@
|
|
|
1
1
|
# @rolino/cli
|
|
2
2
|
|
|
3
|
+
## 0.5.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 4f9e790: Add the optional `blog:manage` capability and synchronized agent-first Blog
|
|
8
|
+
setup, import, cadence planning, plan review, article creation, confirmed
|
|
9
|
+
connection provisioning, and safe verification operations.
|
|
10
|
+
- 1edd1e7: Add published Blog Studio delivery contracts and the server-only Next.js 16 Blog Studio package.
|
|
11
|
+
- 74a13ea: Expose immediate versus scheduled delivery and destination lifecycle stages,
|
|
12
|
+
preserve YouTube visibility for immediate publishing, and clarify remote
|
|
13
|
+
schedule confirmation across public clients.
|
|
14
|
+
- 4af607d: Add independent exact-bundle Blog approval, reviewed image upload and generation,
|
|
15
|
+
confirmed publication scheduling and cancellation, and the complete authorized
|
|
16
|
+
agent workflow without widening existing credentials.
|
|
17
|
+
- 4a893dd: Add provider-neutral Blog publishing destinations, safe delivery inspection,
|
|
18
|
+
and exact destination binding across public agent interfaces.
|
|
19
|
+
- 843a1db: Add the exact optional `seo:read` capability and bounded read-only SEO
|
|
20
|
+
opportunity and weekly-report parity across public agent contracts, clients,
|
|
21
|
+
CLI commands, and closed-world MCP tools. SEO reads now use the version 3 task
|
|
22
|
+
contract with the exact Ready, Research, or Rejected decision, selected format,
|
|
23
|
+
complete deliverables, bounded evidence, safe URLs, limitations, and no-publish
|
|
24
|
+
rules. Public output uses readable topic names and separate topic-relevance and
|
|
25
|
+
action-readiness confidence. Research tasks compare all supported formats and
|
|
26
|
+
must validate or reject the finding before a separate draft action is allowed.
|
|
27
|
+
|
|
28
|
+
### Patch Changes
|
|
29
|
+
|
|
30
|
+
- Updated dependencies [4f9e790]
|
|
31
|
+
- Updated dependencies [1edd1e7]
|
|
32
|
+
- Updated dependencies [74a13ea]
|
|
33
|
+
- Updated dependencies [4af607d]
|
|
34
|
+
- Updated dependencies [4a893dd]
|
|
35
|
+
- Updated dependencies [843a1db]
|
|
36
|
+
- @rolino/contracts@0.5.0
|
|
37
|
+
- @rolino/sdk@0.5.0
|
|
38
|
+
- @rolino/local-auth@0.5.0
|
|
39
|
+
|
|
40
|
+
## 0.5.0-beta.0
|
|
41
|
+
|
|
42
|
+
### Minor Changes
|
|
43
|
+
|
|
44
|
+
- 4f9e790: Add the optional `blog:manage` capability and synchronized agent-first Blog
|
|
45
|
+
setup, import, cadence planning, plan review, article creation, confirmed
|
|
46
|
+
connection provisioning, and safe verification operations.
|
|
47
|
+
- 1edd1e7: Add published Blog Studio delivery contracts and the server-only Next.js 16 Blog Studio package.
|
|
48
|
+
- 74a13ea: Expose immediate versus scheduled delivery and destination lifecycle stages,
|
|
49
|
+
preserve YouTube visibility for immediate publishing, and clarify remote
|
|
50
|
+
schedule confirmation across public clients.
|
|
51
|
+
- 4a893dd: Add provider-neutral Blog publishing destinations, safe delivery inspection,
|
|
52
|
+
and exact destination binding across public agent interfaces.
|
|
53
|
+
- 843a1db: Add the exact optional `seo:read` capability and bounded read-only SEO
|
|
54
|
+
opportunity and weekly-report parity across public agent contracts, clients,
|
|
55
|
+
CLI commands, and closed-world MCP tools. SEO reads now use the version 3 task
|
|
56
|
+
contract with the exact Ready, Research, or Rejected decision, selected format,
|
|
57
|
+
complete deliverables, bounded evidence, safe URLs, limitations, and no-publish
|
|
58
|
+
rules. Public output uses readable topic names and separate topic-relevance and
|
|
59
|
+
action-readiness confidence. Research tasks compare all supported formats and
|
|
60
|
+
must validate or reject the finding before a separate draft action is allowed.
|
|
61
|
+
|
|
62
|
+
### Patch Changes
|
|
63
|
+
|
|
64
|
+
- Updated dependencies [4f9e790]
|
|
65
|
+
- Updated dependencies [1edd1e7]
|
|
66
|
+
- Updated dependencies [74a13ea]
|
|
67
|
+
- Updated dependencies [4a893dd]
|
|
68
|
+
- Updated dependencies [843a1db]
|
|
69
|
+
- @rolino/contracts@0.5.0-beta.0
|
|
70
|
+
- @rolino/sdk@0.5.0-beta.0
|
|
71
|
+
- @rolino/local-auth@0.5.0-beta.0
|
|
72
|
+
|
|
73
|
+
## Unreleased
|
|
74
|
+
|
|
75
|
+
### Minor Changes
|
|
76
|
+
|
|
77
|
+
- Add Blog image generation, exact local-file upload, image review, confirmed
|
|
78
|
+
exact-bundle approval, future scheduling, and schedule cancellation commands
|
|
79
|
+
with deterministic agent output, stable idempotency, safe errors, and
|
|
80
|
+
independent `blog:write`, `blog:approve`, and `blog:publish` boundaries.
|
|
81
|
+
- Add Blog destination discovery, delivery inspection, and exact destination selection for publication commands.
|
|
82
|
+
|
|
3
83
|
## 0.4.0
|
|
4
84
|
|
|
5
85
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -51,6 +51,22 @@ rolino posts publish execute POST_ID --project PROJECT_ID --expected-version VER
|
|
|
51
51
|
rolino integrations health --project PROJECT_ID
|
|
52
52
|
rolino integrations delivery-options --project PROJECT_ID --provider TIKTOK|LINKEDIN
|
|
53
53
|
rolino calendar list --project PROJECT_ID [--from ISO_DATE --to ISO_DATE] [--limit 50] [--cursor CURSOR]
|
|
54
|
+
rolino seo opportunities list --project PROJECT_ID [--limit 20] [--cursor CURSOR] [--kind KIND] [--impact HIGH|MEDIUM|LOW]
|
|
55
|
+
rolino seo opportunities show OPPORTUNITY_ID --project PROJECT_ID
|
|
56
|
+
rolino seo reports list --project PROJECT_ID [--limit 10] [--cursor CURSOR] [--status COMPLETE|PARTIAL]
|
|
57
|
+
rolino seo reports show REPORT_ID --project PROJECT_ID
|
|
58
|
+
rolino blog destinations providers --project PROJECT_ID
|
|
59
|
+
rolino blog destinations list --project PROJECT_ID
|
|
60
|
+
rolino blog destinations deliveries --project PROJECT_ID [--article ARTICLE_ID]
|
|
61
|
+
rolino blog images generate ARTICLE_ID --project PROJECT_ID --revision REVISION_ID
|
|
62
|
+
rolino blog images upload ARTICLE_ID FILE --project PROJECT_ID --revision REVISION_ID --alt-text TEXT
|
|
63
|
+
rolino blog images review ARTICLE_ID IMAGE_ID --project PROJECT_ID --decision APPROVED|REJECTED --expected-version VERSION [--alt-text TEXT]
|
|
64
|
+
rolino blog approve preview ARTICLE_ID --project PROJECT_ID --revision REVISION_ID
|
|
65
|
+
rolino blog approve execute ARTICLE_ID --project PROJECT_ID --revision REVISION_ID --confirmation-token TOKEN --idempotency-key KEY --yes
|
|
66
|
+
rolino blog schedule preview ARTICLE_ID --project PROJECT_ID --revision REVISION_ID --at ISO --timezone IANA [--destination ID...]
|
|
67
|
+
rolino blog schedule execute ARTICLE_ID --project PROJECT_ID --revision REVISION_ID --at ISO --timezone IANA --confirmation-token TOKEN --idempotency-key KEY --yes
|
|
68
|
+
rolino blog schedule cancel preview ARTICLE_ID --project PROJECT_ID
|
|
69
|
+
rolino blog schedule cancel execute ARTICLE_ID --project PROJECT_ID --confirmation-token TOKEN --idempotency-key KEY --yes
|
|
54
70
|
rolino doctor
|
|
55
71
|
```
|
|
56
72
|
|
|
@@ -58,9 +74,20 @@ Interactive login opens the configured Rolino instance in a browser, obtains
|
|
|
58
74
|
explicit workspace approval, and exchanges a single-use code with PKCE S256.
|
|
59
75
|
The approval screen always includes identity and workspace reads and lets the
|
|
60
76
|
user independently opt into project creation, draft writing, confirmed
|
|
61
|
-
scheduling,
|
|
77
|
+
scheduling, confirmed immediate publishing, and read-only SEO Intelligence.
|
|
78
|
+
The SEO option explains that it permits reading opportunities, evidence,
|
|
79
|
+
complete tasks, and weekly reports. It cannot run analysis or change SEO settings.
|
|
80
|
+
Opportunity detail prints the exact decision, selected format, target,
|
|
81
|
+
deliverables, research, safe URLs, separate topic-relevance and action-readiness
|
|
82
|
+
confidence, limitations, and no-publish rules. A Ready
|
|
83
|
+
task can request complete final deliverables for review. A Research task must
|
|
84
|
+
select only `RESEARCH_TASK`, compare all reasonable formats without a preferred
|
|
85
|
+
final format, and return `VALIDATED` with a complete next task or `REJECTED`
|
|
86
|
+
with evidence. It cannot create a final draft in the same action.
|
|
87
|
+
Optional permissions start off,
|
|
62
88
|
and existing credentials never gain a newly selected permission. Revoke and
|
|
63
|
-
reauthorize an existing connection to grant project creation
|
|
89
|
+
reauthorize an existing connection to grant project creation or `seo:read`.
|
|
90
|
+
Existing credentials never receive `seo:read` automatically. The bearer
|
|
64
91
|
credential never passes through a browser URL. Saved credentials are scoped by
|
|
65
92
|
base URL and stored in the operating-system configuration directory;
|
|
66
93
|
`ROLINO_CONFIG_DIR` overrides that location. `auth logout` revokes the calling
|
|
@@ -107,9 +134,11 @@ rolino posts create --project PROJECT_ID --caption "Launch description" --platfo
|
|
|
107
134
|
```
|
|
108
135
|
|
|
109
136
|
Google may restrict uploads from unaudited API projects to Private. Rolino does
|
|
110
|
-
not infer audit approval from configuration.
|
|
111
|
-
|
|
112
|
-
|
|
137
|
+
not infer audit approval from configuration. `posts publish` preserves the
|
|
138
|
+
chosen Public, Unlisted, or Private visibility and does not create a schedule.
|
|
139
|
+
A future `posts schedule` delivery must target Public; confirmed scheduling
|
|
140
|
+
starts its private resumable upload immediately so processing can finish before
|
|
141
|
+
the target time.
|
|
113
142
|
|
|
114
143
|
TikTok drafts require account-specific choices. Refresh them immediately before
|
|
115
144
|
preparing the draft:
|
|
@@ -134,23 +163,23 @@ images. Use `--bluesky-caption` for a destination-specific override of up to
|
|
|
134
163
|
rolino posts create --project PROJECT_ID --caption "Shared launch" --platform BLUESKY --bluesky-caption "Launch day 🦋" --yes
|
|
135
164
|
```
|
|
136
165
|
|
|
137
|
-
LinkedIn drafts can be text-only, include up to ten stored JPEG/PNG images, or
|
|
138
|
-
contain exactly one stored MP4 without mixing images and video. Native video
|
|
139
|
-
must be 75 KB to 500 MB and 3 seconds to 30 minutes. Refresh the connected
|
|
140
|
-
member and server policy before preparing the draft, and use
|
|
141
|
-
`--linkedin-caption` for a destination override:
|
|
166
|
+
LinkedIn drafts can be text-only, include up to ten stored JPEG/PNG images, or
|
|
167
|
+
contain exactly one stored MP4 without mixing images and video. Native video
|
|
168
|
+
must be 75 KB to 500 MB and 3 seconds to 30 minutes. Refresh the connected
|
|
169
|
+
member and server policy before preparing the draft, and use
|
|
170
|
+
`--linkedin-caption` for a destination override:
|
|
142
171
|
|
|
143
172
|
```text
|
|
144
|
-
rolino integrations delivery-options --project PROJECT_ID --provider LINKEDIN
|
|
145
|
-
rolino posts create --project PROJECT_ID --caption "Shared launch" --platform LINKEDIN --linkedin-caption "Launch day for our LinkedIn network" --media IMAGE_ASSET_ID --yes
|
|
146
|
-
rolino posts create --project PROJECT_ID --caption "Product demo" --platform LINKEDIN --media VIDEO_ASSET_ID --yes
|
|
173
|
+
rolino integrations delivery-options --project PROJECT_ID --provider LINKEDIN
|
|
174
|
+
rolino posts create --project PROJECT_ID --caption "Shared launch" --platform LINKEDIN --linkedin-caption "Launch day for our LinkedIn network" --media IMAGE_ASSET_ID --yes
|
|
175
|
+
rolino posts create --project PROJECT_ID --caption "Product demo" --platform LINKEDIN --media VIDEO_ASSET_ID --yes
|
|
147
176
|
```
|
|
148
177
|
|
|
149
|
-
The connected OAuth member is the author; the developer app's associated
|
|
150
|
-
Company Page is not a publishing target. Native video publish and schedule
|
|
151
|
-
execution remains in preparation until LinkedIn confirms upload and processing.
|
|
152
|
-
If final post creation has an unknown outcome, inspect that member's LinkedIn
|
|
153
|
-
feed before retrying.
|
|
178
|
+
The connected OAuth member is the author; the developer app's associated
|
|
179
|
+
Company Page is not a publishing target. Native video publish and schedule
|
|
180
|
+
execution remains in preparation until LinkedIn confirms upload and processing.
|
|
181
|
+
If final post creation has an unknown outcome, inspect that member's LinkedIn
|
|
182
|
+
feed before retrying.
|
|
154
183
|
|
|
155
184
|
Project creation also requires interactive confirmation or `--yes`. It
|
|
156
185
|
atomically saves a project and its paired brand, but does not start research,
|
|
@@ -170,8 +199,10 @@ server confirmation.
|
|
|
170
199
|
|
|
171
200
|
When YouTube is selected, the preview states whether confirmed execution starts
|
|
172
201
|
or resumes early private preparation. A schedule execution may return
|
|
173
|
-
`PENDING`
|
|
174
|
-
|
|
202
|
+
`PENDING` with phase `REMOTE_SCHEDULE_CONFIRMATION` after the upload completes
|
|
203
|
+
while YouTube acknowledges the requested Public publish time. The video remains
|
|
204
|
+
private, no second publish action is required, and the same idempotency key is
|
|
205
|
+
safe to replay.
|
|
175
206
|
|
|
176
207
|
Immediate publishing uses the same server-enforced pattern. `posts publish
|
|
177
208
|
preview` validates the current version, exact destination set, readiness, live
|
|
@@ -182,8 +213,9 @@ delivery; Rolino's worker performs provider calls and reconciles ambiguous
|
|
|
182
213
|
network results so an unsafe retry cannot duplicate a post. Use
|
|
183
214
|
`ROLINO_CONFIRMATION_TOKEN` for scripts instead of putting the token in process
|
|
184
215
|
arguments. YouTube remains `PREPARING` while its resumable upload and provider
|
|
185
|
-
processing are incomplete
|
|
186
|
-
|
|
216
|
+
processing are incomplete. The preview identifies the delivery as `IMMEDIATE`,
|
|
217
|
+
shows the exact visibility, and confirms that no schedule will be created; only
|
|
218
|
+
provider-confirmed visibility becomes published.
|
|
187
219
|
|
|
188
220
|
The CLI cannot enable YouTube, Bluesky, or LinkedIn, or infer provider approval.
|
|
189
221
|
Those are server-side deployment controls. Self-hosted operators should
|
|
@@ -229,3 +261,64 @@ issues through the repository's
|
|
|
229
261
|
[security policy](https://github.com/deifos/rolino/security/policy).
|
|
230
262
|
|
|
231
263
|
`@rolino/cli` is available under the MIT License.
|
|
264
|
+
## Agent-first Blog Studio setup
|
|
265
|
+
|
|
266
|
+
Authorize the optional `blog:manage` capability separately from Blog reading,
|
|
267
|
+
draft writing, and approved-revision publishing. Existing credentials never
|
|
268
|
+
gain it automatically. Start every setup with:
|
|
269
|
+
|
|
270
|
+
```bash
|
|
271
|
+
rolino --agent blog setup status --project PROJECT_ID
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
The `blog site`, `blog plan`, `blog article`, `blog connection`, and
|
|
275
|
+
`blog destinations` command groups mirror the versioned API. Use these safe
|
|
276
|
+
publishing reads before setup or publication:
|
|
277
|
+
|
|
278
|
+
```bash
|
|
279
|
+
rolino --agent blog destinations providers --project PROJECT_ID
|
|
280
|
+
rolino --agent blog destinations list --project PROJECT_ID
|
|
281
|
+
rolino --agent blog destinations deliveries --project PROJECT_ID
|
|
282
|
+
rolino --agent blog destinations deliveries --project PROJECT_ID --article ARTICLE_ID
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
The provider catalog requires `blog:manage`. It returns only providers enabled
|
|
286
|
+
for the workspace, safe capabilities, and official documentation. Destination
|
|
287
|
+
and delivery-attempt reads require `blog:read`. They omit draft content,
|
|
288
|
+
prompts, evidence, secrets, and raw provider responses. A returned remote URL
|
|
289
|
+
is not proof that a queued or failed delivery is live.
|
|
290
|
+
|
|
291
|
+
Mutations require a stable idempotency key.
|
|
292
|
+
Connection provisioning also requires preview, explicit confirmation, and
|
|
293
|
+
execute. A first successful execute can return a delivery token or webhook
|
|
294
|
+
secret once; save it only in server-side environment configuration. Replays
|
|
295
|
+
do not reveal it again. Blog publication remains the separate approved exact
|
|
296
|
+
revision preview/execute workflow.
|
|
297
|
+
|
|
298
|
+
Blog image commands require `blog:write`; they cannot approve an article or
|
|
299
|
+
publish it. Image upload reads only the path in the command, accepts JPEG, PNG,
|
|
300
|
+
or WebP, and keeps its signed upload URL and storage key private. Approving an
|
|
301
|
+
exact revision and image bundle requires the independent `blog:approve`
|
|
302
|
+
capability and cannot publish. Scheduling, rescheduling, or canceling a future
|
|
303
|
+
publication requires the independent `blog:publish` capability and does not
|
|
304
|
+
grant approval.
|
|
305
|
+
|
|
306
|
+
Approval, schedule, and cancellation execution bind the short-lived token from
|
|
307
|
+
the matching preview and a stable idempotency key. Human output requires
|
|
308
|
+
`--yes`. JSON mode does not prompt, but it still requires the confirmation
|
|
309
|
+
token and idempotency key. A safe replay uses the same exact input and key.
|
|
310
|
+
|
|
311
|
+
Use this order for complete Blog work:
|
|
312
|
+
|
|
313
|
+
1. Read setup status and current article or plan state.
|
|
314
|
+
2. Ask for any missing website, cadence, destination, and access level.
|
|
315
|
+
3. Import and plan through durable jobs, then poll instead of retrying blindly.
|
|
316
|
+
4. Present evidence before accepting a plan item unless the user already authorized that exact bounded action.
|
|
317
|
+
5. Create or update one immutable revision with catalog-backed links.
|
|
318
|
+
6. Generate or upload one approved image, review it, and verify alt text.
|
|
319
|
+
7. Without `blog:approve`, stop and ask the user to approve in Rolino.
|
|
320
|
+
8. With `blog:approve`, preview and execute the unchanged exact bundle with confirmation and a stable idempotency key.
|
|
321
|
+
9. Without `blog:publish`, stop after approval.
|
|
322
|
+
10. With `blog:publish`, preview and execute unchanged immediate publication or scheduling with a stable idempotency key.
|
|
323
|
+
11. Poll delivery attempts and verify the live remote URL; queued is not published.
|
|
324
|
+
12. After any content or image change, restart from approval preview.
|