tesseract-agent 0.12.2-beta.2 → 0.12.2-beta.3
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/dist-bundle/builtin-skills/3d-product-shots/SKILL.md +16 -1
- package/dist-bundle/builtin-skills/motion-graphics/SKILL.md +29 -1
- package/dist-bundle/builtin-skills/promo-videos/SKILL.md +21 -1
- package/dist-bundle/builtin-skills/thumbnails/SKILL.md +37 -5
- package/dist-bundle/catalog-vectors/embeddinggemma-300m-q4@ort1.23.2.bin +0 -0
- package/dist-bundle/cli.js +18895 -14453
- package/dist-bundle/codex-rm-hook.js +919 -2
- package/dist-bundle/mesh-core/package.json +1 -1
- package/dist-bundle/office-page.css +1 -1
- package/dist-bundle/office-page.js +662 -662
- package/dist-bundle/office.js +184 -60
- package/dist-bundle/pdf.js +17 -3
- package/dist-bundle/serpapi-mcp.js +9411 -5778
- package/package.json +3 -2
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: 3d-product-shots
|
|
3
3
|
description: Make studio-quality product pictures and 3D-style renders of the person's own product — clean packshots on white or a seamless colour for a shop or a marketplace, a matching set of angles, hero shots with dramatic light, creative 3D scenes (floating ingredients, a miniature world around the product, an inflatable or surreal version, a product on a plinth), a 360° turntable or orbit clip, and true 3D renders when they have a 3D model file (GLB, glTF, OBJ, STL, FBX) placed under a camera and lights in Tesseract's motion editor — every one keeping the product exactly itself (shape, label, colour, parts), checked against the original photo. Use for product photography, e-commerce images, 3D renders, mockups or a spinning product video. Not for a finished video ad with words and a call to action (product-ads), another company's product, or a logo (makers).
|
|
4
4
|
license: MIT AND CC-BY-4.0
|
|
5
|
-
version: 1.0
|
|
5
|
+
version: 1.1.0
|
|
6
6
|
metadata:
|
|
7
7
|
tesseract.summary: Packshots, angle sets, 3D-style hero renders and turntable clips of your own product — kept exact.
|
|
8
8
|
tesseract.category: media
|
|
@@ -56,6 +56,21 @@ image edit is a few cents to about $0.15; a 5-second clip about $0.25–0.50; an
|
|
|
56
56
|
keys `generate_video` returns the estimate first; confirm with `confirmed_cost_usd`. Make **one** picture of the hardest
|
|
57
57
|
look first, get a yes, then the rest in the same light and framing.
|
|
58
58
|
|
|
59
|
+
**The pilot sets the rest.** The approved pilot is the reference: every later picture repeats its light, ground and
|
|
60
|
+
scale, and a clip's `first_frame_image` is the approved packshot itself.
|
|
61
|
+
|
|
62
|
+
**Write every paid call**, in order, after the go-ahead: each `edit_image` naming the person's photo as its source and
|
|
63
|
+
the exact instruction, then `image_inspect` with the original and the result. Never `generate_image` from words alone
|
|
64
|
+
for the real product: a model that has not seen it redraws it. For a clip: `video_providers_status` and
|
|
65
|
+
`list_camera_moves` first. For a 3D file: the whole motion-editor sequence (`comp`, `place`, `camera`, `light`, the
|
|
66
|
+
turn, `render`), and the hero still comes from that same scene instead of a paid edit.
|
|
67
|
+
|
|
68
|
+
**What you may promise.** Never "exact", "100%" or "identical": say the picture will be compared with their photo and
|
|
69
|
+
every difference listed. A side they did not photograph is a reconstruction, named as one. With only some sides
|
|
70
|
+
photographed, a full turn cannot be truthful: offer the `arc-left` through the sides you have, and say which photos
|
|
71
|
+
would allow the full turn. A request to stand the product next to another brand's is declined in one plain sentence, with
|
|
72
|
+
a stronger solo picture offered; size or quality comparisons with another product are never drawn.
|
|
73
|
+
|
|
59
74
|
## 4. Check every picture against the real product
|
|
60
75
|
|
|
61
76
|
`image_inspect` with the original photo and the result: "Compare the product in both pictures: shape, proportions,
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: motion-graphics
|
|
3
3
|
description: Animate titles, logos and graphics in Tesseract's own motion-graphics editor (a .tsmotion project, driven with App Control documents.*) — title cards, logo reveals, lower thirds, kinetic typography and animated quotes, end cards with a call to action, animated stats and callouts, 3D extruded text, a 3D model of a product turning under a camera and lights, text over tracked footage — with keyframes, easing, text animators, expressions, 76 ready presets (backgrounds, behaviours, transitions, text), masks and effects, rendered to MP4 (or exported as Lottie for an app or a website) and dropped into an edit. Use when someone wants something animated rather than filmed or generated — an intro, an outro, a logo sting, a title sequence, an animated explainer graphic, or words that move. Not for cutting footage (video-editing), AI-generated footage (video-generation) or a still logo (makers, font-and-logo-design).
|
|
4
4
|
license: MIT
|
|
5
|
-
version: 1.0
|
|
5
|
+
version: 1.1.0
|
|
6
6
|
metadata:
|
|
7
7
|
tesseract.summary: Animated titles, logo reveals, lower thirds, kinetic type and 3D text in Tesseract's motion editor.
|
|
8
8
|
tesseract.category: media
|
|
@@ -19,6 +19,34 @@ render to MP4. You drive it through App Control: `app_documents` with `documents
|
|
|
19
19
|
over at any moment. Timing and easing rules: [references/motion-principles.md](references/motion-principles.md).
|
|
20
20
|
Ready recipes: [references/recipes.md](references/recipes.md).
|
|
21
21
|
|
|
22
|
+
## The job, call by call
|
|
23
|
+
|
|
24
|
+
Write the whole list of `app_documents` calls in your plan, down to `render` and `save`, one call per line. Each is
|
|
25
|
+
`{ "action": "documents.run", "path": "…", "command": "<name>", "args": { … } }`, and the build always starts on `comp`.
|
|
26
|
+
A title that eases in, in full:
|
|
27
|
+
|
|
28
|
+
```json
|
|
29
|
+
{ "action": "documents.read", "path": "/abs/intro.tsmotion" }
|
|
30
|
+
{ "action": "documents.commands", "path": "/abs/intro.tsmotion", "filter": "layer" }
|
|
31
|
+
{ "action": "documents.run", "path": "/abs/intro.tsmotion", "command": "comp", "args": { "width": 1920, "height": 1080, "fps": 30, "seconds": 4, "background": "#14213D" } }
|
|
32
|
+
{ "action": "documents.run", "path": "/abs/intro.tsmotion", "command": "layer", "args": { "add": "text", "text": "Oak & Iron", "x": 960, "y": 540, "size": 120, "fill": "#FFF4E0" } }
|
|
33
|
+
{ "action": "documents.run", "path": "/abs/intro.tsmotion", "command": "properties", "args": { "layer": "Oak & Iron" } }
|
|
34
|
+
{ "action": "documents.run", "path": "/abs/intro.tsmotion", "command": "set", "args": { "layer": "Oak & Iron", "path": "transform/opacity", "value": 0, "atSec": 0, "key": true } }
|
|
35
|
+
{ "action": "documents.run", "path": "/abs/intro.tsmotion", "command": "set", "args": { "layer": "Oak & Iron", "path": "transform/opacity", "value": 100, "atSec": 0.6, "key": true } }
|
|
36
|
+
{ "action": "documents.run", "path": "/abs/intro.tsmotion", "command": "keyInterp", "args": { "layer": "Oak & Iron", "path": "transform/opacity", "atSec": [0, 0.6], "kind": "ease" } }
|
|
37
|
+
{ "action": "documents.run", "path": "/abs/intro.tsmotion", "command": "render", "args": {} }
|
|
38
|
+
{ "action": "documents.run", "path": "/abs/intro.tsmotion", "command": "save", "args": {} }
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Take the real property paths from `properties`; the ones above show the shape. No project open yet: ask for one in the
|
|
42
|
+
reply and still write the whole list with the path it will have.
|
|
43
|
+
|
|
44
|
+
**Design.** A background has no lettering: a solid, a gradient, a preset, or a picture made with "no text, no letters".
|
|
45
|
+
Each word appears once, as a text layer: never a picture of the same title behind it. One idea per frame, at most
|
|
46
|
+
three text layers, one type family, a lower third only in its lower third. In the 16:9 title-safe area the longest
|
|
47
|
+
line at `size` 120 is about 28 characters; break longer lines into separate layers. Quotes: check the attribution
|
|
48
|
+
and say so when it cannot be confirmed.
|
|
49
|
+
|
|
22
50
|
## 1. Open a project
|
|
23
51
|
|
|
24
52
|
- **A motion project is a `.tsmotion` file.** An existing one: its path (`app_documents` `documents.list` shows what is
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: promo-videos
|
|
3
3
|
description: Make promotional videos that are not a single product's ad — a launch or "coming soon" teaser, a trailer for a book, course, game, podcast, app or opening, an animated explainer of an idea or a service, an event or sale promo with the date and place exact, a brand film or manifesto, a crowdfunding pitch, a recap — built on a proven structure (hook, on-ramp, proof, one call to action), mixing real stock photos, AI-generated hero shots, animated titles and end cards from the motion editor, a voice-over and music, one colour look in the editor, and cut-downs for every placement (6, 15, 30, 60 seconds; 16:9, 9:16, 4:5, 1:1), scored against an ad-review rubric before handover. Use for a promo, teaser, trailer, explainer, event video or brand video. Not for a video ad for one physical product from its photo (product-ads), a software demo from real screen captures (product-videos), or fun creator content (short-form-video).
|
|
4
4
|
license: MIT
|
|
5
|
-
version: 1.0
|
|
5
|
+
version: 1.1.0
|
|
6
6
|
metadata:
|
|
7
7
|
tesseract.summary: Launch teasers, trailers, explainers, event and brand promos — structured, mixed media, every cut-down.
|
|
8
8
|
tesseract.category: media
|
|
@@ -39,6 +39,11 @@ Belief → Tension → Promise → Sign-off (a brand film), Countdown — and ch
|
|
|
39
39
|
video ads Google's research names: **attract** in the first seconds, **brand** early and naturally, **connect** with a
|
|
40
40
|
feeling or a story, **direct** with one clear call to action.
|
|
41
41
|
|
|
42
|
+
The order of calls: their files first — `probe_video` and `transcribe_video` for clips, `image_inspect` for photos
|
|
43
|
+
(ask for any file the brief mentions but does not give a path for; never invent one) — then `list_voices` before a
|
|
44
|
+
voice-over, one pilot of the riskiest made shot after the price is approved, then the rest, `render_edl`, and the
|
|
45
|
+
checks.
|
|
46
|
+
|
|
42
47
|
Write the shot list: beat · seconds · picture · words on screen · voice · sound · the route for the picture (§ 3) ·
|
|
43
48
|
its price. Show it in a few lines; get a yes before anything paid.
|
|
44
49
|
|
|
@@ -76,6 +81,20 @@ tries at one shot, stop and say why.
|
|
|
76
81
|
- Brand within the first 5 seconds (logo, the name said, or the product on screen) and again on the end card; the call
|
|
77
82
|
to action on screen at least 3 seconds, the address readable.
|
|
78
83
|
|
|
84
|
+
### Words on screen and the end card
|
|
85
|
+
|
|
86
|
+
- **Pictures carry no words.** Every generated or edited background is made "no text, no letters, no logos"; all
|
|
87
|
+
words are set once, by `render_edl` `titles` or the motion editor, so they are spelled right and sharp.
|
|
88
|
+
- **The end card has three groups, in this order of size:** the one action ("Book your free tasting"), the facts it
|
|
89
|
+
needs (date · time · place, or price · offer end), the address or handle. The logo or name above them. Nothing
|
|
90
|
+
else — no second offer, no list of benefits.
|
|
91
|
+
- **Fit every line.** Titles do not wrap: break them with `\n`. On 1920×1080 at `size` 72 each character takes about
|
|
92
|
+
2.4% of the width (at most ~30 characters a line); on 1080×1920 at `size` 46, about 4.5% (at most 12 characters). Keep
|
|
93
|
+
words inside 5% margins (vertical: x 0.044–0.822, y 0.15–0.65) and off faces; count the characters of each line.
|
|
94
|
+
- **Each placement is designed, not squeezed.** For every length and aspect asked for, write its own timed shot list
|
|
95
|
+
(which beats stay, the voice line cut to fit, how long each title holds) and its own framing: `reframe_video` per
|
|
96
|
+
shot with the subject kept in, or a keyframe drawn again vertically when a group or a wide scene does not fit.
|
|
97
|
+
|
|
79
98
|
## 5. Review before handover
|
|
80
99
|
|
|
81
100
|
Score the cut with [references/review-rubric.md](references/review-rubric.md) — hook, clarity, visual quality,
|
|
@@ -85,6 +104,7 @@ scores and what you changed.
|
|
|
85
104
|
|
|
86
105
|
## 6. Truth, rights and labels
|
|
87
106
|
|
|
107
|
+
- Before writing, list every claim the brief asks for and check each one: the person can prove it, or it goes. Turn a claim they cannot prove (earnings promised to students, "cures", safety results, "best") into one they can (what the course teaches, what testers saw, the guarantee they really offer) and say so kindly in the reply, with the sentence you would use instead.
|
|
88
108
|
- Every claim, number, review and date is the person's own and true; no invented testimonials, customers, awards or
|
|
89
109
|
"as seen on". Industry rules hold (health claims, financial risk lines, alcohol age limits, fair housing).
|
|
90
110
|
- Only their own brand; no other company's logo, characters or music. Stock photos never pass as their own venue,
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: thumbnails
|
|
3
3
|
description: Design the picture that gets a video clicked — YouTube thumbnails (1280×720), covers for Shorts, Reels and TikTok, and podcast or series cover art — from the video's promise and title, in three or four different concepts, built from a frame of the person's own video, their own photo or a saved character, a found photo or a generated scene, with the words set exactly in a bold font, checked at the size people really see it on a phone, and saved at the platform's size and file limit, ready for the youtube-channel skill to set. Use when someone wants a thumbnail, a cover or a set of thumbnail options to test, or wants an existing one made clearer or more clickable. Not for the video itself (video-generation, short-form-video), a social post picture (social-posts) or a logo (makers, font-and-logo-design).
|
|
4
4
|
license: MIT
|
|
5
|
-
version: 1.0
|
|
5
|
+
version: 1.2.0
|
|
6
6
|
metadata:
|
|
7
7
|
tesseract.summary: Clickable YouTube thumbnails and Shorts/Reels/podcast covers — concepts, exact text, phone-size check.
|
|
8
8
|
tesseract.category: media
|
|
@@ -32,8 +32,11 @@ Ask (or read from the request) only:
|
|
|
32
32
|
- **The channel's look**, if it has one (colours, a font, a recurring layout) — reuse it so the channel's grid reads
|
|
33
33
|
as one.
|
|
34
34
|
|
|
35
|
-
The title and the thumbnail never say the same words: the title says **what
|
|
36
|
-
or the stake.
|
|
35
|
+
The title and the thumbnail never say the same words: the title says **what** (the topic, the place, the budget, the
|
|
36
|
+
time), the picture shows **the feeling** or the stake. Not one word of the title goes on the picture. With every set
|
|
37
|
+
of concepts, write the title it is paired with — the person's own, or a tweak when theirs and the picture overlap — and
|
|
38
|
+
say in one line what each half adds ("title: I built a working computer in Minecraft / picture: the glowing build and
|
|
39
|
+
'IT WORKS?!'").
|
|
37
40
|
|
|
38
41
|
## 2. Three or four concepts, different on purpose
|
|
39
42
|
|
|
@@ -44,6 +47,10 @@ Write them first, in one line each, and show them:
|
|
|
44
47
|
- C — **A → B split**: before / after, cheap / expensive, day 1 / day 100.
|
|
45
48
|
- D — a wild card: the strangest true moment in the video.
|
|
46
49
|
|
|
50
|
+
Every moment shown must be in the video: a before/after uses their real day-1 and day-7 frames, a reaction is one
|
|
51
|
+
they really had (or a stronger expression of their own face they approve), a number is the real one. A concept that
|
|
52
|
+
needs a moment the video does not have is dropped, not drawn.
|
|
53
|
+
|
|
47
54
|
Each concept: at most **three elements** (for example face + object + setting), one emotion, at most **2–4 words** on
|
|
48
55
|
it, one or two hero colours on a contrasting ground.
|
|
49
56
|
|
|
@@ -62,6 +69,12 @@ Make 2–4 per concept (`count`), keep the best, and fix details with `edit_imag
|
|
|
62
69
|
|
|
63
70
|
## 4. Put the words on exactly
|
|
64
71
|
|
|
72
|
+
**The words:** 2–4 in total on the picture (none is fine), in the viewer's language, saying what neither the picture
|
|
73
|
+
nor the title says — the question, the stake, a real number: "IT WORKS?!", "$10/DAY?", "WHY FLAT?". **The style:**
|
|
74
|
+
heavy sans-serif, white or a channel colour, with a thick dark outline and shadow — no translucent grey bars, which
|
|
75
|
+
look unfinished and hide faces; a solid brand-colour plate only behind words on a busy ground. The words sit in the
|
|
76
|
+
empty third opposite the face, never over eyes, mouth or the object that proves the stake.
|
|
77
|
+
|
|
65
78
|
Picture models misspell. Set the 2–4 words yourself, in a heavy sans-serif with a thick outline or a shadow, at least
|
|
66
79
|
about 80 px tall on a 1280×720 frame:
|
|
67
80
|
|
|
@@ -69,8 +82,27 @@ about 80 px tall on a 1280×720 frame:
|
|
|
69
82
|
`app_documents` `documents.run` `text` (the editor's Type tool; `documents.commands` with filter "text" shows its
|
|
70
83
|
argument — font, size, colour, position), crop to 16:9 with `crop` if needed, and `documents.save`.
|
|
71
84
|
- **Or with `render_edl`**: one image segment (`durationSec: 1`), `output: { width: 1280, height: 720 }` (1080×1920 for
|
|
72
|
-
a vertical cover), the words as `titles` (`bold: true`, `size` 120–200, `color`, `box`
|
|
73
|
-
`output.fontsDir` for the channel's own font), then `extract_video_frames` at 0.5 s gives
|
|
85
|
+
a vertical cover), the words as `titles` (`bold: true`, `size` 120–200, `color`, no `box` — the renderer outlines
|
|
86
|
+
and shadows the letters; `output.fontsDir` for the channel's own font), then `extract_video_frames` at 0.5 s gives
|
|
87
|
+
the JPEG. A complete call for one concept:
|
|
88
|
+
|
|
89
|
+
```json
|
|
90
|
+
{ "version": 1, "output": { "width": 1280, "height": 720, "name": "thumb-A" },
|
|
91
|
+
"assets": { "p": { "path": "/abs/concept-A.png", "kind": "image" } },
|
|
92
|
+
"video": [ { "asset": "p", "durationSec": 1 } ],
|
|
93
|
+
"titles": [ { "text": "IT WORKS?!", "startSec": 0, "endSec": 1, "x": 0.33, "y": 0.22, "size": 150, "bold": true, "color": "#FFE600" } ] }
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Titles do not wrap: break long ones with `\n`. Keep every letter inside x 0.05–0.78 and y 0.08–0.78 of a 16:9 frame
|
|
97
|
+
(the duration stamp covers the bottom right). **Check the fit before rendering**: on 1280×720 at `size` 150 a character
|
|
98
|
+
takes about 5% of the width, so a line of 10 spans half the frame: centre it far enough in that no letter is cut. On a
|
|
99
|
+
1080×1920 cover `size` is scaled up, so use `size` 70–85, at most 10 characters a line, centred at x 0.43.
|
|
100
|
+
|
|
101
|
+
**The order of calls:** `image_providers_status` → for their video: `probe_video`, `transcribe_video` and
|
|
102
|
+
`extract_video_frames` at the moments the transcript points to (never at guessed times), `image_inspect` to pick; for
|
|
103
|
+
a photo they gave (a .jpg or .png): use it directly in `edit_image` — never `extract_video_frames` on a still → the
|
|
104
|
+
picture per concept (`edit_image` / `generate_image`, "no text, no letters") → the words per concept (`render_edl` or
|
|
105
|
+
the image editor) → the phone check (§ 5) → the final file at the platform's size, under 2 MB.
|
|
74
106
|
|
|
75
107
|
## 5. Check it at phone size
|
|
76
108
|
|
|
Binary file
|