@arcadeai/hypotenuse 0.0.0-stage → 0.2.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/package.json CHANGED
@@ -1,6 +1,51 @@
1
1
  {
2
2
  "name": "@arcadeai/hypotenuse",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.2.0",
4
+ "description": "Hypotenuse \u2014 run coding agents on your machine for Linear agent sessions",
5
+ "type": "module",
6
+ "license": "Apache-2.0",
7
+ "bin": {
8
+ "hypotenuse": "./dist/hypotenuse.js"
9
+ },
10
+ "files": [
11
+ "dist/hypotenuse.js",
12
+ "skills",
13
+ "README.md",
14
+ "LICENSE"
15
+ ],
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "https://github.com/arcadeai-labs/hypotenuse.git"
19
+ },
20
+ "homepage": "https://github.com/arcadeai-labs/hypotenuse#readme",
21
+ "bugs": {
22
+ "url": "https://github.com/arcadeai-labs/hypotenuse/issues"
23
+ },
24
+ "publishConfig": {
25
+ "access": "public"
26
+ },
27
+ "engines": {
28
+ "bun": ">=1.2"
29
+ },
30
+ "scripts": {
31
+ "hypotenuse": "bun run src/cli.ts",
32
+ "dev": "bun run src/cli.ts",
33
+ "test": "bun test",
34
+ "lint": "tsc && biome check .",
35
+ "format": "tsc && biome check --write .",
36
+ "bundle": "bun build ./src/cli.ts --target bun --packages external --outfile dist/hypotenuse.js",
37
+ "build": "bun build --compile --minify --sourcemap ./src/cli.ts --outfile dist/hypotenuse",
38
+ "prepack": "bun run bundle"
39
+ },
40
+ "dependencies": {
41
+ "commander": "^14.0.3",
42
+ "nanospinner": "^1.2.2",
43
+ "upgradr": "^0.4.0",
44
+ "zod": "^4.3.6"
45
+ },
46
+ "devDependencies": {
47
+ "@biomejs/biome": "^2.4.8",
48
+ "@types/bun": "latest",
49
+ "typescript": "^7.0.2"
50
+ }
51
+ }
@@ -0,0 +1,49 @@
1
+ ---
2
+ name: hypotenuse
3
+ description: Operate a Hypotenuse server from the terminal with the `hypotenuse` CLI — sign in, pick a project, manage members, invites, tags, connect Linear, and read the audit log. Use when asked to administer Hypotenuse projects or check who changed what.
4
+ ---
5
+
6
+ # hypotenuse
7
+
8
+ `hypotenuse` is the command-line client for a [Hypotenuse](https://github.com/arcadeai-labs/hypotenuse)
9
+ server. It calls the same HTTP actions the dashboard does, as the person who signed it in.
10
+
11
+ ## Conventions
12
+
13
+ - **stdout is data, stderr is for people.** Pass `--json` (`-j`) to get the action's named object
14
+ (`{ projects, pagination }`, `{ project }`, …) on stdout with no color. Parse that, never the
15
+ tables.
16
+ - A non-zero exit code means the command failed; the reason is on stderr.
17
+ - Lists take `--page` and `--limit` (default 25) and answer a
18
+ `pagination: { page, limit, total, pages }` envelope.
19
+ - Project-scoped commands act on `--project <id|slug>`, else `HYPOTENUSE_PROJECT`, else the project
20
+ chosen with `hypotenuse project use`.
21
+ - The server is `--url`, else `HYPOTENUSE_URL`, else wherever `login` last signed in.
22
+ - `HYPOTENUSE_NO_UPDATE_CHECK=1` turns off the background update notice.
23
+
24
+ ## Commands
25
+
26
+ | Command | Does |
27
+ |---|---|
28
+ | `hypotenuse login [--no-browser] [--device <name>]` | Sign in through the dashboard. A person must approve in a browser; `--no-browser` prints a code to type at `/cli/activate` on any device. Never ask for a password. |
29
+ | `hypotenuse logout` | Revoke this CLI's sign-in on the server and forget it locally. |
30
+ | `hypotenuse whoami` | Who this CLI is signed in as, on which server. |
31
+ | `hypotenuse project list\|view\|create\|edit\|delete\|use` | The caller's projects. `delete` needs `--yes`. `use <id\|slug>` selects the project later commands act on. |
32
+ | `hypotenuse member list\|add\|remove` | The selected project's members. `add --email`, `remove <userId>` (admin). |
33
+ | `hypotenuse invite list\|pending\|create\|accept\|reject` | Invitations. `create --email [--tag <id>]` (admin); `pending` lists invites addressed to you; `accept`/`reject <inviteId>`. |
34
+ | `hypotenuse tag list\|create\|edit\|delete\|assign\|unassign` | Permission tags. `assign <tagId> --user <userId>` (admin). The `admin` tag is reserved. |
35
+ | `hypotenuse audit list [--since 7d] [--until <time>] [--action tag:edit]` | Who changed what, newest first (admin). Times are ISO-8601, epoch ms, or `7d` / `12h` / `30m`. |
36
+ | `hypotenuse linear status\|connect\|disconnect` | The selected project's Linear workspace connection. `status` shows the workspace, the `@hypotenuse` app user, scopes, and token health (never a token). `connect` (admin) prints Linear's consent URL — a **Linear workspace admin** must approve it in a browser — and waits until the connection is active (`--no-browser`, `--timeout <seconds>`). `disconnect --yes` (admin) revokes the tokens; the agent stops answering in Linear at once. |
37
+ | `hypotenuse check-update` | Whether a newer release exists, with its changelog. |
38
+ | `hypotenuse upgrade` | Upgrade in place, by however it was installed (npm, bun, or binary). |
39
+
40
+ ## Examples
41
+
42
+ ```bash
43
+ hypotenuse --json whoami | jq -r .user.email
44
+ hypotenuse project use my-team
45
+ hypotenuse --json member list | jq '.memberships[] | {email: .user.email, tags: [.tags[].name]}'
46
+ hypotenuse invite create --email luigi@example.com --tag 3
47
+ hypotenuse --json audit list --since 1d --action membership:delete
48
+ hypotenuse --json linear status | jq '.installation | {status, organizationName, appUserId}'
49
+ ```