agentreel 0.1.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/README.md +65 -0
- package/bin/agentreel.mjs +461 -0
- package/package.json +36 -0
- package/public/browser-demo.mp4 +0 -0
- package/public/music.mp3 +0 -0
- package/public/screenshot.png +0 -0
- package/scripts/browser_demo.py +215 -0
- package/scripts/cli_demo.py +272 -0
- package/src/CastVideo.tsx +1000 -0
- package/src/Root.tsx +26 -0
- package/src/index.ts +4 -0
- package/src/types.ts +82 -0
- package/tsconfig.json +13 -0
package/src/Root.tsx
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Composition } from "remotion";
|
|
2
|
+
import { CastVideo } from "./CastVideo";
|
|
3
|
+
import { defaultProps, CastProps } from "./types";
|
|
4
|
+
|
|
5
|
+
export const RemotionRoot: React.FC = () => {
|
|
6
|
+
return (
|
|
7
|
+
<Composition
|
|
8
|
+
id="CastVideo"
|
|
9
|
+
component={CastVideo}
|
|
10
|
+
durationInFrames={450}
|
|
11
|
+
fps={30}
|
|
12
|
+
width={1080}
|
|
13
|
+
height={1080}
|
|
14
|
+
defaultProps={defaultProps}
|
|
15
|
+
calculateMetadata={({ props }: { props: CastProps }) => {
|
|
16
|
+
const fps = 30;
|
|
17
|
+
const titleFrames = Math.round(2.5 * fps);
|
|
18
|
+
const highlightFrames = Math.round(4 * fps) * props.highlights.length;
|
|
19
|
+
const endFrames = Math.round(2.5 * fps);
|
|
20
|
+
return {
|
|
21
|
+
durationInFrames: titleFrames + highlightFrames + endFrames,
|
|
22
|
+
};
|
|
23
|
+
}}
|
|
24
|
+
/>
|
|
25
|
+
);
|
|
26
|
+
};
|
package/src/index.ts
ADDED
package/src/types.ts
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
// A highlight is one "moment" in the demo.
|
|
2
|
+
// Either terminal lines (CLI demo) or a video clip (browser demo).
|
|
3
|
+
export interface Highlight {
|
|
4
|
+
label: string; // e.g. "Initialize", "Configure", "Run"
|
|
5
|
+
overlay?: string; // big text overlay shown on top (e.g. "One command.")
|
|
6
|
+
|
|
7
|
+
// CLI mode — terminal lines
|
|
8
|
+
lines?: TermLine[];
|
|
9
|
+
zoomLine?: number;
|
|
10
|
+
|
|
11
|
+
// Browser mode — video clip from recorded session
|
|
12
|
+
videoSrc?: string; // path to video file (served via staticFile)
|
|
13
|
+
videoStartSec?: number; // trim: start time in seconds
|
|
14
|
+
videoEndSec?: number; // trim: end time in seconds
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface TermLine {
|
|
18
|
+
text: string;
|
|
19
|
+
color?: string; // hex color for the line
|
|
20
|
+
bold?: boolean;
|
|
21
|
+
dim?: boolean;
|
|
22
|
+
isPrompt?: boolean; // prefix with $
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export interface CastProps {
|
|
26
|
+
title: string; // big opening title
|
|
27
|
+
subtitle?: string; // smaller text under title
|
|
28
|
+
highlights: Highlight[];
|
|
29
|
+
endText?: string; // closing CTA command, e.g. "npm install itsovertime"
|
|
30
|
+
endUrl?: string; // URL shown under CTA, e.g. "github.com/islo-labs/overtime"
|
|
31
|
+
gradient?: [string, string]; // background gradient colors
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export const defaultProps: CastProps = {
|
|
35
|
+
title: "itsovertime",
|
|
36
|
+
subtitle: "Cron for AI agents",
|
|
37
|
+
highlights: [
|
|
38
|
+
{
|
|
39
|
+
label: "Initialize",
|
|
40
|
+
overlay: "One command.",
|
|
41
|
+
lines: [
|
|
42
|
+
{ text: "npx @islo-labs/overtime init", isPrompt: true },
|
|
43
|
+
{ text: "" },
|
|
44
|
+
{ text: " itsovertime Cron for AI agents", bold: true, color: "#bd93f9" },
|
|
45
|
+
{ text: "" },
|
|
46
|
+
{ text: " ✓ Created overtime.yml", color: "#50fa7b" },
|
|
47
|
+
],
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
label: "Configure",
|
|
51
|
+
overlay: "Plain English schedules.",
|
|
52
|
+
lines: [
|
|
53
|
+
{ text: "cat overtime.yml", isPrompt: true },
|
|
54
|
+
{ text: "shifts:", dim: true },
|
|
55
|
+
{ text: " - name: pr-review", color: "#f8f8f2" },
|
|
56
|
+
{ text: ' schedule: "every hour"', color: "#50fa7b" },
|
|
57
|
+
{ text: ' task: "Review open PRs..."', color: "#50fa7b" },
|
|
58
|
+
{ text: " notify: slack", color: "#f8f8f2" },
|
|
59
|
+
],
|
|
60
|
+
zoomLine: 3,
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
label: "Run",
|
|
64
|
+
overlay: "Fully autonomous.",
|
|
65
|
+
lines: [
|
|
66
|
+
{ text: "npx @islo-labs/overtime", isPrompt: true },
|
|
67
|
+
{ text: "" },
|
|
68
|
+
{ text: "┌─ itsovertime ───────────────────────────┐", color: "#bd93f9" },
|
|
69
|
+
{ text: "│ pr-review every hour ⟳ running │", color: "#f1fa8c" },
|
|
70
|
+
{ text: "│ dep-updates Mon at 2am idle │", dim: true },
|
|
71
|
+
{ text: "└──────────────────────────────────────────┘", color: "#bd93f9" },
|
|
72
|
+
{ text: "" },
|
|
73
|
+
{ text: " ✓ PR #42 reviewed — approved", color: "#50fa7b" },
|
|
74
|
+
{ text: " ✓ PR #43 reviewed — changes requested", color: "#f1fa8c" },
|
|
75
|
+
],
|
|
76
|
+
zoomLine: 3,
|
|
77
|
+
},
|
|
78
|
+
],
|
|
79
|
+
endText: "npx @islo-labs/overtime",
|
|
80
|
+
endUrl: "github.com/islo-labs/overtime",
|
|
81
|
+
gradient: ["#0f0f1a", "#1a0f2e"],
|
|
82
|
+
};
|
package/tsconfig.json
ADDED