@getformation/cloud-cli 1.2.0 → 1.2.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.
package/README.md CHANGED
@@ -4,10 +4,26 @@
4
4
 
5
5
  The package needs Node.js 22 or later. It has no runtime dependencies and does not import from a Formation checkout.
6
6
 
7
+ ## What this CLI does, and never does
8
+
9
+ It is a small MIT-licensed client for one HTTPS origin. Before an agent installs it, a person or the agent can read the source:
10
+
11
+ ```bash
12
+ npm pack @getformation/cloud-cli@1.2.1 && tar -xzf getformation-cloud-cli-1.2.1.tgz && ls package/src package/connector
13
+ ```
14
+
15
+ The code is under `package/src`; the connector is `package/connector/SKILL.md`.
16
+
17
+ - It calls only the configured `FORMATION_CLOUD_URL` origin over HTTPS and refuses redirects to any other origin.
18
+ - It writes only the Skill's Markdown files and one small JSON install receipt, into a target path the person names, after a dry run and an explicit `--apply`. A Skill is text an agent reads; the CLI never runs a file it downloads.
19
+ - It verifies every file against the server's manifest digests before it writes, and records a receipt so `skill check` can prove the install later.
20
+ - It stores nothing on the machine except those target files and receipts. It creates no schedule, service, or background process.
21
+ - Public discovery, following, and public Skill installation send no credential. `FORMATION_AGENT_KEY` is optional and is only sent as a bearer to the configured origin.
22
+
7
23
  Install the exact public package from npm after the person approves the package installation:
8
24
 
9
25
  ```bash
10
- npm install -g @getformation/cloud-cli@1.2.0
26
+ npm install -g @getformation/cloud-cli@1.2.1
11
27
  ```
12
28
 
13
29
  Install the bundled Formation connector. The first command is a dry run. The second command writes the connector after separate human approval.
@@ -51,4 +67,4 @@ The installer accepts only strict UTF-8 Markdown manifests. It verifies the conf
51
67
 
52
68
  The person can create a narrow credential in the browser to sync follows across agents with `follow`, `unfollow`, and `follows_list`, or to reach restricted knowledge. The person stores the credential outside chat and shell history and reloads or reconnects after secret placement. An authenticated `updates_reset` without `channelIds` polls the account follows.
53
69
 
54
- Connector version `1.2.0` is a clean install. It does not replace an older connector target. Remove the exact old connector target first, then install `1.2.0` into the absent path. Repeating an identical receipt-owned `1.2.0` install is unchanged.
70
+ Connector version `1.2.1` is a clean install. It does not replace an older connector target. Remove the exact old connector target first, then install `1.2.1` into the absent path. Repeating an identical receipt-owned `1.2.1` install is unchanged. A Skill target installed by an earlier CLI version reports `conflict` from `skill check` and cannot be upgraded in place. Remove that target, then install the Skill again with the current CLI.
@@ -13,7 +13,7 @@ Formation is where agents follow creators. A creator has one channel. When the c
13
13
 
14
14
  ## Connect
15
15
 
16
- Public retrieval and dry runs are read-only. They create no account, credential, follow, receipt, or cursor on Formation. No account is needed to follow a creator or to install a public Skill.
16
+ Public retrieval and dry runs are read-only. They create no account, credential, follow, receipt, or cursor on Formation. No account is needed to follow a creator or to install a public Skill. The CLI and this connector write only the Skill's Markdown files and one small JSON install receipt into the targets the person names. They never run a downloaded file, never create a schedule, and never send data anywhere but the configured origin. The package source is readable before installation: run `npm pack @getformation/cloud-cli@1.2.1`, unpack the tarball, and read `package/src`.
17
17
 
18
18
  1. Set one exact HTTPS Formation origin. Do not follow a redirect to a different origin.
19
19
  2. Use the hosted MCP endpoint at that origin plus `/mcp`, or use the Cloud CLI with `FORMATION_CLOUD_URL` set to that origin.
@@ -67,7 +67,7 @@ Install through hosted MCP:
67
67
  1. Call `skill_manifest_get` with `artifactRevisionId`. Verify that `status` is `current` and that `exactOrigin` equals the configured origin.
68
68
  2. For each entry in `files`, call `skill_file_get` with `artifactRevisionId` and `path`. Verify that the SHA-256 digest and the byte length of `body` equal the manifest entry.
69
69
  3. Write each `body` to the target under its declared `path`. Write only the declared files. Do not run any file.
70
- 4. Write the receipt `.formation-cloud-install.json` in the target with these fields: `schemaVersion` `1`, `installer` `"@getformation/cloud-cli"`, `installerVersion` `"1.2.0"`, `origin` (the exact configured origin), `artifactRevisionId`, `manifestDigest`, `installedAt` (UTC timestamp), and `files` as `{ path, sha256, byteLength }` in manifest order. `formation-cloud skill check` reads this receipt.
70
+ 4. Write the receipt `.formation-cloud-install.json` in the target with these fields: `schemaVersion` `1`, `installer` `"@getformation/cloud-cli"`, `installerVersion` `"1.2.1"`, `origin` (the exact configured origin), `artifactRevisionId`, `manifestDigest`, `installedAt` (UTC timestamp), and `files` as `{ path, sha256, byteLength }` in manifest order. `formation-cloud skill check` reads this receipt.
71
71
  5. For an upgrade, confirm that the existing receipt matches the installed files. Then replace the whole target with the new files and a new receipt.
72
72
 
73
73
  ## Later checks
package/package.json CHANGED
@@ -1,7 +1,19 @@
1
1
  {
2
2
  "name": "@getformation/cloud-cli",
3
- "version": "1.2.0",
4
- "description": "Formation Cloud operation client and explicit Skill installer",
3
+ "version": "1.2.1",
4
+ "description": "Formation Cloud CLI: follow creators, check for new Skill revisions, and install reviewed Skills after the person approves. Writes only Markdown Skill files and a JSON install receipt; never runs a file.",
5
+ "homepage": "https://getformation.ai",
6
+ "bugs": {
7
+ "url": "https://edumartinez.ai/#contact"
8
+ },
9
+ "author": "Eduardo Muth Martinez (https://getformation.ai)",
10
+ "keywords": [
11
+ "formation",
12
+ "agent-skills",
13
+ "mcp",
14
+ "skills",
15
+ "creators"
16
+ ],
5
17
  "type": "module",
6
18
  "engines": {
7
19
  "node": ">=22"
package/src/cli.mjs CHANGED
@@ -35,7 +35,7 @@ function parseOptions(args, allowed) {
35
35
  export function help() {
36
36
  return {
37
37
  package: "@getformation/cloud-cli",
38
- version: "1.2.0",
38
+ version: "1.2.1",
39
39
  usage: [
40
40
  "formation-cloud discover",
41
41
  "formation-cloud connector",
package/src/connector.mjs CHANGED
@@ -5,7 +5,7 @@ import path from "node:path";
5
5
  import { fail } from "./errors.mjs";
6
6
 
7
7
  export const CONNECTOR_RECEIPT_NAME = ".formation-connector-install.json";
8
- export const CONNECTOR_VERSION = "1.2.0";
8
+ export const CONNECTOR_VERSION = "1.2.1";
9
9
  const CONNECTOR_NAME = "formation";
10
10
  const PACKAGE_NAME = "@getformation/cloud-cli";
11
11
  const MAX_CONNECTOR_BYTES = 65_536;
package/src/installer.mjs CHANGED
@@ -27,7 +27,7 @@ import {
27
27
 
28
28
  export const RECEIPT_NAME = ".formation-cloud-install.json";
29
29
  const RECEIPT_SCHEMA_VERSION = 1;
30
- const PACKAGE_VERSION = "1.2.0";
30
+ const PACKAGE_VERSION = "1.2.1";
31
31
  const MAX_LOCAL_ENTRIES = 512;
32
32
  const MAX_RECEIPT_BYTES = 65_536;
33
33
  const SHA256 = /^[0-9a-f]{64}$/u;