@clipwright/core 0.31.0 → 0.32.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/CHANGELOG.md CHANGED
@@ -18,6 +18,29 @@ listed under.
18
18
 
19
19
  ## [Unreleased]
20
20
 
21
+ ## [0.32.0] - 2026-10-20
22
+
23
+ ### Added
24
+
25
+ - The public repository ships an n8n workflow, `n8n/clipwright-ugc.json`, built on n8n's own MCP Client node with
26
+ an API key; no community node is needed. It quotes a script, stops when the quote is above `max_credits`, starts the
27
+ render and polls `get_run` every 15 seconds until the run ends. The quote and polling steps ran in n8n 2.43.8; the
28
+ render step and n8n's OAuth credential have not been tried. Setup is in the `@clipwright/mcp-server` README.
29
+ - The public repository is a Claude Code and Cursor plugin marketplace: `claude plugin marketplace add
30
+ seocombat/clipwright-mcp`, then `claude plugin install clipwright@clipwright`. The plugin connects the hosted server
31
+ at `https://mcp.clipwright.io/mcp`, which signs in with OAuth, and adds a skill that quotes before it spends credits.
32
+ - `SKILL.md` in `@clipwright/mcp-server` carries OpenClaw frontmatter: it needs `node` and `npx` and reads
33
+ `CLIPWRIGHT_API_KEY`. The skill is on ClawHub as `seocombat/clipwright`.
34
+ - The four packages name their source repository, `seocombat/clipwright-mcp`, in `package.json`.
35
+ - `@clipwright/core` exports `facelessMaxGeneratedImages` and `FACELESS_PUBLIC_MAX_GENERATED_IMAGES` (31): how many
36
+ pictures a faceless video may generate, one per two selected seconds plus four.
37
+ - *Server-side:* single generations are on since 2026-10-19: `quote_image`, `generate_image`, `quote_video` and
38
+ `generate_video` no longer answer `generations_disabled`. The 0.31.0 entry announced them as pending.
39
+ - *Dashboard:* credits come in three one-time packs: 1,000 for $10, 2,750 for $25 and 6,000 for $50. The dashboard
40
+ has one buy button per pack, and a payment buys one pack.
41
+ - *Dashboard:* the landing page is rebuilt. It starts with installing Clipwright in your agent, then shows the kinds
42
+ of video an agent can make with their prices, a quickstart, a real run, actors and voices, and the three packs.
43
+
21
44
  ## [0.31.0] - 2026-10-19
22
45
 
23
46
  ### Added
@@ -8,6 +8,10 @@ export declare const FACELESS_MIN_ESTIMATE_SEC = 21;
8
8
  export declare const facelessMaxEstimateFrames: (selectedFrames: number) => number;
9
9
  /** A video may run a quarter past its selection, never past 90 s; the charge stays within the selection's quote (owner, 2026-10-07, #529). */
10
10
  export declare const facelessMaxOutputFrames: (selectedFrames: number) => number;
11
+ /** Pictures a public run may generate, the opener's first frame included (docs/70, clipwright#519). */
12
+ export declare const FACELESS_PUBLIC_MAX_GENERATED_IMAGES = 31;
13
+ /** One picture per two selected seconds plus four, never past the runtime's ceiling: the worker's beat limit and the admission cap read it. */
14
+ export declare const facelessMaxGeneratedImages: (selectedFrames: number, imageCeiling?: number) => number;
11
15
  export declare const facelessQuote: z.ZodObject<{
12
16
  outputFrames: z.ZodNumber;
13
17
  baseCredits: z.ZodNumber;
@@ -8,6 +8,10 @@ export const FACELESS_MIN_ESTIMATE_SEC = 21;
8
8
  export const facelessMaxEstimateFrames = (selectedFrames) => Math.min(selectedFrames + 125, 2250);
9
9
  /** A video may run a quarter past its selection, never past 90 s; the charge stays within the selection's quote (owner, 2026-10-07, #529). */
10
10
  export const facelessMaxOutputFrames = (selectedFrames) => Math.min(Math.floor(selectedFrames * 1.25), 2250);
11
+ /** Pictures a public run may generate, the opener's first frame included (docs/70, clipwright#519). */
12
+ export const FACELESS_PUBLIC_MAX_GENERATED_IMAGES = 31;
13
+ /** One picture per two selected seconds plus four, never past the runtime's ceiling: the worker's beat limit and the admission cap read it. */
14
+ export const facelessMaxGeneratedImages = (selectedFrames, imageCeiling = Infinity) => Math.min(imageCeiling, Math.floor(selectedFrames / 50) + 4);
11
15
  export const facelessQuote = z.object({
12
16
  outputFrames: z.number().int().min(FACELESS_MIN_OUTPUT_FRAMES).max(2250),
13
17
  baseCredits: z.number().int().nonnegative(),
@@ -1 +1 @@
1
- {"version":3,"file":"faceless-price.js","sourceRoot":"","sources":["../src/faceless-price.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,kBAAkB,GAAG,uBAAgC,CAAC;AACnE,wFAAwF;AACxF,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAC9C,0GAA0G;AAC1G,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAC5C,6HAA6H;AAC7H,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,cAAsB,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC;AAC1G,8IAA8I;AAC9I,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,cAAsB,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;AAErH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;IACxE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC3C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC7C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC5C,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC;IACvC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;CACtB,CAAC,CAAC,MAAM,EAAE,CAAC;AAGZ,MAAM,UAAU,aAAa,CAAC,KAAkD;IAC9E,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC1G,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC;IACxE,MAAM,aAAa,GAAG,GAAG,CAAC;IAC1B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa;QAC/C,YAAY,EAAE,WAAW,GAAG,aAAa,EAAE,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE,CAAC;AACxF,CAAC"}
1
+ {"version":3,"file":"faceless-price.js","sourceRoot":"","sources":["../src/faceless-price.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,kBAAkB,GAAG,uBAAgC,CAAC;AACnE,wFAAwF;AACxF,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAC9C,0GAA0G;AAC1G,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAC5C,6HAA6H;AAC7H,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,cAAsB,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC;AAC1G,8IAA8I;AAC9I,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,cAAsB,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;AACrH,uGAAuG;AACvG,MAAM,CAAC,MAAM,oCAAoC,GAAG,EAAE,CAAC;AACvD,+IAA+I;AAC/I,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,cAAsB,EAAE,YAAY,GAAG,QAAQ,EAAE,EAAE,CAC5F,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAE9D,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;IACxE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC3C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC7C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC5C,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC;IACvC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;CACtB,CAAC,CAAC,MAAM,EAAE,CAAC;AAGZ,MAAM,UAAU,aAAa,CAAC,KAAkD;IAC9E,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC1G,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC;IACxE,MAAM,aAAa,GAAG,GAAG,CAAC;IAC1B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa;QAC/C,YAAY,EAAE,WAAW,GAAG,aAAa,EAAE,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE,CAAC;AACxF,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,12 @@
1
1
  {
2
2
  "name": "@clipwright/core",
3
- "version": "0.31.0",
3
+ "version": "0.32.0",
4
4
  "description": "Zod schemas and the shared request/response contract of the Clipwright UGC video API",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/seocombat/clipwright-mcp.git",
8
+ "directory": "packages/core"
9
+ },
5
10
  "license": "MIT",
6
11
  "author": "Dimantika Sp. z o.o.",
7
12
  "homepage": "https://clipwright.io/?ref=npm",