@coldtea/pr-lens-cli 0.7.0 → 0.8.1

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.
Files changed (90) hide show
  1. package/README.md +31 -3
  2. package/dist/account.d.ts +76 -0
  3. package/dist/account.d.ts.map +1 -0
  4. package/dist/account.js +211 -0
  5. package/dist/account.js.map +1 -0
  6. package/dist/auth.d.ts +40 -0
  7. package/dist/auth.d.ts.map +1 -0
  8. package/dist/auth.js +121 -0
  9. package/dist/auth.js.map +1 -0
  10. package/dist/canvas/api.d.ts +35 -1
  11. package/dist/canvas/api.d.ts.map +1 -1
  12. package/dist/canvas/api.js +57 -1
  13. package/dist/canvas/api.js.map +1 -1
  14. package/dist/canvas/claim.d.ts +3 -0
  15. package/dist/canvas/claim.d.ts.map +1 -0
  16. package/dist/canvas/claim.js +84 -0
  17. package/dist/canvas/claim.js.map +1 -0
  18. package/dist/canvas/delete.js +3 -3
  19. package/dist/canvas/delete.js.map +1 -1
  20. package/dist/canvas/registry.d.ts +8 -2
  21. package/dist/canvas/registry.d.ts.map +1 -1
  22. package/dist/canvas/registry.js +15 -2
  23. package/dist/canvas/registry.js.map +1 -1
  24. package/dist/canvas/write.d.ts +11 -2
  25. package/dist/canvas/write.d.ts.map +1 -1
  26. package/dist/canvas/write.js +27 -8
  27. package/dist/canvas/write.js.map +1 -1
  28. package/dist/cli.d.ts.map +1 -1
  29. package/dist/cli.js +8 -2
  30. package/dist/cli.js.map +1 -1
  31. package/dist/commands/auth.d.ts +9 -0
  32. package/dist/commands/auth.d.ts.map +1 -0
  33. package/dist/commands/auth.js +369 -0
  34. package/dist/commands/auth.js.map +1 -0
  35. package/dist/commands/canvas.d.ts.map +1 -1
  36. package/dist/commands/canvas.js +162 -21
  37. package/dist/commands/canvas.js.map +1 -1
  38. package/dist/commands/render.d.ts +1 -1
  39. package/dist/commands/render.d.ts.map +1 -1
  40. package/dist/commands/render.js +6 -3
  41. package/dist/commands/render.js.map +1 -1
  42. package/dist/config-home.d.ts +4 -0
  43. package/dist/config-home.d.ts.map +1 -0
  44. package/dist/config-home.js +38 -0
  45. package/dist/config-home.js.map +1 -0
  46. package/dist/errors.d.ts +1 -1
  47. package/dist/errors.d.ts.map +1 -1
  48. package/dist/errors.js.map +1 -1
  49. package/dist/install.d.ts +5 -0
  50. package/dist/install.d.ts.map +1 -0
  51. package/dist/install.js +83 -0
  52. package/dist/install.js.map +1 -0
  53. package/dist/skill-content.generated.d.ts +1 -1
  54. package/dist/skill-content.generated.d.ts.map +1 -1
  55. package/dist/skill-content.generated.js +1 -1
  56. package/dist/skill-content.generated.js.map +1 -1
  57. package/dist/slug.d.ts +7 -0
  58. package/dist/slug.d.ts.map +1 -0
  59. package/dist/slug.js +23 -0
  60. package/dist/slug.js.map +1 -0
  61. package/dist/terminal.d.ts +5 -0
  62. package/dist/terminal.d.ts.map +1 -1
  63. package/dist/terminal.js +7 -0
  64. package/dist/terminal.js.map +1 -1
  65. package/dist/version.d.ts +1 -1
  66. package/dist/version.js +1 -1
  67. package/dist/workspace.d.ts +4 -0
  68. package/dist/workspace.d.ts.map +1 -1
  69. package/dist/workspace.js +26 -4
  70. package/dist/workspace.js.map +1 -1
  71. package/package.json +3 -3
  72. package/src/account.ts +302 -0
  73. package/src/auth.ts +183 -0
  74. package/src/canvas/api.ts +114 -2
  75. package/src/canvas/claim.ts +127 -0
  76. package/src/canvas/delete.ts +3 -3
  77. package/src/canvas/registry.ts +24 -2
  78. package/src/canvas/write.ts +37 -6
  79. package/src/cli.ts +8 -2
  80. package/src/commands/auth.ts +560 -0
  81. package/src/commands/canvas.ts +238 -18
  82. package/src/commands/render.ts +7 -3
  83. package/src/config-home.ts +45 -0
  84. package/src/errors.ts +5 -1
  85. package/src/install.ts +107 -0
  86. package/src/skill-content.generated.ts +1 -1
  87. package/src/slug.ts +26 -0
  88. package/src/terminal.ts +14 -0
  89. package/src/version.ts +1 -1
  90. package/src/workspace.ts +30 -4
@@ -63,11 +63,25 @@ const Refusal = z.discriminatedUnion("code", [
63
63
  retryAt: z.string(),
64
64
  }),
65
65
  z.object({ code: z.literal("TOO_LARGE"), message: z.string() }),
66
+ z.object({ code: z.literal("UNAUTHENTICATED"), message: z.string() }),
67
+ z.object({ code: z.literal("ALREADY_OWNED"), message: z.string() }),
66
68
  ]);
67
69
  const hostOf = (api) => new URL(api).host;
68
70
  const unavailable = (api, status, details) => new PrLensCliError("CANVAS_UNAVAILABLE", status === undefined
69
71
  ? `${hostOf(api)} did not answer`
70
72
  : `${hostOf(api)} answered ${status}`, details);
73
+ /** Untrusted server content, so printable and short. */
74
+ const LOCATION_SHOWN = 200;
75
+ /** Printing the target turns an `http://` for `https://` typo into a fix. */
76
+ const redirected = (api, response) => {
77
+ const location = response.headers
78
+ .get("location")
79
+ ?.replace(/[^\x20-\x7e]/g, "")
80
+ .slice(0, LOCATION_SHOWN);
81
+ return unavailable(api, response.status, location === undefined || location === ""
82
+ ? "the canvas API answers at the address it is given, and this one redirects"
83
+ : `the canvas API answers at the address it is given; this one points at ${location}, so pass that as --api`);
84
+ };
71
85
  const parseJson = (text) => {
72
86
  try {
73
87
  return JSON.parse(text);
@@ -102,6 +116,11 @@ const refusal = (api, request, status, body) => {
102
116
  return new PrLensCliError("CANVAS_REJECTED", error.message);
103
117
  case "RATE_LIMITED":
104
118
  return new PrLensCliError("CANVAS_RATE_LIMITED", `${hostOf(api)} is rate limiting this client until ${error.retryAt}`, error.message);
119
+ case "UNAUTHENTICATED":
120
+ return new PrLensCliError("AUTH_REQUIRED", `${hostOf(api)} did not accept this sign-in`, [error.message, "pr-lens auth login signs this machine in again"].join("\n"));
121
+ case "ALREADY_OWNED":
122
+ // The caller holds the write token, so naming the case leaks nothing.
123
+ return new PrLensCliError("CANVAS_OWNED", `${request.canvas ?? "that canvas"} belongs to another account on ${hostOf(api)}`, "the first claim wins, and somebody else's landed first");
105
124
  case "INVALID_REQUEST":
106
125
  case "TOO_LARGE":
107
126
  return unavailable(api, status, error.message);
@@ -116,6 +135,8 @@ const call = async (api, request, schema) => {
116
135
  };
117
136
  if (request.token !== undefined)
118
137
  headers.authorization = `Bearer ${request.token}`;
138
+ if (request.install !== undefined)
139
+ headers["x-pr-lens-install"] = request.install;
119
140
  if (request.ifMatch !== undefined)
120
141
  headers["if-match"] = String(request.ifMatch);
121
142
  if (request.body !== undefined)
@@ -124,11 +145,17 @@ const call = async (api, request, schema) => {
124
145
  method: request.method,
125
146
  headers,
126
147
  body: request.body === undefined ? undefined : JSON.stringify(request.body),
148
+ // A cross-origin redirect keeps every header but `authorization`, which
149
+ // would leak the install id to another host.
150
+ redirect: "manual",
127
151
  signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS),
128
152
  }).catch(() => {
129
153
  // The runtime's message names addresses and internals; keep it out.
130
154
  throw unavailable(api, undefined, "check the address and the connection, then try again");
131
155
  });
156
+ // A 3xx body is not an error envelope.
157
+ if (response.status >= 300 && response.status < 400)
158
+ throw redirected(api, response);
132
159
  // A body can fail after the headers arrived.
133
160
  const text = await response.text().catch(() => {
134
161
  throw unavailable(api, response.status, "the answer was cut off; check the connection, then try again");
@@ -142,7 +169,8 @@ const call = async (api, request, schema) => {
142
169
  return parsed.data;
143
170
  };
144
171
  const canvasPath = (id) => `/api/canvas/${id}`;
145
- export const mintCanvas = (api) => call(api, { method: "POST", path: "/api/canvas", canvas: undefined }, Minted);
172
+ /** The bearer is how CI attributes a mint: a runner's install id is never linked. */
173
+ export const mintCanvas = (api, install, token) => call(api, { method: "POST", path: "/api/canvas", canvas: undefined, install, token }, Minted);
146
174
  export const fetchCanvas = async (api, id) => {
147
175
  const fetched = await call(api, { method: "GET", path: canvasPath(id), canvas: id }, Fetched);
148
176
  const document = safeParseGraphDoc(fetched.document);
@@ -173,4 +201,32 @@ export const rotateCanvas = (api, id, token, nextToken) => call(api, {
173
201
  body: { writeToken: nextToken },
174
202
  }, Rotated);
175
203
  export const deleteCanvas = (api, id, token) => call(api, { method: "DELETE", path: canvasPath(id), canvas: id, token }, z.object({ id: z.literal(id), deleted: z.literal(true) }));
204
+ /** An unreadable revision must not read as an empty canvas. */
205
+ const Preview = z.discriminatedUnion("type", [
206
+ z.object({ type: z.literal("drawn"), title: z.string().min(1) }),
207
+ z.object({ type: z.literal("not_drawn") }),
208
+ z.object({ type: z.literal("unreadable") }),
209
+ ]);
210
+ const Owned = z.object({
211
+ id: z.string(),
212
+ rev: z.number().int(),
213
+ preview: Preview,
214
+ });
215
+ const Owning = z.object({ canvases: z.array(Owned) });
216
+ /**
217
+ * Carries no write tokens: the app keeps only their hashes. A store without
218
+ * accounts 404s here, which reads as unavailable, not as a missing canvas.
219
+ */
220
+ export const listOwnedCanvases = (api, token) => call(api, { method: "GET", path: "/api/canvases", canvas: undefined, token }, Owning).then(({ canvases }) => canvases);
221
+ /**
222
+ * The account token takes the header, so the write tokens go in the body.
223
+ * The caller mints the next token so a lost answer can be replayed.
224
+ */
225
+ export const claimCanvas = (api, id, accountToken, writeToken, nextWriteToken) => call(api, {
226
+ method: "POST",
227
+ path: `${canvasPath(id)}/claim`,
228
+ canvas: id,
229
+ token: accountToken,
230
+ body: { writeToken, nextWriteToken },
231
+ }, Rotated);
176
232
  //# sourceMappingURL=api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/canvas/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/canvas/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Terminal } from "../terminal.js";
2
+ export declare const claimCommand: (args: readonly string[], terminal: Terminal, env: Record<string, string | undefined>) => Promise<void>;
3
+ //# sourceMappingURL=claim.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claim.d.ts","sourceRoot":"","sources":["../../src/canvas/claim.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAyB/C,eAAO,MAAM,YAAY,SACjB,SAAS,MAAM,EAAE,YACb,QAAQ,OACb,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,KACtC,OAAO,CAAC,IAAI,CA4Fd,CAAC"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * The write token is the only proof, and it rides in every edit link ever
3
+ * shared, so claiming retires it in the same step.
4
+ */
5
+ import { requireToken } from "../auth.js";
6
+ import { claimCanvas, listOwnedCanvases } from "./api.js";
7
+ import { expectOne, parseOptions } from "../args.js";
8
+ import { PrLensCliError } from "../errors.js";
9
+ import { readApi, requireWriteToken, settlePendingRotation } from "./write.js";
10
+ import { findCanvas, mintWriteToken, readRegistry, REGISTRY_PATH, updateRegistry, } from "./registry.js";
11
+ const unfinishedClaim = (error) => new PrLensCliError(error.code, `${error.message}; the claim may have landed`, [
12
+ error.details,
13
+ "run pr-lens canvas claim again: the token it minted is kept, and a second run finishes the claim",
14
+ ]
15
+ .filter((line) => line !== undefined && line !== "")
16
+ .join("\n"));
17
+ export const claimCommand = async (args, terminal, env) => {
18
+ const { values, positionals } = parseOptions(args, {
19
+ api: { type: "string" },
20
+ });
21
+ const ref = expectOne(positionals, "the id or name of a canvas to claim");
22
+ const api = readApi(values.api, env);
23
+ const registry = await readRegistry();
24
+ const selected = findCanvas(registry, ref);
25
+ // Checked first, so a signed-out machine never costs a rotation.
26
+ const account = await requireToken(env, api);
27
+ // Also finishes a claim whose answer was lost: its token is still pending.
28
+ const settled = await settlePendingRotation(api, selected, terminal, env);
29
+ const id = settled.id;
30
+ // Unlike push and delete, ownership cannot stand in: claiming is how a
31
+ // canvas gets an owner.
32
+ requireWriteToken(settled);
33
+ // The app treats an owner's claim as a replay and rotates, so running the
34
+ // command twice would retire a token for nothing.
35
+ const mine = await listOwnedCanvases(api, account);
36
+ if (mine.some((canvas) => canvas.id === id))
37
+ throw new PrLensCliError("CANVAS_OWNED", `${id} is already yours on ${new URL(api).host}`, "claiming it again would retire its write token for nothing");
38
+ terminal.err("! Claiming rotates this canvas's write token.");
39
+ terminal.err(" Edit links you have already shared will stop working.");
40
+ // Saved first, so a lost answer does not lose the token.
41
+ const nextToken = mintWriteToken();
42
+ let saved = false;
43
+ await updateRegistry((current) => {
44
+ const entry = current.canvases[id];
45
+ if (entry === undefined || entry.api !== api)
46
+ return;
47
+ current.canvases[id] = { ...entry, pending: nextToken };
48
+ saved = true;
49
+ }, terminal);
50
+ if (!saved)
51
+ throw new PrLensCliError("CANVAS_UNREGISTERED", `${id} is no longer in ${REGISTRY_PATH}`);
52
+ const claimed = await claimCanvas(api, id, account, requireWriteToken(settled), nextToken).catch(async (error) => {
53
+ if (!(error instanceof PrLensCliError))
54
+ throw error;
55
+ // Only these two mean the app did not rotate. Anything else may have
56
+ // landed, so the pending token stays for the next run to finish.
57
+ if (error.code !== "CANVAS_UNKNOWN" && error.code !== "CANVAS_OWNED")
58
+ throw unfinishedClaim(error);
59
+ await updateRegistry((current) => {
60
+ const entry = current.canvases[id];
61
+ if (entry === undefined || entry.pending !== nextToken || entry.api !== api)
62
+ return;
63
+ current.canvases[id] = { ...entry, pending: undefined };
64
+ }, terminal);
65
+ throw error;
66
+ });
67
+ // A different token pending by now belongs to a later rotation.
68
+ await updateRegistry((current) => {
69
+ const entry = current.canvases[id];
70
+ if (entry === undefined || entry.pending !== nextToken || entry.api !== api)
71
+ return;
72
+ current.canvases[id] = {
73
+ ...entry,
74
+ writeToken: nextToken,
75
+ pending: undefined,
76
+ };
77
+ }, terminal);
78
+ const view = new URL(claimed.editUrl);
79
+ view.hash = "";
80
+ terminal.out(`✓ ${view.href} is yours`);
81
+ terminal.out(` Its new write token is in ${REGISTRY_PATH}, so this checkout can push to it.`);
82
+ terminal.out(" Edit links you shared before this still open the page, and no longer edit it.");
83
+ };
84
+ //# sourceMappingURL=claim.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claim.js","sourceRoot":"","sources":["../../src/canvas/claim.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { deleteCanvas } from "./api.js";
2
2
  import { usageError } from "../errors.js";
3
3
  import { parseOptions, readString } from "../args.js";
4
4
  import { selectCanvas, readRegistry, updateRegistry } from "./registry.js";
5
- import { readApi, requireWriteToken, settlePendingRotation } from "./write.js";
5
+ import { readApi, settlePendingRotation, writeCredential } from "./write.js";
6
6
  export const deleteCommand = async (args, terminal, env) => {
7
7
  const { values, positionals } = parseOptions(args, {
8
8
  canvas: { type: "string" },
@@ -14,8 +14,8 @@ export const deleteCommand = async (args, terminal, env) => {
14
14
  const registry = await readRegistry();
15
15
  const ref = readString(values.canvas, "canvas");
16
16
  const selected = selectCanvas(registry, ref);
17
- const target = await settlePendingRotation(api, selected, terminal);
18
- await deleteCanvas(api, target.id, requireWriteToken(target));
17
+ const target = await settlePendingRotation(api, selected, terminal, env);
18
+ await deleteCanvas(api, target.id, await writeCredential(target, env, api));
19
19
  await updateRegistry((current) => {
20
20
  if (current.canvases[target.id]?.api === api)
21
21
  delete current.canvases[target.id];
@@ -1 +1 @@
1
- {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../src/canvas/delete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAE/E,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,IAAuB,EACvB,QAAkB,EAClB,GAAuC,EACxB,EAAE;IACjB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE;QACjD,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC1B,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KACxB,CAAC,CAAC;IACH,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;QACxB,MAAM,UAAU,CACd,6CAA6C,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CACrE,CAAC;IAEJ,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAErC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;IAEtC,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAE7C,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACpE,MAAM,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;IAE9D,MAAM,cAAc,CAAC,CAAC,OAAO,EAAE,EAAE;QAC/B,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,GAAG;YAC1C,OAAO,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACb,QAAQ,CAAC,GAAG,CACV,aAAa,MAAM,CAAC,EAAE,SAAS,GAAG,kCAAkC,CACrE,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../src/canvas/delete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7E,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,IAAuB,EACvB,QAAkB,EAClB,GAAuC,EACxB,EAAE;IACjB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE;QACjD,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC1B,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KACxB,CAAC,CAAC;IACH,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;QACxB,MAAM,UAAU,CACd,6CAA6C,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CACrE,CAAC;IAEJ,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAErC,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;IAEtC,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAE7C,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IACzE,MAAM,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAE5E,MAAM,cAAc,CAAC,CAAC,OAAO,EAAE,EAAE;QAC/B,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,GAAG;YAC1C,OAAO,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACb,QAAQ,CAAC,GAAG,CACV,aAAa,MAAM,CAAC,EAAE,SAAS,GAAG,kCAAkC,CACrE,CAAC;AACJ,CAAC,CAAC"}
@@ -6,7 +6,7 @@ export declare const isCanvasId: (value: string) => boolean;
6
6
  export declare const mintWriteToken: () => string;
7
7
  declare const Entry: z.ZodObject<{
8
8
  name: z.ZodString;
9
- source: z.ZodString;
9
+ source: z.ZodOptional<z.ZodString>;
10
10
  api: z.ZodString;
11
11
  writeToken: z.ZodOptional<z.ZodString>;
12
12
  pending: z.ZodOptional<z.ZodString>;
@@ -15,7 +15,7 @@ declare const Entry: z.ZodObject<{
15
15
  declare const Registry: z.ZodObject<{
16
16
  canvases: z.ZodRecord<z.ZodString, z.ZodObject<{
17
17
  name: z.ZodString;
18
- source: z.ZodString;
18
+ source: z.ZodOptional<z.ZodString>;
19
19
  api: z.ZodString;
20
20
  writeToken: z.ZodOptional<z.ZodString>;
21
21
  pending: z.ZodOptional<z.ZodString>;
@@ -40,6 +40,12 @@ export declare const updateRegistry: (change: (registry: CanvasRegistry) => void
40
40
  export declare const sourceKey: (path: string) => string;
41
41
  export declare const findCanvas: (registry: CanvasRegistry, ref: string) => Registered;
42
42
  export declare const findBySource: (registry: CanvasRegistry, path: string) => Registered | undefined;
43
+ /**
44
+ * Fallback after the path: a pull and the render after it write two files,
45
+ * and only one can be the recorded path. A path match wins, since a title
46
+ * can be edited.
47
+ */
48
+ export declare const findByTitle: (registry: CanvasRegistry, title: string) => Registered | undefined;
43
49
  export declare const onlyCanvas: (registry: CanvasRegistry) => Registered;
44
50
  export declare const selectCanvas: (registry: CanvasRegistry, ref: string | undefined) => Registered;
45
51
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/canvas/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAmBxB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAK/C,kEAAkE;AAClE,eAAO,MAAM,aAAa,QAAqC,CAAC;AAMhE,eAAO,MAAM,UAAU,UAAW,MAAM,KAAG,OAAgC,CAAC;AAE5E,eAAO,MAAM,cAAc,QAAO,MACK,CAAC;AAExC,QAAA,MAAM,KAAK;;;;;;;iBAUT,CAAC;AAEH,QAAA,MAAM,QAAQ;;;;;;;;;iBAEZ,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC;AAChD,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AACtD,MAAM,MAAM,UAAU,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,WAAW,CAAA;CAAE,CAAC;AAQ5D,eAAO,MAAM,YAAY,QAAa,OAAO,CAAC,cAAc,CAc3D,CAAC;AAkGF,8EAA8E;AAC9E,eAAO,MAAM,kBAAkB,aAAoB,QAAQ,KAAG,OAAO,CAAC,IAAI,CAGzE,CAAC;AAWF,yFAAyF;AACzF,eAAO,MAAM,wBAAwB,SAC7B,MAAM,KACX,OAAO,CAAC,OAAO,CA6BjB,CAAC;AAEF,eAAO,MAAM,aAAa,aACd,cAAc,YACd,QAAQ,KACjB,OAAO,CAAC,IAAI,CAGd,CAAC;AAyHF,yFAAyF;AACzF,eAAO,MAAM,gBAAgB,GAAU,CAAC,QAChC,MAAM,OAAO,CAAC,CAAC,CAAC,KACrB,OAAO,CAAC,CAAC,CAwCX,CAAC;AAEF,eAAO,MAAM,cAAc,WACjB,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,YAChC,QAAQ,KACjB,OAAO,CAAC,cAAc,CAMrB,CAAC;AAEL,eAAO,MAAM,SAAS,SAAU,MAAM,KAAG,MACD,CAAC;AAUzC,eAAO,MAAM,UAAU,aACX,cAAc,OACnB,MAAM,KACV,UAoBF,CAAC;AAEF,eAAO,MAAM,YAAY,aACb,cAAc,QAClB,MAAM,KACX,UAAU,GAAG,SAaf,CAAC;AAEF,eAAO,MAAM,UAAU,aAAc,cAAc,KAAG,UAiBrD,CAAC;AAEF,eAAO,MAAM,YAAY,aACb,cAAc,OACnB,MAAM,GAAG,SAAS,KACtB,UACmE,CAAC"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/canvas/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAmBxB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAK/C,kEAAkE;AAClE,eAAO,MAAM,aAAa,QAAqC,CAAC;AAMhE,eAAO,MAAM,UAAU,UAAW,MAAM,KAAG,OAAgC,CAAC;AAE5E,eAAO,MAAM,cAAc,QAAO,MACK,CAAC;AAExC,QAAA,MAAM,KAAK;;;;;;;iBAWT,CAAC;AAEH,QAAA,MAAM,QAAQ;;;;;;;;;iBAEZ,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC;AAChD,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AACtD,MAAM,MAAM,UAAU,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,WAAW,CAAA;CAAE,CAAC;AAQ5D,eAAO,MAAM,YAAY,QAAa,OAAO,CAAC,cAAc,CAc3D,CAAC;AAkGF,8EAA8E;AAC9E,eAAO,MAAM,kBAAkB,aAAoB,QAAQ,KAAG,OAAO,CAAC,IAAI,CAGzE,CAAC;AAWF,yFAAyF;AACzF,eAAO,MAAM,wBAAwB,SAC7B,MAAM,KACX,OAAO,CAAC,OAAO,CA6BjB,CAAC;AAEF,eAAO,MAAM,aAAa,aACd,cAAc,YACd,QAAQ,KACjB,OAAO,CAAC,IAAI,CAGd,CAAC;AAyHF,yFAAyF;AACzF,eAAO,MAAM,gBAAgB,GAAU,CAAC,QAChC,MAAM,OAAO,CAAC,CAAC,CAAC,KACrB,OAAO,CAAC,CAAC,CAwCX,CAAC;AAEF,eAAO,MAAM,cAAc,WACjB,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,YAChC,QAAQ,KACjB,OAAO,CAAC,cAAc,CAMrB,CAAC;AAEL,eAAO,MAAM,SAAS,SAAU,MAAM,KAAG,MACD,CAAC;AAUzC,eAAO,MAAM,UAAU,aACX,cAAc,OACnB,MAAM,KACV,UAoBF,CAAC;AAEF,eAAO,MAAM,YAAY,aACb,cAAc,QAClB,MAAM,KACX,UAAU,GAAG,SAaf,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,WAAW,aACZ,cAAc,SACjB,MAAM,KACZ,UAAU,GAAG,SAWf,CAAC;AAEF,eAAO,MAAM,UAAU,aAAc,cAAc,KAAG,UAiBrD,CAAC;AAEF,eAAO,MAAM,YAAY,aACb,cAAc,OACnB,MAAM,GAAG,SAAS,KACtB,UACmE,CAAC"}
@@ -16,7 +16,8 @@ export const isCanvasId = (value) => CANVAS_ID.test(value);
16
16
  export const mintWriteToken = () => randomBytes(16).toString("base64url");
17
17
  const Entry = z.object({
18
18
  name: z.string(),
19
- source: z.string(),
19
+ /** Absent for a canvas recorded from an edit link: no local file wrote it. */
20
+ source: z.string().optional(),
20
21
  /** Another app's 404 says nothing about this entry. */
21
22
  api: z.string(),
22
23
  /** Absent for a canvas pulled by its view link. */
@@ -291,12 +292,24 @@ export const findCanvas = (registry, ref) => {
291
292
  };
292
293
  export const findBySource = (registry, path) => {
293
294
  const key = sourceKey(path);
294
- const matching = entries(registry).filter(({ entry }) => sourceKey(entry.source) === key);
295
+ const matching = entries(registry).filter(({ entry }) => entry.source !== undefined && sourceKey(entry.source) === key);
295
296
  const [only, ...more] = matching;
296
297
  if (more.length > 0)
297
298
  throw unregistered(`${matching.length} canvases were pushed from ${key}`, `pass --canvas <id|name>: ${matching.map(describe).join(", ")}`);
298
299
  return only;
299
300
  };
301
+ /**
302
+ * Fallback after the path: a pull and the render after it write two files,
303
+ * and only one can be the recorded path. A path match wins, since a title
304
+ * can be edited.
305
+ */
306
+ export const findByTitle = (registry, title) => {
307
+ const matching = entries(registry).filter(({ entry }) => entry.name === title);
308
+ const [only, ...more] = matching;
309
+ if (more.length > 0)
310
+ throw usageError(`${matching.length} canvases are named ${JSON.stringify(title)}`, `pass --canvas <id>: ${matching.map(describe).join(", ")}`);
311
+ return only;
312
+ };
300
313
  export const onlyCanvas = (registry) => {
301
314
  const all = entries(registry);
302
315
  const [only, ...more] = all;
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/canvas/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/canvas/registry.ts"],"names":[],"mappings":"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"}
@@ -2,14 +2,23 @@ import type { Terminal } from "../terminal.js";
2
2
  import { type Registered } from "./registry.js";
3
3
  export declare const DEFAULT_API = "https://prlens.dev";
4
4
  export declare const API_ENV = "PR_LENS_API_URL";
5
+ /**
6
+ * `||` for the environment: a workflow cannot omit an `env` key, so it sets
7
+ * it to "". The flag keeps `??`, so a typed `--api ""` is reported.
8
+ */
5
9
  export declare const readApi: (value: unknown, env: Record<string, string | undefined>) => string;
6
10
  /** Another app's 404 says nothing about this entry, so it must not change it. */
7
11
  export declare const requireSameApi: (api: string, { id, entry }: Registered) => void;
8
12
  export declare const requireWriteToken: ({ id, entry }: Registered) => string;
13
+ /**
14
+ * The write token first: it works signed out and on stores without accounts.
15
+ * The account token only works if the app finds the account owns the canvas.
16
+ */
17
+ export declare const writeCredential: (registered: Registered, env: Record<string, string | undefined>, api: string) => Promise<string>;
9
18
  /** Asking again with the same pair is safe: the app answers "rotated" once the token is on record. */
10
- export declare const settleRotation: (api: string, { id, entry }: Registered, nextToken: string, terminal: Terminal) => Promise<{
19
+ export declare const settleRotation: (api: string, { id, entry }: Registered, nextToken: string, terminal: Terminal, env: Record<string, string | undefined>) => Promise<{
11
20
  registered: Registered;
12
21
  editUrl: string;
13
22
  }>;
14
- export declare const settlePendingRotation: (api: string, registered: Registered, terminal: Terminal) => Promise<Registered>;
23
+ export declare const settlePendingRotation: (api: string, registered: Registered, terminal: Terminal, env: Record<string, string | undefined>) => Promise<Registered>;
15
24
  //# sourceMappingURL=write.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../src/canvas/write.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhE,eAAO,MAAM,WAAW,uBAAuB,CAAC;AAChD,eAAO,MAAM,OAAO,oBAAoB,CAAC;AAEzC,eAAO,MAAM,OAAO,UACX,OAAO,OACT,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,KACtC,MAQF,CAAC;AAEF,iFAAiF;AACjF,eAAO,MAAM,cAAc,QACpB,MAAM,iBACI,UAAU,KACxB,IAOF,CAAC;AAEF,eAAO,MAAM,iBAAiB,kBAAmB,UAAU,KAAG,MAO7D,CAAC;AAcF,sGAAsG;AACtG,eAAO,MAAM,cAAc,QACpB,MAAM,iBACI,UAAU,aACd,MAAM,YACP,QAAQ,KACjB,OAAO,CAAC;IAAE,UAAU,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAoDrD,CAAC;AAEF,eAAO,MAAM,qBAAqB,QAC3B,MAAM,cACC,UAAU,YACZ,QAAQ,KACjB,OAAO,CAAC,UAAU,CAOpB,CAAC"}
1
+ {"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../src/canvas/write.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhE,eAAO,MAAM,WAAW,uBAAuB,CAAC;AAChD,eAAO,MAAM,OAAO,oBAAoB,CAAC;AAEzC;;;GAGG;AACH,eAAO,MAAM,OAAO,UACX,OAAO,OACT,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,KACtC,MAQF,CAAC;AAEF,iFAAiF;AACjF,eAAO,MAAM,cAAc,QACpB,MAAM,iBACI,UAAU,KACxB,IAOF,CAAC;AAEF,eAAO,MAAM,iBAAiB,kBAAmB,UAAU,KAAG,MAO7D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,eACd,UAAU,OACjB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,OAClC,MAAM,KACV,OAAO,CAAC,MAAM,CAchB,CAAC;AAcF,sGAAsG;AACtG,eAAO,MAAM,cAAc,QACpB,MAAM,iBACI,UAAU,aACd,MAAM,YACP,QAAQ,OACb,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,KACtC,OAAO,CAAC;IAAE,UAAU,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAoDrD,CAAC;AAEF,eAAO,MAAM,qBAAqB,QAC3B,MAAM,cACC,UAAU,YACZ,QAAQ,OACb,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,KACtC,OAAO,CAAC,UAAU,CAOpB,CAAC"}
@@ -1,11 +1,16 @@
1
1
  import { readString } from "../args.js";
2
+ import { readToken } from "../auth.js";
2
3
  import { rotateCanvas } from "./api.js";
3
4
  import { PrLensCliError, usageError } from "../errors.js";
4
5
  import { updateRegistry } from "./registry.js";
5
6
  export const DEFAULT_API = "https://prlens.dev";
6
7
  export const API_ENV = "PR_LENS_API_URL";
8
+ /**
9
+ * `||` for the environment: a workflow cannot omit an `env` key, so it sets
10
+ * it to "". The flag keeps `??`, so a typed `--api ""` is reported.
11
+ */
7
12
  export const readApi = (value, env) => {
8
- const api = readString(value, "api") ?? env[API_ENV] ?? DEFAULT_API;
13
+ const api = readString(value, "api") ?? (env[API_ENV] || DEFAULT_API);
9
14
  try {
10
15
  new URL(api);
11
16
  }
@@ -25,6 +30,21 @@ export const requireWriteToken = ({ id, entry }) => {
25
30
  return entry.writeToken;
26
31
  throw new PrLensCliError("CANVAS_UNREGISTERED", `this checkout can read ${id} but holds no write token for it`, "pull its edit link, the one with #w= at the end, and the token comes with it");
27
32
  };
33
+ /**
34
+ * The write token first: it works signed out and on stores without accounts.
35
+ * The account token only works if the app finds the account owns the canvas.
36
+ */
37
+ export const writeCredential = async (registered, env, api) => {
38
+ if (registered.entry.writeToken !== undefined)
39
+ return registered.entry.writeToken;
40
+ const account = await readToken(env, api);
41
+ if (account !== undefined)
42
+ return account;
43
+ throw new PrLensCliError("CANVAS_UNREGISTERED", `this checkout can read ${registered.id} but holds no write token for it`, [
44
+ "pr-lens auth login signs this machine in, and an owner needs no token",
45
+ "or pull its edit link, the one with #w= at the end, and the token comes with it",
46
+ ].join("\n"));
47
+ };
28
48
  const unfinishedRotation = (error) => new PrLensCliError(error.code, `${error.message}; the rotation is not finished`, [
29
49
  error.details,
30
50
  "run pr-lens canvas rotate again to finish it: the new token is kept until the app confirms it",
@@ -32,8 +52,8 @@ const unfinishedRotation = (error) => new PrLensCliError(error.code, `${error.me
32
52
  .filter((line) => line !== undefined && line !== "")
33
53
  .join("\n"));
34
54
  /** Asking again with the same pair is safe: the app answers "rotated" once the token is on record. */
35
- export const settleRotation = async (api, { id, entry }, nextToken, terminal) => {
36
- const rotated = await rotateCanvas(api, id, requireWriteToken({ id, entry }), nextToken).catch(async (error) => {
55
+ export const settleRotation = async (api, { id, entry }, nextToken, terminal, env) => {
56
+ const rotated = await rotateCanvas(api, id, await writeCredential({ id, entry }, env, api), nextToken).catch(async (error) => {
37
57
  if (!(error instanceof PrLensCliError))
38
58
  throw error;
39
59
  if (error.code !== "CANVAS_UNKNOWN")
@@ -71,12 +91,11 @@ export const settleRotation = async (api, { id, entry }, nextToken, terminal) =>
71
91
  editUrl: rotated.editUrl,
72
92
  };
73
93
  };
74
- export const settlePendingRotation = async (api, registered, terminal) => {
94
+ export const settlePendingRotation = async (api, registered, terminal, env) => {
75
95
  requireSameApi(api, registered);
76
- requireWriteToken(registered);
77
96
  const pending = registered.entry.pending;
78
- return pending === undefined
79
- ? registered
80
- : (await settleRotation(api, registered, pending, terminal)).registered;
97
+ if (pending === undefined)
98
+ return registered;
99
+ return (await settleRotation(api, registered, pending, terminal, env)).registered;
81
100
  };
82
101
  //# sourceMappingURL=write.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"write.js","sourceRoot":"","sources":["../../src/canvas/write.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"write.js","sourceRoot":"","sources":["../../src/canvas/write.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAmF9C,eAAO,MAAM,GAAG,SACR,SAAS,MAAM,EAAE,YACb,QAAQ,OACb,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,KACtC,OAAO,CAAC,MAAM,CA0ChB,CAAC"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAyF9C,eAAO,MAAM,GAAG,SACR,SAAS,MAAM,EAAE,YACb,QAAQ,OACb,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,KACtC,OAAO,CAAC,MAAM,CA0ChB,CAAC"}
package/dist/cli.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { assertNever } from "@coldtea/pr-lens-schema";
2
2
  import { CLI_VERSION } from "./version.js";
3
3
  import { formatError, PrLensCliError } from "./errors.js";
4
+ import { authCommand, USAGE as AUTH_USAGE } from "./commands/auth.js";
4
5
  import { skillCommand, USAGE as SKILL_USAGE } from "./commands/skill.js";
5
6
  import { exportCommand, USAGE as EXPORT_USAGE } from "./commands/export.js";
6
7
  import { canvasCommand, USAGE as CANVAS_USAGE } from "./commands/canvas.js";
@@ -8,7 +9,7 @@ import { renderCommand, USAGE as RENDER_USAGE } from "./commands/render.js";
8
9
  import { analyzeCommand, USAGE as ANALYZE_USAGE } from "./commands/analyze.js";
9
10
  import { commentCommand, USAGE as COMMENT_USAGE } from "./commands/comment.js";
10
11
  import { USAGE as VALIDATE_USAGE, validateCommand } from "./commands/validate.js";
11
- const COMMANDS = ["analyze", "render", "comment", "validate", "export", "canvas", "skill"];
12
+ const COMMANDS = ["analyze", "render", "comment", "validate", "export", "canvas", "auth", "skill"];
12
13
  const isCommand = (value) => COMMANDS.some((command) => command === value);
13
14
  const HELP = `pr-lens — review what actually matters
14
15
 
@@ -17,7 +18,8 @@ const HELP = `pr-lens — review what actually matters
17
18
  pr-lens comment --graph --manifest the pull request comment, as markdown
18
19
  pr-lens validate <file...> any PR Lens document, checked against the contract
19
20
  pr-lens export <graph.json> the merged state, as a map worth committing
20
- pr-lens canvas push | pull | rotate | delete that document, kept on prlens.dev as a page and an embed
21
+ pr-lens canvas list | push | pull | claim | rotate | delete that document, kept on prlens.dev as a page and an embed
22
+ pr-lens auth login | status | logout sign this machine in, so the canvases it pushes are yours
21
23
  pr-lens skill diagram instructions for coding agents
22
24
 
23
25
  pr-lens <command> --help what a command takes
@@ -39,6 +41,8 @@ const usageFor = (command) => {
39
41
  return EXPORT_USAGE;
40
42
  case "canvas":
41
43
  return CANVAS_USAGE;
44
+ case "auth":
45
+ return AUTH_USAGE;
42
46
  case "skill":
43
47
  return SKILL_USAGE;
44
48
  default:
@@ -59,6 +63,8 @@ const dispatch = (command, args, terminal, env) => {
59
63
  return exportCommand(args, terminal);
60
64
  case "canvas":
61
65
  return canvasCommand(args, terminal, env);
66
+ case "auth":
67
+ return authCommand(args, terminal, env);
62
68
  case "skill":
63
69
  return skillCommand(args, terminal);
64
70
  default: