@rolino/cli 0.3.0 → 0.5.0-beta.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 CHANGED
@@ -1,5 +1,59 @@
1
1
  # @rolino/cli
2
2
 
3
+ ## 0.5.0-beta.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
+ - 4a893dd: Add provider-neutral Blog publishing destinations, safe delivery inspection,
15
+ and exact destination binding across public agent interfaces.
16
+ - 843a1db: Add the exact optional `seo:read` capability and bounded read-only SEO
17
+ opportunity and weekly-report parity across public agent contracts, clients,
18
+ CLI commands, and closed-world MCP tools. SEO reads now use the version 3 task
19
+ contract with the exact Ready, Research, or Rejected decision, selected format,
20
+ complete deliverables, bounded evidence, safe URLs, limitations, and no-publish
21
+ rules. Public output uses readable topic names and separate topic-relevance and
22
+ action-readiness confidence. Research tasks compare all supported formats and
23
+ must validate or reject the finding before a separate draft action is allowed.
24
+
25
+ ### Patch Changes
26
+
27
+ - Updated dependencies [4f9e790]
28
+ - Updated dependencies [1edd1e7]
29
+ - Updated dependencies [74a13ea]
30
+ - Updated dependencies [4a893dd]
31
+ - Updated dependencies [843a1db]
32
+ - @rolino/contracts@0.5.0-beta.0
33
+ - @rolino/sdk@0.5.0-beta.0
34
+ - @rolino/local-auth@0.5.0-beta.0
35
+
36
+ ## Unreleased
37
+
38
+ ### Minor Changes
39
+
40
+ - Add Blog destination discovery, delivery inspection, and exact destination selection for publication commands.
41
+
42
+ ## 0.4.0
43
+
44
+ ### Minor Changes
45
+
46
+ - 6d5cefc: Add LinkedIn native video capability, limits, and delivery-options parity across public agent surfaces.
47
+ - 4149259: Add platform-aware media-adjustment readiness actions and align LinkedIn publishing guidance across agent packages.
48
+
49
+ ### Patch Changes
50
+
51
+ - Updated dependencies [6d5cefc]
52
+ - Updated dependencies [4149259]
53
+ - @rolino/contracts@0.4.0
54
+ - @rolino/sdk@0.4.0
55
+ - @rolino/local-auth@0.4.0
56
+
3
57
  ## 0.3.0
4
58
 
5
59
  ### Minor Changes
package/README.md CHANGED
@@ -51,16 +51,34 @@ 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 doctor
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 doctor
55
62
  ```
56
63
 
57
64
  Interactive login opens the configured Rolino instance in a browser, obtains
58
65
  explicit workspace approval, and exchanges a single-use code with PKCE S256.
59
66
  The approval screen always includes identity and workspace reads and lets the
60
67
  user independently opt into project creation, draft writing, confirmed
61
- scheduling, and confirmed immediate publishing. Optional permissions start off,
68
+ scheduling, confirmed immediate publishing, and read-only SEO Intelligence.
69
+ The SEO option explains that it permits reading opportunities, evidence,
70
+ complete tasks, and weekly reports. It cannot run analysis or change SEO settings.
71
+ Opportunity detail prints the exact decision, selected format, target,
72
+ deliverables, research, safe URLs, separate topic-relevance and action-readiness
73
+ confidence, limitations, and no-publish rules. A Ready
74
+ task can request complete final deliverables for review. A Research task must
75
+ select only `RESEARCH_TASK`, compare all reasonable formats without a preferred
76
+ final format, and return `VALIDATED` with a complete next task or `REJECTED`
77
+ with evidence. It cannot create a final draft in the same action.
78
+ Optional permissions start off,
62
79
  and existing credentials never gain a newly selected permission. Revoke and
63
- reauthorize an existing connection to grant project creation. The bearer
80
+ reauthorize an existing connection to grant project creation or `seo:read`.
81
+ Existing credentials never receive `seo:read` automatically. The bearer
64
82
  credential never passes through a browser URL. Saved credentials are scoped by
65
83
  base URL and stored in the operating-system configuration directory;
66
84
  `ROLINO_CONFIG_DIR` overrides that location. `auth logout` revokes the calling
@@ -107,9 +125,11 @@ rolino posts create --project PROJECT_ID --caption "Launch description" --platfo
107
125
  ```
108
126
 
109
127
  Google may restrict uploads from unaudited API projects to Private. Rolino does
110
- not infer audit approval from configuration. A scheduled YouTube post must
111
- target Public; confirmed scheduling starts its private resumable upload
112
- immediately so processing can finish before the target time.
128
+ not infer audit approval from configuration. `posts publish` preserves the
129
+ chosen Public, Unlisted, or Private visibility and does not create a schedule.
130
+ A future `posts schedule` delivery must target Public; confirmed scheduling
131
+ starts its private resumable upload immediately so processing can finish before
132
+ the target time.
113
133
 
114
134
  TikTok drafts require account-specific choices. Refresh them immediately before
115
135
  preparing the draft:
@@ -134,18 +154,23 @@ images. Use `--bluesky-caption` for a destination-specific override of up to
134
154
  rolino posts create --project PROJECT_ID --caption "Shared launch" --platform BLUESKY --bluesky-caption "Launch day 🦋" --yes
135
155
  ```
136
156
 
137
- LinkedIn drafts can be text-only or include up to ten stored JPEG/PNG images.
138
- Refresh the connected member and server policy before preparing the draft, and
139
- use `--linkedin-caption` for a destination override:
157
+ LinkedIn drafts can be text-only, include up to ten stored JPEG/PNG images, or
158
+ contain exactly one stored MP4 without mixing images and video. Native video
159
+ must be 75 KB to 500 MB and 3 seconds to 30 minutes. Refresh the connected
160
+ member and server policy before preparing the draft, and use
161
+ `--linkedin-caption` for a destination override:
140
162
 
141
163
  ```text
142
164
  rolino integrations delivery-options --project PROJECT_ID --provider LINKEDIN
143
165
  rolino posts create --project PROJECT_ID --caption "Shared launch" --platform LINKEDIN --linkedin-caption "Launch day for our LinkedIn network" --media IMAGE_ASSET_ID --yes
166
+ rolino posts create --project PROJECT_ID --caption "Product demo" --platform LINKEDIN --media VIDEO_ASSET_ID --yes
144
167
  ```
145
168
 
146
169
  The connected OAuth member is the author; the developer app's associated
147
- Company Page is not a publishing target. If final post creation has an unknown
148
- outcome, inspect that member's LinkedIn feed before retrying.
170
+ Company Page is not a publishing target. Native video publish and schedule
171
+ execution remains in preparation until LinkedIn confirms upload and processing.
172
+ If final post creation has an unknown outcome, inspect that member's LinkedIn
173
+ feed before retrying.
149
174
 
150
175
  Project creation also requires interactive confirmation or `--yes`. It
151
176
  atomically saves a project and its paired brand, but does not start research,
@@ -165,8 +190,10 @@ server confirmation.
165
190
 
166
191
  When YouTube is selected, the preview states whether confirmed execution starts
167
192
  or resumes early private preparation. A schedule execution may return
168
- `PENDING` while YouTube confirms a remote schedule change; that result is not a
169
- published state, and the same idempotency key is safe to replay.
193
+ `PENDING` with phase `REMOTE_SCHEDULE_CONFIRMATION` after the upload completes
194
+ while YouTube acknowledges the requested Public publish time. The video remains
195
+ private, no second publish action is required, and the same idempotency key is
196
+ safe to replay.
170
197
 
171
198
  Immediate publishing uses the same server-enforced pattern. `posts publish
172
199
  preview` validates the current version, exact destination set, readiness, live
@@ -177,8 +204,9 @@ delivery; Rolino's worker performs provider calls and reconciles ambiguous
177
204
  network results so an unsafe retry cannot duplicate a post. Use
178
205
  `ROLINO_CONFIRMATION_TOKEN` for scripts instead of putting the token in process
179
206
  arguments. YouTube remains `PREPARING` while its resumable upload and provider
180
- processing are incomplete; only provider-confirmed visibility becomes
181
- published.
207
+ processing are incomplete. The preview identifies the delivery as `IMMEDIATE`,
208
+ shows the exact visibility, and confirms that no schedule will be created; only
209
+ provider-confirmed visibility becomes published.
182
210
 
183
211
  The CLI cannot enable YouTube, Bluesky, or LinkedIn, or infer provider approval.
184
212
  Those are server-side deployment controls. Self-hosted operators should
@@ -224,3 +252,36 @@ issues through the repository's
224
252
  [security policy](https://github.com/deifos/rolino/security/policy).
225
253
 
226
254
  `@rolino/cli` is available under the MIT License.
255
+ ## Agent-first Blog Studio setup
256
+
257
+ Authorize the optional `blog:manage` capability separately from Blog reading,
258
+ draft writing, and approved-revision publishing. Existing credentials never
259
+ gain it automatically. Start every setup with:
260
+
261
+ ```bash
262
+ rolino --agent blog setup status --project PROJECT_ID
263
+ ```
264
+
265
+ The `blog site`, `blog plan`, `blog article`, `blog connection`, and
266
+ `blog destinations` command groups mirror the versioned API. Use these safe
267
+ publishing reads before setup or publication:
268
+
269
+ ```bash
270
+ rolino --agent blog destinations providers --project PROJECT_ID
271
+ rolino --agent blog destinations list --project PROJECT_ID
272
+ rolino --agent blog destinations deliveries --project PROJECT_ID
273
+ rolino --agent blog destinations deliveries --project PROJECT_ID --article ARTICLE_ID
274
+ ```
275
+
276
+ The provider catalog requires `blog:manage`. It returns only providers enabled
277
+ for the workspace, safe capabilities, and official documentation. Destination
278
+ and delivery-attempt reads require `blog:read`. They omit draft content,
279
+ prompts, evidence, secrets, and raw provider responses. A returned remote URL
280
+ is not proof that a queued or failed delivery is live.
281
+
282
+ Mutations require a stable idempotency key.
283
+ Connection provisioning also requires preview, explicit confirmation, and
284
+ execute. A first successful execute can return a delivery token or webhook
285
+ secret once; save it only in server-side environment configuration. Replays
286
+ do not reveal it again. Blog publication remains the separate approved exact
287
+ revision preview/execute workflow.