@binaryandthread/cli 0.4.3 → 0.4.5

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
@@ -27,6 +27,30 @@ unambiguous form.)
27
27
  > `npx bt`, `npx btn`, and `npx binaryandthread` are **different, unscoped packages owned by
28
28
  > strangers** — never run them. Always install the full scoped name.
29
29
 
30
+ ## The ones you forward
31
+
32
+ People forward commands, not shops. Each of these installs nothing, buys nothing, and costs the
33
+ person you send it to about four seconds.
34
+
35
+ ```bash
36
+ npx @binaryandthread/cli fortune # a real aphorism from the trade, never an invented one
37
+ npx @binaryandthread/cli brew # ask a clothing company for coffee, get RFC 2324
38
+ npx @binaryandthread/cli init # the welcome, and the three commands that matter
39
+ npx @binaryandthread/cli browse # the whole catalogue, as a numbered table
40
+ ```
41
+
42
+ `fortune` draws from a fixed pool of genuine, attributable lines. Nothing in it was made up, which
43
+ is the only reason it is worth passing on.
44
+
45
+ `brew` is the house joke, and it is the one design two separate strangers have laughed at. Ask for
46
+ coffee and the shop answers **`418 i'm a teapot`**, which is a real HTTP status code from a real
47
+ April Fools' RFC that somehow never died. The article is at
48
+ [/guide/the-joke-that-would-not-die](https://binaryandthread.com/guide/the-joke-that-would-not-die);
49
+ the garment exists too.
50
+
51
+ There are a dozen or so other responses hidden in here for commands a developer types by reflex.
52
+ Listing them would defeat the point.
53
+
30
54
  ## Commands
31
55
 
32
56
  | command | what it does |
@@ -44,6 +68,21 @@ unambiguous form.)
44
68
  | `bt drops` | terminal-visible drops |
45
69
  | `bt forget` | wipe your local session + config (keychain token, cart, email) |
46
70
 
71
+ Ten more that the CLI has always had and this table has never listed:
72
+
73
+ | command | what it does |
74
+ | --- | --- |
75
+ | `bt init` | the first-run welcome and the three-command happy path. What the bare `bt` points a newcomer at |
76
+ | `bt buy <n\|slug>` | stage and checkout in one, for when you already know what you want |
77
+ | `bt status` | working-tree state: what is staged, what is in flight |
78
+ | `bt config [sub] [key] [value]` | local preferences (email, region, default fit). **The auth token is never stored here** |
79
+ | `bt token` | prints your keychain JWT for an MCP config. A bearer credential, treat it like one |
80
+ | `bt completion <shell>` | a shell completion script, to eval in your rc |
81
+ | `bt doctor` | local diagnostics for a bug report. Sends nothing |
82
+ | `bt report [message]` | files a bug report: a redacted snapshot, never cards or tokens |
83
+ | `bt brew` | see above |
84
+ | `bt fortune` | see above |
85
+
47
86
  ## Config (all optional, env overrides the baked-in prod defaults)
48
87
 
49
88
  | var | notes |
package/dist/bin.js CHANGED
@@ -55,7 +55,7 @@ import {
55
55
  versionLine,
56
56
  warn,
57
57
  working
58
- } from "./chunk-VO3TABLK.js";
58
+ } from "./chunk-PG7YCPAN.js";
59
59
  import {
60
60
  __require
61
61
  } from "./chunk-7OCVIDC7.js";
@@ -104,7 +104,7 @@ function makeLogger(debug, write = (s) => process.stderr.write(s)) {
104
104
  }
105
105
 
106
106
  // src/version.ts
107
- var VERSION = "0.4.3";
107
+ var VERSION = "0.4.5";
108
108
 
109
109
  // src/eggs.ts
110
110
  function teapot() {
@@ -524,7 +524,7 @@ function registerBrowse(program, makeClient2, loadConfig2) {
524
524
  program.command("browse").alias("ls").description("list what's in stock on a branch.").option("--branch <branch>", "main (live) or next (terminal-only drops)").option("--pick", "opt into the arrow-key picker (default is the numbered table \u2014 use bt stage <n>)").option("--plain", "force the static table (the default; kept for back-compat)").action(async (opts) => {
525
525
  const { json, brand } = resolveOutput(program);
526
526
  if (opts.pick && !json && brand.color && process.stdout.isTTY && process.stdin.isTTY) {
527
- const { runInteractiveBrowse } = await import("./interactive-4NOJ3LFW.js");
527
+ const { runInteractiveBrowse } = await import("./interactive-HI3LDK5U.js");
528
528
  const handled = await runInteractiveBrowse(makeClient2(), loadConfig2(), { branch: opts.branch, brand });
529
529
  if (handled) return;
530
530
  }
@@ -2060,7 +2060,7 @@ function buildProgram() {
2060
2060
  "the binary & thread terminal store. techno-minimalist clothing & lifestyle, bought with the ceremony of a deploy.\nprimary invocation: npx @binaryandthread/cli (a bare `bt` may collide with another binary)"
2061
2061
  ).version(versionLine(VERSION), "-v, --version", "print the version").option("--json", "machine-readable output", false).option("--no-color", "disable ANSI colour + inline images (also honours NO_COLOR)").option("--debug, --verbose", "trace requests to stderr (redacted) \u2014 for bug reports (d15)").option("--region <cc>", "ship-to country for this command (ISO-2, overrides your saved region)").showSuggestionAfterError();
2062
2062
  program.addHelpText("beforeAll", "\n bt \u2014 the binary & thread terminal store. new here? \u2192 bt init\n");
2063
- program.command("brew").argument("[what]", "what to brew").description("we make clothing, not coffee.").action(() => {
2063
+ program.command("brew").alias("teapot").argument("[what]", "what to brew").description("we make clothing, not coffee.").action(() => {
2064
2064
  process.stdout.write(teapot() + "\n");
2065
2065
  });
2066
2066
  registerEggs(program);