@puffinstudio/fizzyx 0.4.1 → 0.4.3

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/.fizzy.yaml CHANGED
@@ -15,13 +15,11 @@ oss:
15
15
  dev:
16
16
  endpoint: https://youda-uat.oss-cn-beijing.aliyuncs.com
17
17
  region: cn-beijing
18
- bucket: test
19
18
  sync:
20
19
  local_dir: ./public
20
+ remote_prefix: assets
21
21
  concurrency: 10
22
- bucket: test
23
22
  prod:
24
23
  endpoint:
25
24
  region:
26
25
  bucket:
27
-
@@ -2,7 +2,7 @@
2
2
  "version": 1,
3
3
  "localDir": "/home/e/.repos/fizzyx/./public",
4
4
  "remotePrefix": "assets",
5
- "lastSyncedAt": "2026-06-18T04:50:59.235Z",
5
+ "lastSyncedAt": "2026-06-18T06:45:54.857Z",
6
6
  "files": {
7
7
  "Monkey_D._Luffy_Anime_Post_Timeskip_Infobox.webp": {
8
8
  "mtimeMs": 1781757440085.3743,
package/README.md CHANGED
@@ -1,84 +1,98 @@
1
1
  # fizzyx
2
2
 
3
- AI workflow CLI for Fizzy boards.
4
-
5
- `fizzyx` is a Bun + Effect 4 beta CLI that reads `.fizzy.yaml`, stores auth locally, talks to the Fizzy HTTP API directly, and adds project workflow commands optimized for AI agents.
3
+ CLI tool for Fizzy board workflow and OSS/S3-compatible storage management.
6
4
 
7
5
  ## Install
8
6
 
9
- Install globally with Bun:
10
-
11
- ```bash
7
+ ```sh
12
8
  bun add -g @puffinstudio/fizzyx
13
9
  ```
14
10
 
15
- Then verify the CLI is available:
11
+ ## OSS Commands
16
12
 
17
- ```bash
18
- fizzyx --help
19
- ```
13
+ Manage S3-compatible object storage (Alibaba Cloud OSS, AWS S3, MinIO, etc.).
14
+
15
+ ### Setup
20
16
 
21
- For local development from this repository:
17
+ ```sh
18
+ # Interactive blank scaffold (prompts for keys)
19
+ fizzyx oss setup
22
20
 
23
- ```bash
24
- bun install
25
- bun run build
21
+ # With explicit config (keys are prompted separately)
22
+ fizzyx oss setup --env dev --endpoint https://oss-cn-beijing.aliyuncs.com --region cn-beijing --local-dir ./public [--bucket my-bucket] [--remote-prefix assets]
23
+
24
+ # Configure keys for an existing environment
25
+ fizzyx oss setup --env dev
26
26
  ```
27
27
 
28
- ## Setup
28
+ - `--endpoint` and `--region` are required
29
+ - `--bucket` is optional — omit if your endpoint already includes the bucket name (e.g. `https://my-bucket.oss-cn-beijing.aliyuncs.com`)
30
+ - `--remote-prefix` is optional — omit to upload to bucket root
31
+ - Credentials are stored in OS keychain via `Bun.secrets`, never in config files or shell history
32
+
33
+ ### Sync
29
34
 
30
- ```bash
31
- fizzyx setup <board-id>
35
+ Upload local files to the remote bucket:
32
36
 
33
- fizzyx setup --list
37
+ ```sh
38
+ fizzyx oss sync [--env dev] [--full] [--no-urls]
34
39
  ```
35
40
 
36
- This creates `.fizzy.yaml` with official Fizzy fields plus a `flow:` section.
37
- `setup --list` prints available board ids and names for the active account.
41
+ - `--env`: environment name (default: `dev`)
42
+ - `--full`: ignore cached manifest, force full re-upload
43
+ - `--no-urls`: suppress file URL output
38
44
 
39
- If TODO/INPROGRESS columns are omitted, `fizzyx setup` auto-discovers them from the API.
45
+ Sync uses a two-stage check (mtime+size SHA-256 hash) to skip unchanged files. The manifest is stored at `.fizzyx/oss-manifest.json` and can be committed for team sharing.
40
46
 
41
- ## Auth
47
+ ### List
42
48
 
43
- ```bash
44
- fizzyx auth login <token>
45
- fizzyx auth status
46
- ```
49
+ List objects in the remote bucket:
47
50
 
48
- Tokens are stored outside the repo under `~/.config/fizzyx/credentials/`.
49
-
50
- ## Commands
51
-
52
- ```bash
53
- fizzyx flow sync
54
- fizzyx flow mine --fresh
55
- fizzyx flow status
56
- fizzyx flow next
57
- fizzyx flow show 123
58
- fizzyx flow start 123
59
- fizzyx flow done 123 "commit abc123: subject"
60
- fizzyx flow block 123 "waiting on API"
61
- fizzyx flow add ray "[Page] home · title" --desc /tmp/card.md
62
- fizzyx flow add ray "[Page] home · title" --desc - < /tmp/card.md
63
- fizzyx flow steps-from-desc 123
51
+ ```sh
52
+ fizzyx oss ls [--env dev] [--prefix assets/]
64
53
  ```
65
54
 
66
- During development, you can run the entrypoint directly:
55
+ - `--prefix`: filter objects by key prefix
67
56
 
68
- ```bash
69
- bun run src/main.ts <command>
57
+ ### Status
58
+
59
+ Show sync status (pending uploads, manifest info):
60
+
61
+ ```sh
62
+ fizzyx oss status [--env dev]
70
63
  ```
71
64
 
72
- ## Architecture
65
+ ## Config File (`.fizzy.yaml`)
73
66
 
74
- - `src/domain`: errors and models
75
- - `src/ports`: repository/API interfaces
76
- - `src/adapters`: Bun filesystem/cache and fetch-based Fizzy API
77
- - `src/use-cases`: workflow use cases
78
- - `src/cli`: thin command parsing and rendering
67
+ Minimal OSS-only config:
68
+
69
+ ```yaml
70
+ oss:
71
+ dev:
72
+ endpoint: https://oss-cn-beijing.aliyuncs.com
73
+ region: cn-beijing
74
+ bucket: my-bucket
75
+ sync:
76
+ local_dir: ./public
77
+ remote_prefix: assets
78
+ concurrency: 10
79
+ ```
79
80
 
80
- ## Check
81
+ If your endpoint already contains the bucket in the hostname, `bucket` can be omitted:
81
82
 
82
- ```bash
83
- bun run check
83
+ ```yaml
84
+ oss:
85
+ dev:
86
+ endpoint: https://my-bucket.oss-cn-beijing.aliyuncs.com
87
+ region: cn-beijing
88
+ sync:
89
+ local_dir: ./public
84
90
  ```
91
+
92
+ ## Credential Resolution
93
+
94
+ Credentials are resolved in this priority order:
95
+
96
+ 1. OS keychain (`Bun.secrets` — set via `fizzyx oss setup`)
97
+ 2. Environment variables: `OSS_<ENV>_ACCESS_KEY_ID` / `OSS_<ENV>_SECRET_ACCESS_KEY`
98
+ 3. `.fizzy.yaml` `access_key_id` / `secret_access_key` fields (legacy, discouraged)