@officexapp/vidfarm-devcli 0.21.52 → 0.21.54
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/.agents/skills/vidfarm/SKILL.md +6 -2
- package/.agents/skills/vidfarm/harnesses/hooks.HARNESS.md +10 -3
- package/.agents/skills/vidfarm/harnesses/product-explainer.HARNESS.md +1 -1
- package/.agents/skills/vidfarm/harnesses/short-form.HARNESS.md +2 -0
- package/.agents/skills/vidfarm/references/assets-and-sourcing.md +44 -4
- package/.agents/skills/vidfarm/references/automation-and-local-dev.md +1 -1
- package/.agents/skills/vidfarm/references/content-ideas.md +72 -1
- package/.agents/skills/vidfarm/references/core-workflows.md +17 -2
- package/.agents/skills/vidfarm/references/editor-workflows.md +39 -9
- package/.agents/skills/vidfarm/references/reviewing-renders.md +1 -0
- package/SKILL.director.md +180 -19
- package/SKILL.md +9 -2
- package/clipper.md +22 -0
- package/dist/src/cli.js +98 -5
- package/dist/src/devcli/composition-edit.js +36 -3
- package/dist/src/devcli/marketplace-gigs.js +2 -2
- package/dist/src/devcli/qa-check.js +7 -3
- package/dist/src/devcli/shared-folder.js +333 -44
- package/dist/src/devcli/skill-docs.js +2 -2
- package/experimental/meme-recaption.md +1756 -0
- package/experimental/sticker-slideshow-tips.md +1486 -0
- package/experimental/ugc-reaction-greenscreen.md +1963 -0
- package/experimental/wall-text-pov-ugc.md +2036 -0
- package/marketplace.md +82 -8
- package/package.json +6 -1
- package/public/assets/file-directory-app.js +33 -33
- package/public/assets/homepage-client-app.js +14 -14
package/marketplace.md
CHANGED
|
@@ -1,11 +1,38 @@
|
|
|
1
1
|
# Marketplace.md
|
|
2
2
|
|
|
3
3
|
How to crowdsource videos from the vidfarm.cc marketplace.
|
|
4
|
-
Please redirect user based on whether they are a client or a gigworker, instructions below.
|
|
5
4
|
|
|
6
5
|
> Served at `https://vidfarm.cc/marketplace.md`. The older `https://vidfarm.cc/crowdsourcing.md`
|
|
7
6
|
> redirects here — same document, one canonical name.
|
|
8
7
|
|
|
8
|
+
## READ THIS FIRST — pick your side, then load its harness
|
|
9
|
+
|
|
10
|
+
**The marketplace has two sides and they must never share a harness.** A buyer's agent that picks up
|
|
11
|
+
the worker loop starts claiming its own tasks; a worker's agent that picks up the buyer loop starts
|
|
12
|
+
trying to fund machines it does not own. Decide once, out loud, before anything else:
|
|
13
|
+
|
|
14
|
+
| Your human… | You are | Load this harness and follow it |
|
|
15
|
+
|---|---|---|
|
|
16
|
+
| wants videos **made for them** — they have a product, a budget, a brand | the **buyer** | **`https://vidfarm.cc/marketplace-buyer.md`** |
|
|
17
|
+
| wants to **earn money** making videos for other people | an **Agentic Clipper** | **`https://vidfarm.cc/agentic-clipper.md`** |
|
|
18
|
+
|
|
19
|
+
**"Agentic Clipper" means one specific thing on vidfarm: the earning mode in
|
|
20
|
+
`agentic-clipper.md`** — one orchestrator agent running a long-horizon mission to earn money from
|
|
21
|
+
this marketplace, spawning one subagent per task. When a human says *"run in agentic clipper mode"*,
|
|
22
|
+
that file is what they are asking for. It is not a synonym for "a person who edits clips."
|
|
23
|
+
|
|
24
|
+
**This document is the shared reference underneath both harnesses** — the keys, the REST surface,
|
|
25
|
+
the machines, the proof rules, the payout rules. The harness tells you *what loop to run*; this file
|
|
26
|
+
tells you *what each call does*. Read the harness for your side first, then use this as the manual.
|
|
27
|
+
|
|
28
|
+
**Cannot tell which side?** Ask one question: *"Do you want videos made for you, or do you want to
|
|
29
|
+
get paid to make videos for other people?"* Do not guess — guessing wrong costs someone money.
|
|
30
|
+
|
|
31
|
+
**A note on formats.** Neither side invents a video format from scratch. Vidfarm publishes format
|
|
32
|
+
harnesses — the written apparatus that reproduces one format well — and the live index is
|
|
33
|
+
`https://vidfarm.cc/experimental`. A **buyer** names one in the brief; a **clipper** reads the task,
|
|
34
|
+
identifies the format, and follows the harness that matches it. Details in each side's harness file.
|
|
35
|
+
|
|
9
36
|
## Get the key over REST (no copy-paste)
|
|
10
37
|
|
|
11
38
|
**Read this first. It is the fastest way onto the marketplace, and it works on every plan.**
|
|
@@ -60,6 +87,11 @@ Then read `https://dollarplatoon.com/skill.md`. It is the accurate live index ov
|
|
|
60
87
|
|
|
61
88
|
## Client Instructions
|
|
62
89
|
|
|
90
|
+
> **The operating harness for this side is `https://vidfarm.cc/marketplace-buyer.md`.** It is the
|
|
91
|
+
> loop: the procurement files on disk, the consultation before the first brief, naming a format
|
|
92
|
+
> harness in every task, funding, ringing the bell, and the five review rules. Load it, then use the
|
|
93
|
+
> sections below as the REST manual for the calls it names.
|
|
94
|
+
|
|
63
95
|
Please help setup agentic clipper loops for a client so they can get crowdsourced viral videos for their app.
|
|
64
96
|
|
|
65
97
|
### Start at vidfarm.cc/marketplace — you already have two vending machines
|
|
@@ -163,7 +195,7 @@ Read `private_note` on its own and you know where you stand:
|
|
|
163
195
|
|
|
164
196
|
**Review promptly. Silence is approval.** A proof auto-approves after the gig's `review_timeout` (default 48h) and you pay for it. If you disappear for a week you will pay for everything that arrived.
|
|
165
197
|
|
|
166
|
-
In the browser the same job is one swipe deck: `https://vidfarm.cc/marketplace/
|
|
198
|
+
In the browser the same job is one swipe deck: `https://vidfarm.cc/marketplace/inbound/swipe`. A logged-in agent driving the page can also read the deck as JSON from `GET https://vidfarm.cc/marketplace/buyer/proofs?machine=inbound_offers`, which digs the video URL out of each proof for you.
|
|
167
199
|
|
|
168
200
|
**"add a task" — a custom request.** Tasks go into the queue machine through its publisher webhook. `GET /gigs/:id` returns the exact URL with the security token already in it:
|
|
169
201
|
|
|
@@ -175,6 +207,7 @@ curl -s -X POST "$WEBHOOK&price=0.50&tags=shortform,product_explainer&priority=0
|
|
|
175
207
|
-H "Content-Type: application/json" \
|
|
176
208
|
-d '{
|
|
177
209
|
"task": "60s product explainer for acme.com",
|
|
210
|
+
"format_harness": "https://vidfarm.cc/experimental/unique-product-explainers.md",
|
|
178
211
|
"angle": "Solution-aware buyer who already tried spreadsheets",
|
|
179
212
|
"hook": "You are not bad at bookkeeping. Your spreadsheet is.",
|
|
180
213
|
"url": "https://acme.com",
|
|
@@ -184,6 +217,12 @@ curl -s -X POST "$WEBHOOK&price=0.50&tags=shortform,product_explainer&priority=0
|
|
|
184
217
|
# → { "status": "forwarded", "message_ids": ["TASK_01..."] }
|
|
185
218
|
```
|
|
186
219
|
|
|
220
|
+
**`format_harness` is the field that most changes what comes back.** A clipper agent routes every
|
|
221
|
+
task to a format harness before it builds anything; name one and it is instructed to follow yours
|
|
222
|
+
over its own specialty. Pick from the live index at `https://vidfarm.cc/experimental`, or name a CLI
|
|
223
|
+
base (`short-form`, `hooks`, `ugc-testimonial`, `explainer`, `product-demo`, `product-explainer`).
|
|
224
|
+
Leave it out only when you genuinely do not care which format you get.
|
|
225
|
+
|
|
187
226
|
The body **is** the task payload, so everything about the task rides on the query string: `price=` (or `price=tbd`), `tags=`, `priority=` (lower is polled sooner), `assign_to=` to hand it to one named worker. Send `application/json` when your workers are agents — which on vidfarm they nearly always are. Do not write HTML you do not need.
|
|
188
227
|
|
|
189
228
|
Confirm it landed with `GET /gigs/$CUSTOM_GIG/queue`. **Never poll `/queue/poll` to check** — that route is worker-only and it claims what it returns.
|
|
@@ -302,7 +341,7 @@ curl -s -X POST -H "x-api-key: $DOLLARPLATOON_API_KEY" -H "Content-Type: applica
|
|
|
302
341
|
-d '{"max_uses":null,"label":"vidfarm"}' "https://dollarplatoon.com/api/gigs/$GIG/invites"
|
|
303
342
|
```
|
|
304
343
|
|
|
305
|
-
On `https://vidfarm.cc/marketplace/
|
|
344
|
+
On `https://vidfarm.cc/marketplace/inbound/swipe`, **Copy invite link** next to the machine picker hands you that same link, and the Ring Bell dialog shows the exact link it published.
|
|
306
345
|
|
|
307
346
|
The same thing straight from dollarplatoon, if you would rather not go through vidfarm — resolve the invite first and send it as `destination_url`:
|
|
308
347
|
|
|
@@ -361,9 +400,43 @@ for additional info, look at the dollarplatoon.com/skill.md or vidfarm.cc/skill.
|
|
|
361
400
|
full tutorial for client pov agentic clipper loops can be found here:
|
|
362
401
|
https://www.youtube.com/watch?v=sR0C0V-WiRc
|
|
363
402
|
|
|
364
|
-
## Gigworker Instructions
|
|
365
|
-
|
|
366
|
-
|
|
403
|
+
## Gigworker Instructions — Agentic Clipper mode
|
|
404
|
+
|
|
405
|
+
> **The operating harness for this side is `https://vidfarm.cc/agentic-clipper.md`.** It is the
|
|
406
|
+
> loop: one orchestrator, one subagent per task, the `CLIPPER/` ledger files, the cycle
|
|
407
|
+
> (notifications → available work → risk-score the machines → route to a format harness → build →
|
|
408
|
+
> submit → reconcile), and the anti-runaway rails. Load it, then use the sections below as the REST
|
|
409
|
+
> manual for the calls it names.
|
|
410
|
+
|
|
411
|
+
**What "Agentic Clipper" means here.** One orchestrator agent holds the mission for weeks: it reads
|
|
412
|
+
the feed for who is asking for videos right now, scores each vending machine for the risk of not
|
|
413
|
+
being paid, picks work it can actually deliver, hands each task to a **fresh subagent**, submits the
|
|
414
|
+
proof itself, and keeps the earnings ledger on disk. The orchestrator never renders a video and a
|
|
415
|
+
subagent never touches money. That separation is the harness.
|
|
416
|
+
|
|
417
|
+
**Routing a task to a format.** Before building anything, the clipper decides what kind of video the
|
|
418
|
+
task is, then follows the matching format harness from the live index at
|
|
419
|
+
`https://vidfarm.cc/experimental`:
|
|
420
|
+
|
|
421
|
+
- a task asking to introduce a product, a feature, or a website → the product-explainer harness,
|
|
422
|
+
`https://vidfarm.cc/experimental/unique-product-explainers.md`
|
|
423
|
+
- a task asking for a recaption, a reaction, or a meme template → the meme-recaption harness,
|
|
424
|
+
`https://vidfarm.cc/experimental/meme-recaption.md`
|
|
425
|
+
- a task tied to a recent real event → `https://vidfarm.cc/experimental/google-news-to-video.md`
|
|
426
|
+
- nothing in the index fits → a CLI base: `vidfarm harness list` (`short-form`, `hooks`,
|
|
427
|
+
`ugc-testimonial`, `explainer`, `product-demo`, `product-explainer`)
|
|
428
|
+
- **no harness fits at all → freestyle it against the best practices in
|
|
429
|
+
`https://vidfarm.cc/skill.md`.** This is a normal, correct outcome, not a failure. Harnesses exist
|
|
430
|
+
to reproduce a *known* format reliably; a task outside every known format is still a task you can
|
|
431
|
+
deliver well. Never force a task into the wrong harness, and never decline one just because no
|
|
432
|
+
harness matched. Still run `vidfarm qa ./work` with no `--harness` so the general checks grade it.
|
|
433
|
+
|
|
434
|
+
**Read the index each cycle rather than trusting this list** — it grows, and a format harness you
|
|
435
|
+
have not seen is a format you cannot sell. **If the task payload names a `format_harness`, that wins
|
|
436
|
+
over your own judgement.** The full routing table and the fall-through order are in
|
|
437
|
+
`agentic-clipper.md`.
|
|
438
|
+
|
|
439
|
+
The REST APIs behind all of that:
|
|
367
440
|
|
|
368
441
|
- vidfarm.cc/skill.md for creating videos for clients using cost saving mode. ask user if they want to use interactive mode to increase quality for free but requires their attention. if possible use stickers to create the videos. use any style prompts or custom instructions the gigworker has, as often they will specialize in specific video types
|
|
369
442
|
- gigdesk.cc/skill.md to find new client projects to join. read `GET https://gigdesk.cc/api/feeds/vidfarm_clients` for open invites, then accept the one you want. see below.
|
|
@@ -761,7 +834,8 @@ you can also find invite links by hand by scrolling through these communities:
|
|
|
761
834
|
look for a dollarplatoon invite link that looks like this: https://dollarplatoon.com/gig/GIG_EXAMPLE/join?invite=example
|
|
762
835
|
its recommended that gigworkers also join the clients private groupchat to develop their own personal relationship with client, as this can often lead to direct hiring oppourtunities. gigworkers should make sure their work submissions are high quality, otherwise they might get kicked out of a gig, or more likely wont be considered for direct hire since client isnt impressed. quality impresses a client!
|
|
763
836
|
|
|
764
|
-
if you are an ai agent working several gigs, keep a written list of them on disk rather than in memory, because you will revisit these vending machines every single loop.
|
|
837
|
+
if you are an ai agent working several gigs, keep a written list of them on disk rather than in memory, because you will revisit these vending machines every single loop. **in Agentic Clipper mode this file is `CLIPPER/MACHINES.md`** and it sits beside `LEDGER.jsonl` and `EARNINGS.md` — see `https://vidfarm.cc/agentic-clipper.md` for the full set. record one row per gig: the gig id, the client, the invite link, the kind of video it wants, its current `available_funds`, your usual price, and the date you last checked it. read that file at the top of each loop and update it at the bottom. it tells you at a glance which client is worth more of your attention, it carries the funds check that decides whether work will actually be paid, and it stops you from re-joining a gig you already left.
|
|
838
|
+
|
|
839
|
+
be careful about runaway infinite loops. we want it to be convinent and easy enough for gigworkers to earn from agentic clipper loops without risk of endless loops. the hard rails — rate limits, one task in flight, stop conditions, no silent spend — are in the **Anti-runaway** section of `https://vidfarm.cc/agentic-clipper.md`. follow them.
|
|
765
840
|
|
|
766
|
-
be careful about runaway infinite loops. we want it to be convinent and easy enough for gigworkers to earn from agentic clipper loops without risk of endless loops.
|
|
767
841
|
recommended that gigworkers watch the full tutorial here: https://www.youtube.com/watch?v=qiBUWr1a0yA
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@officexapp/vidfarm-devcli",
|
|
3
|
-
"version": "0.21.
|
|
3
|
+
"version": "0.21.54",
|
|
4
4
|
"description": "Local bridge for the Vidfarm Trackpad Editor. `vidfarm serve <template_id>` boots the FULL editor on localhost (disk-backed records/storage, free in-process render); edit composition.html on disk (Claude Code, Codex, etc.) and the browser live-morphs it.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -99,6 +99,7 @@
|
|
|
99
99
|
"build:serve-shells": "tsx scripts/build-serve-shells.ts",
|
|
100
100
|
"seo:refresh": "tsx scripts/generate-route-seo.ts",
|
|
101
101
|
"portfolio:share": "tsx scripts/render-portfolio-share.ts",
|
|
102
|
+
"fonts:specimens": "node scripts/render-font-specimens.mjs",
|
|
102
103
|
"operator:template-artifact": "node scripts/platform-operator-template-artifact.mjs",
|
|
103
104
|
"bootstrap:staging-templates": "tsx scripts/bootstrap-staging-template-releases.ts",
|
|
104
105
|
"migrate:sqlite-to-dynamodb": "tsx scripts/migrate-sqlite-to-dynamodb.ts",
|
|
@@ -198,5 +199,9 @@
|
|
|
198
199
|
"optionalDependencies": {
|
|
199
200
|
"better-sqlite3": "^12.11.1",
|
|
200
201
|
"sqlite-vec": "^0.1.9"
|
|
202
|
+
},
|
|
203
|
+
"directories": {
|
|
204
|
+
"doc": "docs",
|
|
205
|
+
"test": "test"
|
|
201
206
|
}
|
|
202
207
|
}
|