@learnaltitude/cli 0.1.0 → 0.3.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/README.md CHANGED
@@ -11,3 +11,82 @@ npm install -g @learnaltitude/cli
11
11
 
12
12
  Pair the CLI with your account at [app.learnaltitude.com](https://app.learnaltitude.com).
13
13
  Supported agents are Claude Code and Codex.
14
+
15
+ ## Connect, bind, and inspect a project
16
+
17
+ Use the installed agent adapter's connect command to complete the browser device flow. Connecting
18
+ stores a scoped bearer token in the CLI data directory (by default, `~/.altitude/token.json`) with
19
+ owner-only permissions; it does not activate hooks in every directory.
20
+
21
+ A directory declares WHICH journey it works. From the root of the project, pick from your
22
+ journey list:
23
+
24
+ ```sh
25
+ altitude bind --list # show your journeys and their statuses
26
+ altitude bind --journey <id> # bind this directory to one of them
27
+ altitude bind # binds directly when exactly one journey is bindable
28
+ ```
29
+
30
+ Binding writes a `.altitude` marker in that directory. Hooks discover the nearest marker while
31
+ walking upward, so the project and its subdirectories are active; invocations without a working
32
+ directory or valid marker are dormant and produce no capture, down-sync, context, or gate work.
33
+ Gate failures in a bound project still fail open. Several directories may bind the same journey
34
+ (git worktrees are the normal case); each directory holds exactly one journey, and its down-synced
35
+ working set is cached per journey in an owner-only file for offline sessions. An abandoned journey
36
+ stays visible in the list but cannot be bound; a paused journey can. When the refreshed or cached
37
+ journey list marks it paused, session start prints the server's paused notice when present and
38
+ keeps gates dormant until a later list refresh observes that you resumed it on Altitude (never
39
+ automatically from the terminal). Older responses without a notice stay silent. When the server
40
+ refuses a binding's journey (deleted, abandoned, or not entitled), the session prints the server's
41
+ explanation instead of silently substituting another project.
42
+ `altitude diagnostics` records these misses and stale bindings; the precise hook behavior is
43
+ defined in the [workshop/server
44
+ protocol](../../docs/mvp-plan.md#workshop--server-protocol-packagesshared).
45
+ If the project is already bound to another journey, inspect the IDs before deliberately replacing
46
+ the marker with `altitude bind --force`.
47
+
48
+ Use `altitude task --json` for a network-first snapshot of the BOUND journey with local-cache
49
+ fallback; its `source` field says which was used, `journey_status` carries the journey's
50
+ last-known status, and `journey_miss` carries the server's refusal when the bound journey was not
51
+ served. `altitude status` is a local snapshot that includes the nearest binding plus the bound
52
+ journey's cached working-set summaries. Binding requires a connected device token; the command
53
+ tells unconnected users to connect and directs users without a bindable journey back to Altitude.
54
+
55
+ ## Copied skills installs and updates
56
+
57
+ Claude Code marketplace installs remain the recommended Claude path and update through that
58
+ marketplace. For Codex or a manual Claude Code copy, install the public skills through the target
59
+ declaration shipped by the relevant adapter:
60
+
61
+ ```sh
62
+ altitude skills install --adapter-config /path/to/adapter/skills-install.json
63
+ ```
64
+
65
+ The first install remembers the resolved target in the CLI data directory (by default,
66
+ `~/.altitude/skills-manifest.json`), including the exact `jasonku09/altitude-skills` commit and a
67
+ SHA-256 content hash for every managed file. Later updates need no adapter flag:
68
+
69
+ ```sh
70
+ altitude update
71
+ ```
72
+
73
+ Use `--ref <commit-sha>` with either command to pin or roll back to a particular public-repository
74
+ commit. Updates change only manifest-managed files plus new upstream paths; unrelated skills in a
75
+ shared target are left alone, while managed files removed upstream are removed locally. An edited
76
+ managed file or colliding pre-CLI copy is backed up in the CLI data directory (by default,
77
+ `~/.altitude/skills-backups/`) before the upstream version replaces or removes it. Backups never
78
+ live in an agent skills directory. If no copied install is configured, the skills step is an
79
+ informative no-op because marketplace or plugin-managed skills update through the agent.
80
+ After the skills step completes or is skipped, `altitude update` asks the detected global package
81
+ manager to update `@learnaltitude/cli`; if detection or execution fails, it prints the exact manual
82
+ command instead. A genuine copied-skills sync failure stops before the CLI self-update.
83
+
84
+ ## Network disclosure
85
+
86
+ The distributed client uses the user's own agent subscription and no Altitude-held API key.
87
+ Interactive `connect`, `diagnostics`, and `update` commands make anonymous, direct version checks
88
+ to GitHub (the public skills repository's `main` commit) and the npm registry (the CLI's latest
89
+ version). Results are cached in the CLI data directory for about 24 hours. Skills downloads also
90
+ come directly from GitHub. These requests do not pass through the Altitude service and carry no
91
+ Altitude credentials. Hooks, gates, queue flushers, and other non-interactive paths never perform
92
+ the version check; all check failures are silent and cannot change a command's exit code.
package/bin/altitude.js CHANGED
File without changes