@hraness/slopcamera 3.3.4 → 3.3.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 +14 -4
- package/apps/desktop/application/operation.ts +1 -1
- package/apps/desktop/cli/args.ts +61 -0
- package/apps/desktop/cli/capability-manifest.ts +4 -1
- package/apps/desktop/cli/command-host-resources.ts +7 -0
- package/apps/desktop/cli/commands.ts +548 -2
- package/apps/desktop/cli/credits.ts +818 -0
- package/apps/desktop/cli/help.ts +47 -4
- package/apps/desktop/dist/cli/main.js +327 -253
- package/dist/cli.js +14 -4
- package/dist/index-11cb717y.js +28 -0
- package/dist/{index-296qhpf2.js → index-qtn3s421.js} +1 -1
- package/dist/{index-0bbesn4m.js → index-sy1n4zfy.js} +2 -2
- package/dist/index.js +1 -1
- package/dist/operations.js +1 -1
- package/dist/workflow.js +1 -1
- package/docs/README.md +1 -0
- package/package.json +1 -1
- package/schema/drawing.schema.json +27 -0
- package/skills/slopcamera/SKILL.md +1 -0
- package/skills/slopcamera/references/install.md +1 -1
- package/skills/slopcamera/references/patent-drawings.md +53 -0
- package/src/cli.ts +90 -2
- package/src/drawing-pdf.ts +210 -0
- package/src/drawing.ts +293 -0
- package/src/index.ts +19 -0
- package/src/render.ts +6 -3
- package/src/version.ts +1 -1
- package/dist/index-c8jpst4g.js +0 -7
package/apps/desktop/cli/help.ts
CHANGED
|
@@ -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 [
|
|
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"];
|