@hraness/slopcamera 3.3.4 → 3.3.6

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.
@@ -11,6 +11,8 @@ Commands:
11
11
  capabilities Discover the exact static capability modules and qualification status
12
12
  operations list|show Discover host-owned typed operations and policies
13
13
  diagram init|check|render Create, validate, or render portable diagram sources
14
+ diagram sheets init|check|render
15
+ Create and render black-and-white drawing sheets
14
16
  scene init|check|inspect|diff|patch|evaluate|audit|render-audit|solve|review|camera-track|generate|plan|render|direction|effects|behavior|temporal-audit
15
17
  Author and inspect editable directed 3D scene sources
16
18
  scene design catalog|init|inspect|set|compile|gallery
@@ -29,6 +31,8 @@ Commands:
29
31
  doctor Check local render and asset capabilities
30
32
  ai models|image|video|speech|transcribe
31
33
  Discover and run Vercel AI Gateway media models
34
+ credits status|topup|wait|forget
35
+ Buy and inspect hosted generation credits
32
36
  media audio|color Apply local non-destructive audio and video effects
33
37
  menubar [--background] Run the prebuilt menu-bar companion
34
38
  menubar install|uninstall|status Manage its per-user LaunchAgent
@@ -250,11 +254,19 @@ reconciliation and never automatically overwrites a later revision.`,
250
254
  slopcamera diagram check <diagram.json> [--config <file>] [--strict]
251
255
  slopcamera diagram render <diagram.json> [--out-dir <directory>]
252
256
  [--config <file>] [--scale <number>]
257
+ slopcamera diagram sheets init <file.drawing.json> [--json]
258
+ slopcamera diagram sheets check <file.drawing.json> [--json]
259
+ slopcamera diagram sheets render <file.drawing.json> [--out-dir <directory>] [--json]
253
260
 
254
261
  These commands delegate to the canonical @hraness/slopcamera parser. Init never overwrites.
255
262
  Check parses and lints without writing; --strict exits 2 on findings. Render replaces the same five
256
263
  portable derivatives: editable .tldr plus light/dark SVG and PNG. The registered Slopcamera diagram
257
- operations separately publish equivalent derivatives by content hash for workflow composition.`,
264
+ operations separately publish equivalent derivatives by content hash for workflow composition.
265
+
266
+ Sheets use a separate .drawing.json format with explicit US Letter or A4 page geometry, black
267
+ line art and outlined uppercase labels. Init never overwrites; check is read-only; render writes
268
+ one vector PDF, one SVG per sheet and a drawing receipt. Geometry checks do not certify legal
269
+ compliance. Drawing sheets are exposed through this CLI and the root SDK, not code/MCP operations.`,
258
270
  image: `Usage:
259
271
  slopcamera image vectorize <raster-path> --output <file.svg> [--json]
260
272
  [--duotone '<#primary,#secondary>'] [--alpha-cutoff <n>] [--timeout-ms <n>]
@@ -368,7 +380,7 @@ run journal.`,
368
380
  [--size <width>x<height>] [--aspect-ratio <width>:<height>] [--seed <n>]
369
381
  [--max-output-tokens <n>] [--temperature <n>] [--stop <text> ...]
370
382
  [--provider-options <json-file>] [--timeout <time>]
371
- [--allow-cloud-upload] [--json]
383
+ [--allow-cloud-upload] [--hosted] [--json]
372
384
  slopcamera ai image gallery <subject> --model <id> --output-dir <directory>
373
385
  [--kind <image|texture|skybox|backdrop|sprite>] [--count <n>]
374
386
  [--vary <axis[=v1,v2][;axis...]>] [--candidates <json-file>]
@@ -396,6 +408,15 @@ Set AI_GATEWAY_API_KEY in the process environment, or run through a linked Verce
396
408
  \`vercel env run -- slopcamera …\` so VERCEL_OIDC_TOKEN is injected. Slopcamera never persists,
397
409
  prints, or accepts either credential through argv.
398
410
 
411
+ Alternatively, prepaid hosted generation bills Hraness Credits instead of your own Gateway
412
+ credential: run \`slopcamera credits topup\` to buy a pack, \`slopcamera credits wait\` to install
413
+ the device token, then \`slopcamera ai image generate --hosted --model <id> --prompt <text>\`.
414
+ Hosted mode admits one prompt-only image per call: --image, --mask, --count, --size,
415
+ --aspect-ratio, --seed, --temperature, --stop, --max-output-tokens, --provider-options and
416
+ --allow-cloud-upload are rejected because the hosted operation currently exposes no input media
417
+ or provider knobs. When no Gateway credential is configured but a credits device token exists,
418
+ ai image generate routes to the hosted service automatically.
419
+
399
420
  The media-model catalog is fetched live from Vercel AI Gateway and cached with a deterministic
400
421
  revision. Every image, video, speech, and batch-transcription model of the matching operation is
401
422
  executable; streaming-only transcription models remain discoverable and are labeled as such.
@@ -532,6 +553,25 @@ All mutations support --json and return the resulting plan hash.`,
532
553
  Options: --kind <kind[,kind]> (repeatable) --from <time> --to <time>
533
554
  --around <time> --limit <1..10000> --json | --jsonl`,
534
555
  inspect: `Usage: slopcamera inspect <recording> [--fields <csv>] [--json]`,
556
+ credits: `Usage:
557
+ slopcamera credits status [--json]
558
+ slopcamera credits topup [--pack <id>] [--email <address>] [--json]
559
+ slopcamera credits wait [--timeout <time>] [--json]
560
+ slopcamera credits forget [--json]
561
+
562
+ Prepaid credits power hosted Slopcamera generation at api.slopcamera.com — an alternative to
563
+ running your own Vercel AI Gateway credential. \`topup\` opens a hosted checkout page and prints
564
+ its URL; the page renders the current pack list and prices from the live rate card. \`wait\`
565
+ polls the pending claim until payment lands, then stores the returned device token with 0600
566
+ permissions below the CLI state root. \`status\` reads the wallet balance and held amount.
567
+ \`forget\` removes the locally stored token and pending claim; the wallet and its balance are
568
+ unaffected, but a removed token cannot be re-read, so a new top-up issues a fresh token.
569
+
570
+ Set SLOPCAMERA_CREDITS_TOKEN to supply the device token from the environment instead of local
571
+ state — useful for agents in ephemeral environments. Tokens and claim secrets never appear in
572
+ argv, receipts, or logs. When a configured wallet runs out, paid calls fail with the top-up URL;
573
+ \`credits topup\` on a configured wallet reuses its bound claim so one wallet keeps one identity.`,
574
+
535
575
  media: `Usage:
536
576
  slopcamera media audio <media-path> [effects] [--audio-stream <index>]
537
577
  [--output <relative-path>] [--json]
@@ -633,7 +673,7 @@ export function commandHelp(topic: readonly string[]): string {
633
673
 
634
674
  export function completions(words: readonly string[]): readonly string[] {
635
675
  const topLevel = [
636
- "capabilities", "operations", "diagram", "direct", "studio", "image", "html", "workflows", "code", "runs", "doctor", "ai", "media", "menubar", "support", "outputs", "recordings", "projects", "project", "scene", "inspect", "events", "edit", "analyze", "align", "faces", "fillers", "render", "assets",
676
+ "capabilities", "operations", "diagram", "direct", "studio", "image", "html", "workflows", "code", "runs", "doctor", "ai", "credits", "media", "menubar", "support", "outputs", "recordings", "projects", "project", "scene", "inspect", "events", "edit", "analyze", "align", "faces", "fillers", "render", "assets",
637
677
  ];
638
678
  if (words.length <= 1) return topLevel;
639
679
  const command = words[0];
@@ -642,7 +682,9 @@ export function completions(words: readonly string[]): readonly string[] {
642
682
  if (command === "direct") return ["init", "anchor", "plan", "start", "inspect", "revise", "generate", "resume", "review", "assemble", "cleanup"];
643
683
  if (command === "studio") return words[2] === "assets" || words[1] === "assets" ? ["search", "describe", "plan", "import"] : ["init", "bundle", "plan", "probe", "run", "encode", "asset", "assemble", "inspect", "reconcile", "assets"];
644
684
  if (command === "operations") return ["list", "show"];
645
- if (command === "diagram") return ["check", "render"];
685
+ if (command === "diagram") return words[1] === "sheets"
686
+ ? ["init", "check", "render"]
687
+ : ["init", "check", "render", "sheets"];
646
688
  if (command === "image") return ["vectorize", "generate", "gallery", "icon"];
647
689
  if (command === "workflows") return ["list", "show", "plan", "run"];
648
690
  if (command === "code") return ["init", "check", "plan", "run"];
@@ -664,6 +706,7 @@ export function completions(words: readonly string[]): readonly string[] {
664
706
  if (command === "align") return ["analyze", "apply"];
665
707
  if (command === "fillers") return ["list", "apply"];
666
708
  if (command === "ai") return ["models", "provider-options", "image", "video", "speech", "transcribe"];
709
+ if (command === "credits") return ["status", "topup", "wait", "forget"];
667
710
  if (command === "media") return ["audio", "color"];
668
711
  if (command === "render") return ["plan", "run"];
669
712
  if (command === "assets") return ["emoji"];