@ideaspaces/cli 0.1.1 → 0.1.18
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 +87 -12
- package/bundle/ideaspaces.js +8219 -2590
- package/package.json +5 -3
package/README.md
CHANGED
|
@@ -19,31 +19,66 @@ This installs the `ideaspaces` command. Node 20+ is required.
|
|
|
19
19
|
## Quick start
|
|
20
20
|
|
|
21
21
|
```sh
|
|
22
|
+
ideaspaces doctor # check Node, Git, and optional remote auth
|
|
22
23
|
ideaspaces create my-space --yes # create the standard repository shape
|
|
23
24
|
cd my-space
|
|
24
25
|
ideaspaces navigate . # orient: what's here, what changed
|
|
26
|
+
ideaspaces inspect work/Next.md # deepen one document, summary first
|
|
25
27
|
ideaspaces write decisions/idea.md --content "Idea body text"
|
|
26
28
|
ideaspaces commit -m "Capture idea" decisions/idea.md
|
|
27
29
|
|
|
30
|
+
# Or take a public, copy-enabled Space home without an account or source history
|
|
31
|
+
ideaspaces fork https://ideaspaces.xyz/spaces/<root_node_id> ./my-fork
|
|
32
|
+
|
|
28
33
|
# Optional: host or collaborate remotely
|
|
29
34
|
ideaspaces login
|
|
30
|
-
ideaspaces publish
|
|
35
|
+
ideaspaces publish # shows the plan; nothing changes yet
|
|
36
|
+
ideaspaces publish --yes # hosts it (private to your account)
|
|
31
37
|
ideaspaces push
|
|
32
38
|
ideaspaces pull
|
|
33
39
|
```
|
|
34
40
|
|
|
35
|
-
Everything is local-first: your working copy is a real git repository on disk. Captures are yours
|
|
41
|
+
Everything is local-first: your working copy is a real git repository on disk. Captures are yours
|
|
42
|
+
until you choose to publish or push them. Shared `create` mints a portable `root_node_id` into the
|
|
43
|
+
committed root foundation before login; private gitignored `_agent/` scaffolds remain unstamped.
|
|
44
|
+
First `publish` asks the server to adopt that exact committed identity. Declaration,
|
|
45
|
+
canonical-origin, or registry drift refuses before network mutation, and `publish --force` never
|
|
46
|
+
forks or rekeys a Space. `fork` is also local-first: it reads one bounded, copy-authorized snapshot,
|
|
47
|
+
validates it before touching the destination, and creates an unpublished one-commit Space with fresh
|
|
48
|
+
identity and no remote. Public View + Fork needs no account; signing in is required only when a
|
|
49
|
+
private source was shared directly or when the local fork is later published. `update` keeps that
|
|
50
|
+
relationship account-free while both public permissions remain enabled. It previews before apply,
|
|
51
|
+
validates the complete Markdown plus exact `_assets/` snapshot, and uses a three-way plan that
|
|
52
|
+
preserves local work and reports conflicts; directly shared private sources still use ambient auth.
|
|
53
|
+
|
|
54
|
+
`status` reports the local root-identity state and its HEAD/index/worktree declaration facts without
|
|
55
|
+
network access or mutation. `write` operates only inside that canonical Git worktree. It preserves
|
|
56
|
+
frontmatter fields you do not
|
|
57
|
+
set, replaces the Markdown atomically, and stages only the selected path. Use the returned `sha` as
|
|
58
|
+
`--if-match` for a safe refinement; `--force` is the explicit destructive override. `commit` snapshots
|
|
59
|
+
the worktree/index/HEAD revision of every selected path and commits exactly that reviewed set, leaving
|
|
60
|
+
bystander work untouched. Commit identity comes from Git's effective `user.name` / `user.email`
|
|
61
|
+
(preferably wired repo-locally by creation and platform commands) or explicit `--author-name` /
|
|
62
|
+
`--author-email` flags—never a hidden credential or network lookup. With `--json`, both commands return protocol `status`, phase, revision,
|
|
63
|
+
and typed failure facts; a partial write or commit exits non-zero.
|
|
36
64
|
|
|
37
65
|
## Commands
|
|
38
66
|
|
|
39
|
-
Run `ideaspaces <command> --help` for full usage. `--json` is available on
|
|
67
|
+
Run `ideaspaces <command> --help` for full usage. `--json` is available on reads and local capture effects for scripting.
|
|
68
|
+
|
|
69
|
+
### Diagnostics
|
|
70
|
+
| Command | What it does |
|
|
71
|
+
|---|---|
|
|
72
|
+
| `doctor` | Check Node 20+, Git, and optional remote-auth readiness; use `--json` for stable machine output |
|
|
40
73
|
|
|
41
74
|
### Spaces & content
|
|
42
75
|
| Command | What it does |
|
|
43
76
|
|---|---|
|
|
44
|
-
| `clone <
|
|
45
|
-
| `
|
|
46
|
-
| `
|
|
77
|
+
| `clone <space-url> [dir]` | Clone an authorized Space, preserve its declaration, and verify it against the canonical origin |
|
|
78
|
+
| `fork <space-url> [dir]` | Materialize an independent unpublished Space without source history or an account |
|
|
79
|
+
| `update [--yes]` | Preview or apply account-optional three-way source updates without displacing local work |
|
|
80
|
+
| `clones` | List hosted clones and unpublished local forks |
|
|
81
|
+
| `create <name>` | Create a local Space; shared scaffolds mint portable root identity before login |
|
|
47
82
|
| `repos` | List spaces you can access |
|
|
48
83
|
| `link <dir> <namespace/slug>` | Bind an existing local directory to a space |
|
|
49
84
|
|
|
@@ -58,29 +93,67 @@ Run `ideaspaces <command> --help` for full usage. `--json` is available on most
|
|
|
58
93
|
### Sync & publish
|
|
59
94
|
| Command | What it does |
|
|
60
95
|
|---|---|
|
|
96
|
+
| `sync` | Report where you, the Space, and a fork's recorded source stand — reads only, integrates nothing |
|
|
61
97
|
| `push` | Send your committed captures to the remote |
|
|
62
|
-
| `pull` | Integrate
|
|
63
|
-
| `publish` |
|
|
98
|
+
| `pull` | Integrate changes from the fork's own Git remote |
|
|
99
|
+
| `publish` | Plan first; `--yes` publishes. Adopts the committed local identity on first publish; never silently rebinds or rekeys |
|
|
64
100
|
|
|
65
101
|
### Navigate & search
|
|
66
102
|
| Command | What it does |
|
|
67
103
|
|---|---|
|
|
68
104
|
| `navigate <path>` | Orient at a position — contract, awareness, what changed |
|
|
69
|
-
| `
|
|
105
|
+
| `map [<repo>]` | Derive a local repository Map; `--depth full` explicitly enumerates the complete Content tree |
|
|
106
|
+
| `inspect <path>` | Inspect one local Markdown file by summary, outline, or selected section |
|
|
107
|
+
| `catalog` | Join local checkouts with remote Spaces and their publication/sync state |
|
|
70
108
|
| `ls [<path>]` | List files and folders under a path, typed (folder / repo / ideaspace) |
|
|
71
109
|
| `search <query>` | Full-text search (filename + BM25) over the local clone |
|
|
72
|
-
| `status` | Working-copy status
|
|
110
|
+
| `status` | Working-copy and offline root-identity status, including uncommitted declaration drift |
|
|
73
111
|
| `skills` | List the skill catalog, or print one skill's markdown |
|
|
74
112
|
|
|
113
|
+
`map` is local and network-free, and it does not require an `_agent/` contract. Numeric depths stay
|
|
114
|
+
bounded to 1–4; `--depth full` is deliberate enumeration rather than ambient orientation. JSON
|
|
115
|
+
members use the protocol's `name/summary/surface/children/full` vocabulary and can seed a map-note
|
|
116
|
+
without translating positions or rungs. Dirty or identity-less roots are labeled non-portable rather
|
|
117
|
+
than presented as an exact snapshot.
|
|
118
|
+
|
|
75
119
|
### Collaborate
|
|
76
120
|
| Command | What it does |
|
|
77
121
|
|---|---|
|
|
78
122
|
| `conversation` | Start or continue a conversation (online or `--local`) |
|
|
79
123
|
| `conversations` | List conversations |
|
|
80
|
-
| `share` |
|
|
124
|
+
| `share` | Share a Space at a grade — explore, fork, or collaborate — and see who has it |
|
|
125
|
+
| `inbox` | Ask, read, and reply through direct exchanges about shared Content |
|
|
81
126
|
| `agents` | List agents available to you |
|
|
82
127
|
| `times` | Activity timeline |
|
|
83
128
|
|
|
129
|
+
Share addresses people and teams by names rather than internal ids:
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
ideaspaces share person someone@example.com --grade explore
|
|
133
|
+
ideaspaces share person @someone --grade fork
|
|
134
|
+
ideaspaces share team acme.com --grade collaborate
|
|
135
|
+
ideaspaces share list
|
|
136
|
+
ideaspaces share remove team:acme.com
|
|
137
|
+
ideaspaces share visibility public # plan only — shows what opens up
|
|
138
|
+
ideaspaces share visibility public --yes # anyone can view and fork locally; publishing still requires sign-in
|
|
139
|
+
ideaspaces share visibility private # named access is unchanged; reducing exposure needs no flag
|
|
140
|
+
|
|
141
|
+
# Ask the owner of shared Content from a local agent or terminal
|
|
142
|
+
ideaspaces inbox send @owner --about n_0123456789abcdef01234567 \
|
|
143
|
+
--name "Question" --summary "One decision" --message "What should happen next?"
|
|
144
|
+
ideaspaces inbox list
|
|
145
|
+
ideaspaces inbox read x_example
|
|
146
|
+
printf '# Answer\n\nKeep it narrow.' | ideaspaces inbox reply x_example \
|
|
147
|
+
--name "Answer" --summary "A bounded answer"
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Inbox commands act as the logged-in person. Bare Agent credentials cannot read or write a person's
|
|
151
|
+
Inbox; plugins expose these person-accountable commands to a local agent after the person logs in.
|
|
152
|
+
Every exchange remains attached to the exact Content `node_id` it concerns.
|
|
153
|
+
|
|
154
|
+
Public visibility permits a bounded, history-free local Fork; it never makes Git history, clone, or
|
|
155
|
+
push public and never creates an anonymous hosted owner.
|
|
156
|
+
|
|
84
157
|
### Identity
|
|
85
158
|
| Command | What it does |
|
|
86
159
|
|---|---|
|
|
@@ -98,7 +171,9 @@ Run an agent over your local working copy — offline, on your own key.
|
|
|
98
171
|
| `pi-login` | Configure a model provider (writes the local agent's credentials) |
|
|
99
172
|
| `pi-logout` | Remove a configured model provider |
|
|
100
173
|
| `pi-models` | List the models a configured provider offers |
|
|
101
|
-
| `conversation send --local` | Run a local agent turn over a folder |
|
|
174
|
+
| `conversation send --local` | Run a local agent turn over a folder; add `--map <map-note.md>` to launch over its ordered territory without fetching its roots |
|
|
175
|
+
|
|
176
|
+
A local Map launch reads the provisional `map:` frontmatter from the selected Note, validates it through the protocol, and appends its roots, pins, ordered members, representation depths, and legend to Pi's launch orientation. Invalid Maps and orientations over 12,000 characters fail before Pi starts; omitting `--map` preserves the folder-only launch.
|
|
102
177
|
|
|
103
178
|
## Configuration
|
|
104
179
|
|