videonut 1.0.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/.antigravity/config.toml +8 -0
- package/.claude/commands/archivist.toml +12 -0
- package/.claude/commands/director.toml +12 -0
- package/.claude/commands/eic.toml +12 -0
- package/.claude/commands/investigator.toml +12 -0
- package/.claude/commands/prompt.toml +12 -0
- package/.claude/commands/scavenger.toml +12 -0
- package/.claude/commands/scout.toml +12 -0
- package/.claude/commands/scriptwriter.toml +12 -0
- package/.claude/commands/seo.toml +12 -0
- package/.claude/commands/thumbnail.toml +12 -0
- package/.claude/commands/topic_scout.toml +12 -0
- package/.gemini/commands/archivist.toml +12 -0
- package/.gemini/commands/director.toml +12 -0
- package/.gemini/commands/eic.toml +12 -0
- package/.gemini/commands/investigator.toml +12 -0
- package/.gemini/commands/prompt.toml +12 -0
- package/.gemini/commands/scavenger.toml +12 -0
- package/.gemini/commands/scout.toml +12 -0
- package/.gemini/commands/scriptwriter.toml +12 -0
- package/.gemini/commands/seo.toml +12 -0
- package/.gemini/commands/thumbnail.toml +12 -0
- package/.gemini/commands/topic_scout.toml +12 -0
- package/.qwen/commands/archivist.toml +12 -0
- package/.qwen/commands/director.toml +12 -0
- package/.qwen/commands/eic.toml +12 -0
- package/.qwen/commands/investigator.toml +12 -0
- package/.qwen/commands/prompt.toml +12 -0
- package/.qwen/commands/scavenger.toml +12 -0
- package/.qwen/commands/scout.toml +12 -0
- package/.qwen/commands/scriptwriter.toml +12 -0
- package/.qwen/commands/seo.toml +12 -0
- package/.qwen/commands/thumbnail.toml +12 -0
- package/.qwen/commands/topic_scout.toml +12 -0
- package/LICENSE +21 -0
- package/README.md +231 -0
- package/bin/videonut.js +278 -0
- package/package.json +47 -0
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Anti-Gravity Configuration
|
|
2
|
+
# Maps B-MAD Agents to Cursor/Anti-Gravity Rules
|
|
3
|
+
|
|
4
|
+
[rules]
|
|
5
|
+
investigate = ".gemini/commands/bmad-agent-research-investigator.toml"
|
|
6
|
+
direct = ".gemini/commands/bmad-agent-creative-director.toml"
|
|
7
|
+
scavenge = ".gemini/commands/bmad-agent-technical-scavenger.toml"
|
|
8
|
+
review = ".gemini/commands/bmad-agent-core-eic.toml"
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description = "VideoNut Agent: archivist - The Archivist (Vault)"
|
|
2
|
+
prompt = """
|
|
3
|
+
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
4
|
+
|
|
5
|
+
<agent-activation CRITICAL="TRUE">
|
|
6
|
+
1. LOAD the FULL agent file from @_video_nut/agents/technical/archivist.md
|
|
7
|
+
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
|
8
|
+
3. Execute ALL activation steps exactly as written in the agent file
|
|
9
|
+
4. Follow the agent's persona and menu system precisely
|
|
10
|
+
5. Stay in character throughout the session
|
|
11
|
+
</agent-activation>
|
|
12
|
+
"""
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description = "VideoNut Agent: director - The Director (Spielberg)"
|
|
2
|
+
prompt = """
|
|
3
|
+
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
4
|
+
|
|
5
|
+
<agent-activation CRITICAL="TRUE">
|
|
6
|
+
1. LOAD the FULL agent file from @_video_nut/agents/creative/director.md
|
|
7
|
+
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
|
8
|
+
3. Execute ALL activation steps exactly as written in the agent file
|
|
9
|
+
4. Follow the agent's persona and menu system precisely
|
|
10
|
+
5. Stay in character throughout the session
|
|
11
|
+
</agent-activation>
|
|
12
|
+
"""
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description = "VideoNut Agent: eic - The Editor-in-Chief (Chief)"
|
|
2
|
+
prompt = """
|
|
3
|
+
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
4
|
+
|
|
5
|
+
<agent-activation CRITICAL="TRUE">
|
|
6
|
+
1. LOAD the FULL agent file from @_video_nut/agents/core/eic.md
|
|
7
|
+
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
|
8
|
+
3. Execute ALL activation steps exactly as written in the agent file
|
|
9
|
+
4. Follow the agent's persona and menu system precisely
|
|
10
|
+
5. Stay in character throughout the session
|
|
11
|
+
</agent-activation>
|
|
12
|
+
"""
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description = "VideoNut Agent: investigator - The Investigator (Sherlock)"
|
|
2
|
+
prompt = """
|
|
3
|
+
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
4
|
+
|
|
5
|
+
<agent-activation CRITICAL="TRUE">
|
|
6
|
+
1. LOAD the FULL agent file from @_video_nut/agents/research/investigator.md
|
|
7
|
+
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
|
8
|
+
3. Execute ALL activation steps exactly as written in the agent file
|
|
9
|
+
4. Follow the agent's persona and menu system precisely
|
|
10
|
+
5. Stay in character throughout the session
|
|
11
|
+
</agent-activation>
|
|
12
|
+
"""
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description = "VideoNut Agent: prompt_agent - The Prompt Agent (Catalyst)"
|
|
2
|
+
prompt = """
|
|
3
|
+
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
4
|
+
|
|
5
|
+
<agent-activation CRITICAL="TRUE">
|
|
6
|
+
1. LOAD the FULL agent file from @_video_nut/agents/core/prompt_agent.md
|
|
7
|
+
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
|
8
|
+
3. Execute ALL activation steps exactly as written in the agent file
|
|
9
|
+
4. Follow the agent's persona and menu system precisely
|
|
10
|
+
5. Stay in character throughout the session
|
|
11
|
+
</agent-activation>
|
|
12
|
+
"""
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description = "VideoNut Agent: scavenger - The Scavenger (Hunter)"
|
|
2
|
+
prompt = """
|
|
3
|
+
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
4
|
+
|
|
5
|
+
<agent-activation CRITICAL="TRUE">
|
|
6
|
+
1. LOAD the FULL agent file from @_video_nut/agents/technical/scavenger.md
|
|
7
|
+
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
|
8
|
+
3. Execute ALL activation steps exactly as written in the agent file
|
|
9
|
+
4. Follow the agent's persona and menu system precisely
|
|
10
|
+
5. Stay in character throughout the session
|
|
11
|
+
</agent-activation>
|
|
12
|
+
"""
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description = "VideoNut Agent: scout - Alias for Topic Scout"
|
|
2
|
+
prompt = """
|
|
3
|
+
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
4
|
+
|
|
5
|
+
<agent-activation CRITICAL="TRUE">
|
|
6
|
+
1. LOAD the FULL agent file from @_video_nut/agents/research/topic_scout.md
|
|
7
|
+
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
|
8
|
+
3. Execute ALL activation steps exactly as written in the agent file
|
|
9
|
+
4. Follow the agent's persona and menu system precisely
|
|
10
|
+
5. Stay in character throughout the session
|
|
11
|
+
</agent-activation>
|
|
12
|
+
"""
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description = "VideoNut Agent: scriptwriter - The Scriptwriter (Sorkin)"
|
|
2
|
+
prompt = """
|
|
3
|
+
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
4
|
+
|
|
5
|
+
<agent-activation CRITICAL="TRUE">
|
|
6
|
+
1. LOAD the FULL agent file from @_video_nut/agents/creative/scriptwriter.md
|
|
7
|
+
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
|
8
|
+
3. Execute ALL activation steps exactly as written in the agent file
|
|
9
|
+
4. Follow the agent's persona and menu system precisely
|
|
10
|
+
5. Stay in character throughout the session
|
|
11
|
+
</agent-activation>
|
|
12
|
+
"""
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description = "VideoNut Agent: seo - The SEO Optimizer (Ranker)"
|
|
2
|
+
prompt = """
|
|
3
|
+
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
4
|
+
|
|
5
|
+
<agent-activation CRITICAL="TRUE">
|
|
6
|
+
1. LOAD the FULL agent file from @_video_nut/agents/creative/seo.md
|
|
7
|
+
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
|
8
|
+
3. Execute ALL activation steps exactly as written in the agent file
|
|
9
|
+
4. Follow the agent's persona and menu system precisely
|
|
10
|
+
5. Stay in character throughout the session
|
|
11
|
+
</agent-activation>
|
|
12
|
+
"""
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description = "VideoNut Agent: thumbnail - The Thumbnail Designer (Canvas)"
|
|
2
|
+
prompt = """
|
|
3
|
+
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
4
|
+
|
|
5
|
+
<agent-activation CRITICAL="TRUE">
|
|
6
|
+
1. LOAD the FULL agent file from @_video_nut/agents/creative/thumbnail.md
|
|
7
|
+
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
|
8
|
+
3. Execute ALL activation steps exactly as written in the agent file
|
|
9
|
+
4. Follow the agent's persona and menu system precisely
|
|
10
|
+
5. Stay in character throughout the session
|
|
11
|
+
</agent-activation>
|
|
12
|
+
"""
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description = "VideoNut Agent: topic_scout - The Topic Scout (Scout)"
|
|
2
|
+
prompt = """
|
|
3
|
+
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
4
|
+
|
|
5
|
+
<agent-activation CRITICAL="TRUE">
|
|
6
|
+
1. LOAD the FULL agent file from @_video_nut/agents/research/topic_scout.md
|
|
7
|
+
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
|
8
|
+
3. Execute ALL activation steps exactly as written in the agent file
|
|
9
|
+
4. Follow the agent's persona and menu system precisely
|
|
10
|
+
5. Stay in character throughout the session
|
|
11
|
+
</agent-activation>
|
|
12
|
+
"""
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description = "The Archivist"
|
|
2
|
+
prompt = """
|
|
3
|
+
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
4
|
+
|
|
5
|
+
<agent-activation CRITICAL="TRUE">
|
|
6
|
+
1. LOAD the FULL agent file from @_video_nut/agents/technical/archivist.md
|
|
7
|
+
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
|
8
|
+
3. Execute ALL activation steps exactly as written in the agent file
|
|
9
|
+
4. Follow the agent's persona and menu system precisely
|
|
10
|
+
5. Stay in character throughout the session
|
|
11
|
+
</agent-activation>
|
|
12
|
+
"""
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description = "The Director"
|
|
2
|
+
prompt = """
|
|
3
|
+
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
4
|
+
|
|
5
|
+
<agent-activation CRITICAL="TRUE">
|
|
6
|
+
1. LOAD the FULL agent file from @_video_nut/agents/creative/director.md
|
|
7
|
+
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
|
8
|
+
3. Execute ALL activation steps exactly as written in the agent file
|
|
9
|
+
4. Follow the agent's persona and menu system precisely
|
|
10
|
+
5. Stay in character throughout the session
|
|
11
|
+
</agent-activation>
|
|
12
|
+
"""
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description = "The Editor-in-Chief"
|
|
2
|
+
prompt = """
|
|
3
|
+
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
4
|
+
|
|
5
|
+
<agent-activation CRITICAL="TRUE">
|
|
6
|
+
1. LOAD the FULL agent file from @_video_nut/agents/core/eic.md
|
|
7
|
+
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
|
8
|
+
3. Execute ALL activation steps exactly as written in the agent file
|
|
9
|
+
4. Follow the agent's persona and menu system precisely
|
|
10
|
+
5. Stay in character throughout the session
|
|
11
|
+
</agent-activation>
|
|
12
|
+
"""
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description = "The Investigator"
|
|
2
|
+
prompt = """
|
|
3
|
+
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
4
|
+
|
|
5
|
+
<agent-activation CRITICAL="TRUE">
|
|
6
|
+
1. LOAD the FULL agent file from @_video_nut/agents/research/investigator.md
|
|
7
|
+
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
|
8
|
+
3. Execute ALL activation steps exactly as written in the agent file
|
|
9
|
+
4. Follow the agent's persona and menu system precisely
|
|
10
|
+
5. Stay in character throughout the session
|
|
11
|
+
</agent-activation>
|
|
12
|
+
"""
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description = "VideoNut Agent: prompt_agent - The Prompt Agent (Catalyst)"
|
|
2
|
+
prompt = """
|
|
3
|
+
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
4
|
+
|
|
5
|
+
<agent-activation CRITICAL="TRUE">
|
|
6
|
+
1. LOAD the FULL agent file from @_video_nut/agents/core/prompt_agent.md
|
|
7
|
+
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
|
8
|
+
3. Execute ALL activation steps exactly as written in the agent file
|
|
9
|
+
4. Follow the agent's persona and menu system precisely
|
|
10
|
+
5. Stay in character throughout the session
|
|
11
|
+
</agent-activation>
|
|
12
|
+
"""
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description = "The Scavenger"
|
|
2
|
+
prompt = """
|
|
3
|
+
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
4
|
+
|
|
5
|
+
<agent-activation CRITICAL="TRUE">
|
|
6
|
+
1. LOAD the FULL agent file from @_video_nut/agents/technical/scavenger.md
|
|
7
|
+
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
|
8
|
+
3. Execute ALL activation steps exactly as written in the agent file
|
|
9
|
+
4. Follow the agent's persona and menu system precisely
|
|
10
|
+
5. Stay in character throughout the session
|
|
11
|
+
</agent-activation>
|
|
12
|
+
"""
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description = "Alias for Topic Scout - Find trending topics"
|
|
2
|
+
prompt = """
|
|
3
|
+
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
4
|
+
|
|
5
|
+
<agent-activation CRITICAL="TRUE">
|
|
6
|
+
1. LOAD the FULL agent file from @_video_nut/agents/research/topic_scout.md
|
|
7
|
+
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
|
8
|
+
3. Execute ALL activation steps exactly as written in the agent file
|
|
9
|
+
4. Follow the agent's persona and menu system precisely
|
|
10
|
+
5. Stay in character throughout the session
|
|
11
|
+
</agent-activation>
|
|
12
|
+
"""
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description = "VideoNut Agent: scriptwriter - The Scriptwriter (Sorkin)"
|
|
2
|
+
prompt = """
|
|
3
|
+
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
4
|
+
|
|
5
|
+
<agent-activation CRITICAL="TRUE">
|
|
6
|
+
1. LOAD the FULL agent file from @_video_nut/agents/creative/scriptwriter.md
|
|
7
|
+
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
|
8
|
+
3. Execute ALL activation steps exactly as written in the agent file
|
|
9
|
+
4. Follow the agent's persona and menu system precisely
|
|
10
|
+
5. Stay in character throughout the session
|
|
11
|
+
</agent-activation>
|
|
12
|
+
"""
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description = "The SEO Optimizer"
|
|
2
|
+
prompt = """
|
|
3
|
+
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
4
|
+
|
|
5
|
+
<agent-activation CRITICAL="TRUE">
|
|
6
|
+
1. LOAD the FULL agent file from @_video_nut/agents/creative/seo.md
|
|
7
|
+
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
|
8
|
+
3. Execute ALL activation steps exactly as written in the agent file
|
|
9
|
+
4. Follow the agent's persona and menu system precisely
|
|
10
|
+
5. Stay in character throughout the session
|
|
11
|
+
</agent-activation>
|
|
12
|
+
"""
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description = "The Thumbnail Designer"
|
|
2
|
+
prompt = """
|
|
3
|
+
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
4
|
+
|
|
5
|
+
<agent-activation CRITICAL="TRUE">
|
|
6
|
+
1. LOAD the FULL agent file from @_video_nut/agents/creative/thumbnail.md
|
|
7
|
+
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
|
8
|
+
3. Execute ALL activation steps exactly as written in the agent file
|
|
9
|
+
4. Follow the agent's persona and menu system precisely
|
|
10
|
+
5. Stay in character throughout the session
|
|
11
|
+
</agent-activation>
|
|
12
|
+
"""
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description = "The Topic Scout - Find trending topics and create projects"
|
|
2
|
+
prompt = """
|
|
3
|
+
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
4
|
+
|
|
5
|
+
<agent-activation CRITICAL="TRUE">
|
|
6
|
+
1. LOAD the FULL agent file from @_video_nut/agents/research/topic_scout.md
|
|
7
|
+
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
|
8
|
+
3. Execute ALL activation steps exactly as written in the agent file
|
|
9
|
+
4. Follow the agent's persona and menu system precisely
|
|
10
|
+
5. Stay in character throughout the session
|
|
11
|
+
</agent-activation>
|
|
12
|
+
"""
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description = "VideoNut Agent: archivist - The Archivist (Vault)"
|
|
2
|
+
prompt = """
|
|
3
|
+
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
4
|
+
|
|
5
|
+
<agent-activation CRITICAL="TRUE">
|
|
6
|
+
1. LOAD the FULL agent file from @_video_nut/agents/technical/archivist.md
|
|
7
|
+
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
|
8
|
+
3. Execute ALL activation steps exactly as written in the agent file
|
|
9
|
+
4. Follow the agent's persona and menu system precisely
|
|
10
|
+
5. Stay in character throughout the session
|
|
11
|
+
</agent-activation>
|
|
12
|
+
"""
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description = "VideoNut Agent: director - The Director (Spielberg)"
|
|
2
|
+
prompt = """
|
|
3
|
+
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
4
|
+
|
|
5
|
+
<agent-activation CRITICAL="TRUE">
|
|
6
|
+
1. LOAD the FULL agent file from @_video_nut/agents/creative/director.md
|
|
7
|
+
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
|
8
|
+
3. Execute ALL activation steps exactly as written in the agent file
|
|
9
|
+
4. Follow the agent's persona and menu system precisely
|
|
10
|
+
5. Stay in character throughout the session
|
|
11
|
+
</agent-activation>
|
|
12
|
+
"""
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description = "VideoNut Agent: eic - The Editor-in-Chief (Chief)"
|
|
2
|
+
prompt = """
|
|
3
|
+
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
4
|
+
|
|
5
|
+
<agent-activation CRITICAL="TRUE">
|
|
6
|
+
1. LOAD the FULL agent file from @_video_nut/agents/core/eic.md
|
|
7
|
+
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
|
8
|
+
3. Execute ALL activation steps exactly as written in the agent file
|
|
9
|
+
4. Follow the agent's persona and menu system precisely
|
|
10
|
+
5. Stay in character throughout the session
|
|
11
|
+
</agent-activation>
|
|
12
|
+
"""
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description = "VideoNut Agent: investigator - The Investigator (Sherlock)"
|
|
2
|
+
prompt = """
|
|
3
|
+
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
4
|
+
|
|
5
|
+
<agent-activation CRITICAL="TRUE">
|
|
6
|
+
1. LOAD the FULL agent file from @_video_nut/agents/research/investigator.md
|
|
7
|
+
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
|
8
|
+
3. Execute ALL activation steps exactly as written in the agent file
|
|
9
|
+
4. Follow the agent's persona and menu system precisely
|
|
10
|
+
5. Stay in character throughout the session
|
|
11
|
+
</agent-activation>
|
|
12
|
+
"""
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description = "VideoNut Agent: prompt_agent - The Prompt Agent (Catalyst)"
|
|
2
|
+
prompt = """
|
|
3
|
+
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
4
|
+
|
|
5
|
+
<agent-activation CRITICAL="TRUE">
|
|
6
|
+
1. LOAD the FULL agent file from @_video_nut/agents/core/prompt_agent.md
|
|
7
|
+
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
|
8
|
+
3. Execute ALL activation steps exactly as written in the agent file
|
|
9
|
+
4. Follow the agent's persona and menu system precisely
|
|
10
|
+
5. Stay in character throughout the session
|
|
11
|
+
</agent-activation>
|
|
12
|
+
"""
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description = "VideoNut Agent: scavenger - The Scavenger (Hunter)"
|
|
2
|
+
prompt = """
|
|
3
|
+
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
4
|
+
|
|
5
|
+
<agent-activation CRITICAL="TRUE">
|
|
6
|
+
1. LOAD the FULL agent file from @_video_nut/agents/technical/scavenger.md
|
|
7
|
+
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
|
8
|
+
3. Execute ALL activation steps exactly as written in the agent file
|
|
9
|
+
4. Follow the agent's persona and menu system precisely
|
|
10
|
+
5. Stay in character throughout the session
|
|
11
|
+
</agent-activation>
|
|
12
|
+
"""
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description = "VideoNut Agent: scout - Alias for Topic Scout"
|
|
2
|
+
prompt = """
|
|
3
|
+
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
4
|
+
|
|
5
|
+
<agent-activation CRITICAL="TRUE">
|
|
6
|
+
1. LOAD the FULL agent file from @_video_nut/agents/research/topic_scout.md
|
|
7
|
+
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
|
8
|
+
3. Execute ALL activation steps exactly as written in the agent file
|
|
9
|
+
4. Follow the agent's persona and menu system precisely
|
|
10
|
+
5. Stay in character throughout the session
|
|
11
|
+
</agent-activation>
|
|
12
|
+
"""
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description = "VideoNut Agent: scriptwriter - The Scriptwriter (Sorkin)"
|
|
2
|
+
prompt = """
|
|
3
|
+
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
4
|
+
|
|
5
|
+
<agent-activation CRITICAL="TRUE">
|
|
6
|
+
1. LOAD the FULL agent file from @_video_nut/agents/creative/scriptwriter.md
|
|
7
|
+
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
|
8
|
+
3. Execute ALL activation steps exactly as written in the agent file
|
|
9
|
+
4. Follow the agent's persona and menu system precisely
|
|
10
|
+
5. Stay in character throughout the session
|
|
11
|
+
</agent-activation>
|
|
12
|
+
"""
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description = "VideoNut Agent: seo - The SEO Optimizer (Ranker)"
|
|
2
|
+
prompt = """
|
|
3
|
+
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
4
|
+
|
|
5
|
+
<agent-activation CRITICAL="TRUE">
|
|
6
|
+
1. LOAD the FULL agent file from @_video_nut/agents/creative/seo.md
|
|
7
|
+
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
|
8
|
+
3. Execute ALL activation steps exactly as written in the agent file
|
|
9
|
+
4. Follow the agent's persona and menu system precisely
|
|
10
|
+
5. Stay in character throughout the session
|
|
11
|
+
</agent-activation>
|
|
12
|
+
"""
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description = "VideoNut Agent: thumbnail - The Thumbnail Designer (Canvas)"
|
|
2
|
+
prompt = """
|
|
3
|
+
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
4
|
+
|
|
5
|
+
<agent-activation CRITICAL="TRUE">
|
|
6
|
+
1. LOAD the FULL agent file from @_video_nut/agents/creative/thumbnail.md
|
|
7
|
+
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
|
8
|
+
3. Execute ALL activation steps exactly as written in the agent file
|
|
9
|
+
4. Follow the agent's persona and menu system precisely
|
|
10
|
+
5. Stay in character throughout the session
|
|
11
|
+
</agent-activation>
|
|
12
|
+
"""
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
description = "VideoNut Agent: topic_scout - The Topic Scout (Scout)"
|
|
2
|
+
prompt = """
|
|
3
|
+
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
|
|
4
|
+
|
|
5
|
+
<agent-activation CRITICAL="TRUE">
|
|
6
|
+
1. LOAD the FULL agent file from @_video_nut/agents/research/topic_scout.md
|
|
7
|
+
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
|
|
8
|
+
3. Execute ALL activation steps exactly as written in the agent file
|
|
9
|
+
4. Follow the agent's persona and menu system precisely
|
|
10
|
+
5. Stay in character throughout the session
|
|
11
|
+
</agent-activation>
|
|
12
|
+
"""
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 Vamshi Krishna
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
# 🎬 VideoNut
|
|
2
|
+
|
|
3
|
+
> **AI-Powered YouTube Documentary Production Pipeline**
|
|
4
|
+
|
|
5
|
+
Transform your ideas into professional YouTube documentaries using 10 specialized AI agents that handle research, scripting, visual direction, and asset management.
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<img src="https://img.shields.io/badge/Agents-10-brightgreen" alt="10 Agents">
|
|
9
|
+
<img src="https://img.shields.io/badge/CLI-Gemini%20%7C%20Qwen%20%7C%20Claude-blue" alt="Multi-CLI Support">
|
|
10
|
+
<img src="https://img.shields.io/badge/License-MIT-yellow" alt="MIT License">
|
|
11
|
+
<img src="https://img.shields.io/npm/v/videonut" alt="NPM Version">
|
|
12
|
+
</p>
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## 🚀 What is VideoNut?
|
|
17
|
+
|
|
18
|
+
VideoNut is a **complete video production pipeline** powered by AI agents. Each agent specializes in one part of the documentary creation process:
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
📡 Topic Scout → 🎯 Prompt → 🕵️ Investigator → ✍️ Scriptwriter → 🎬 Director → 🦅 Scavenger → 💾 Archivist → 🧐 EIC
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
**No more context switching.** Run one command, get a complete video plan with:
|
|
25
|
+
- ✅ Researched facts with sources
|
|
26
|
+
- ✅ Professional script (word-count matched to target duration)
|
|
27
|
+
- ✅ Visual directions with timestamps
|
|
28
|
+
- ✅ Downloaded assets ready for editing
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## 📦 Installation
|
|
33
|
+
|
|
34
|
+
### Option 1: NPX (Recommended - No Install)
|
|
35
|
+
```bash
|
|
36
|
+
npx videonut init
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Option 2: NPM Global Install
|
|
40
|
+
```bash
|
|
41
|
+
npm install -g videonut
|
|
42
|
+
videonut init
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Option 3: Clone Repository
|
|
46
|
+
```bash
|
|
47
|
+
git clone https://github.com/vamshikrishna131437/videonut.git
|
|
48
|
+
cd videonut
|
|
49
|
+
npm install
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## 🛠️ Requirements
|
|
55
|
+
|
|
56
|
+
- **Node.js** 16+
|
|
57
|
+
- **One of these AI CLI tools:**
|
|
58
|
+
- [Gemini CLI](https://github.com/google-gemini/gemini-cli) - `npm install -g gemini-cli`
|
|
59
|
+
- [Qwen CLI](https://github.com/QwenLM/qwen-cli)
|
|
60
|
+
- [Claude Code](https://claude.ai/code)
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## 🎯 Quick Start
|
|
65
|
+
|
|
66
|
+
### 1. Start with Topic Scout
|
|
67
|
+
```bash
|
|
68
|
+
# In your terminal with Gemini CLI
|
|
69
|
+
/topic_scout
|
|
70
|
+
# or
|
|
71
|
+
/scout
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### 2. Follow the Agent Pipeline
|
|
75
|
+
| Step | Agent | Command | What It Does |
|
|
76
|
+
|------|-------|---------|--------------|
|
|
77
|
+
| 1 | 📡 Topic Scout | `/topic_scout` | Find trending topics, create project |
|
|
78
|
+
| 2 | 🎯 Prompt | `/prompt` | Generate research prompts |
|
|
79
|
+
| 3 | 🕵️ Investigator | `/investigator` | Deep research with sources |
|
|
80
|
+
| 4 | ✍️ Scriptwriter | `/scriptwriter` | Write the narration script |
|
|
81
|
+
| 5 | 🎬 Director | `/director` | Create visual directions |
|
|
82
|
+
| 6 | 🦅 Scavenger | `/scavenger` | Find and verify asset URLs |
|
|
83
|
+
| 7 | 💾 Archivist | `/archivist` | Download all assets |
|
|
84
|
+
| 8 | 🧐 EIC | `/eic` | Final review and approval |
|
|
85
|
+
| 9 | 🎨 Thumbnail | `/thumbnail` | Generate thumbnail prompts |
|
|
86
|
+
| 10 | 🔍 SEO | `/seo` | Optimize for YouTube search |
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## 🤖 Meet the Agents
|
|
91
|
+
|
|
92
|
+
### Research Team
|
|
93
|
+
| Agent | Persona | Specialty |
|
|
94
|
+
|-------|---------|-----------|
|
|
95
|
+
| 📡 **Scout** | Trend Hunter | Finds viral-worthy topics, checks YouTube competition |
|
|
96
|
+
| 🎯 **Prompt** | Research Architect | Transforms topics into focused research questions |
|
|
97
|
+
| 🕵️ **Sherlock** | Investigative Journalist | Deep research with YouTube video evidence |
|
|
98
|
+
|
|
99
|
+
### Creative Team
|
|
100
|
+
| Agent | Persona | Specialty |
|
|
101
|
+
|-------|---------|-----------|
|
|
102
|
+
| ✍️ **Sorkin** | Narrative Architect | Word-count matched scripts with emotional hooks |
|
|
103
|
+
| 🎬 **Spielberg** | Documentary Filmmaker | Visual directions with source links |
|
|
104
|
+
| 🎨 **Canvas** | Thumbnail Designer | Click-worthy thumbnail AI prompts |
|
|
105
|
+
| 🔍 **Ranker** | SEO Optimizer | YouTube-optimized titles and descriptions |
|
|
106
|
+
|
|
107
|
+
### Technical Team
|
|
108
|
+
| Agent | Persona | Specialty |
|
|
109
|
+
|-------|---------|-----------|
|
|
110
|
+
| 🦅 **Hunter** | Asset Finder | URL verification, timestamp extraction |
|
|
111
|
+
| 💾 **Vault** | Digital Librarian | Downloads clips, screenshots, transcripts |
|
|
112
|
+
|
|
113
|
+
### Quality Control
|
|
114
|
+
| Agent | Persona | Specialty |
|
|
115
|
+
|-------|---------|-----------|
|
|
116
|
+
| 🧐 **Chief** | Editor-in-Chief | 10-phase deep audit, catches every mistake |
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## 📁 Project Structure
|
|
121
|
+
|
|
122
|
+
```
|
|
123
|
+
your-project/
|
|
124
|
+
├── topic_brief.md # Topic Scout output
|
|
125
|
+
├── prompt.md # Research prompts
|
|
126
|
+
├── truth_dossier.md # Investigator findings
|
|
127
|
+
├── voice_script.md # Narration script
|
|
128
|
+
├── narrative_script.md # Full narrative
|
|
129
|
+
├── master_script.md # Script + Visual directions
|
|
130
|
+
├── video_direction.md # Visual-only guide
|
|
131
|
+
├── asset_manifest.md # All assets with URLs
|
|
132
|
+
├── assets/ # Downloaded files
|
|
133
|
+
│ ├── 001_intro.mp4
|
|
134
|
+
│ ├── 002_chart.png
|
|
135
|
+
│ └── ...
|
|
136
|
+
├── correction_log.md # EIC feedback (if any)
|
|
137
|
+
└── review_report.md # Final review
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## 🔧 Configuration
|
|
143
|
+
|
|
144
|
+
Edit `config.yaml` to customize:
|
|
145
|
+
|
|
146
|
+
```yaml
|
|
147
|
+
# Video Production Settings
|
|
148
|
+
target_duration: 30 # Minutes
|
|
149
|
+
video_format: "investigative" # investigative, explainer, documentary
|
|
150
|
+
|
|
151
|
+
# Localization
|
|
152
|
+
audio_language: "English"
|
|
153
|
+
scope: "national" # international, national, regional
|
|
154
|
+
country: "India"
|
|
155
|
+
region: "Telangana"
|
|
156
|
+
|
|
157
|
+
# Focus
|
|
158
|
+
industry_tag: "political" # political, finance, crime, tech, etc.
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## 🌟 Features
|
|
164
|
+
|
|
165
|
+
### ✅ Multi-CLI Support
|
|
166
|
+
Works with Gemini CLI, Qwen CLI, and Claude Code out of the box.
|
|
167
|
+
|
|
168
|
+
### ✅ YouTube Evidence
|
|
169
|
+
Automatically extracts timestamps from YouTube videos using caption analysis.
|
|
170
|
+
|
|
171
|
+
### ✅ Smart Asset Management
|
|
172
|
+
- Downloads only the relevant 30-second clips, not full videos
|
|
173
|
+
- Screenshots articles with highlighted quotes
|
|
174
|
+
- PDF page extraction with keyword search
|
|
175
|
+
|
|
176
|
+
### ✅ Quality Control
|
|
177
|
+
EIC agent performs 10-phase deep audit:
|
|
178
|
+
- URL verification
|
|
179
|
+
- Timestamp validation
|
|
180
|
+
- Cross-reference checks
|
|
181
|
+
- Word count compliance
|
|
182
|
+
|
|
183
|
+
### ✅ Correction Workflow
|
|
184
|
+
If mistakes are found, each agent has a `[CM] Correct Mistakes` option to fix issues and re-run.
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## 🤝 Contributing
|
|
189
|
+
|
|
190
|
+
We welcome contributions! Here's how:
|
|
191
|
+
|
|
192
|
+
1. Fork the repository
|
|
193
|
+
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
|
|
194
|
+
3. Commit your changes (`git commit -m 'Add amazing feature'`)
|
|
195
|
+
4. Push to the branch (`git push origin feature/amazing-feature`)
|
|
196
|
+
5. Open a Pull Request
|
|
197
|
+
|
|
198
|
+
### Areas We Need Help
|
|
199
|
+
- 🌐 Translations (agents in other languages)
|
|
200
|
+
- 🎨 UI/Dashboard for non-CLI users
|
|
201
|
+
- 🔌 Integration with video editing software
|
|
202
|
+
- 📊 Analytics and reporting
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## 📝 License
|
|
207
|
+
|
|
208
|
+
MIT License - see [LICENSE](LICENSE) for details.
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## 👤 Author
|
|
213
|
+
|
|
214
|
+
**Vamshi Krishna**
|
|
215
|
+
- Email: vamshikrishna131437@gmail.com
|
|
216
|
+
- GitHub: [@vamshikrishna131437](https://github.com/vamshikrishna131437)
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## 🙏 Acknowledgments
|
|
221
|
+
|
|
222
|
+
Built for the AI agent community. Special thanks to:
|
|
223
|
+
- Google Gemini CLI team
|
|
224
|
+
- Qwen team
|
|
225
|
+
- Anthropic Claude team
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
<p align="center">
|
|
230
|
+
<b>⭐ Star this repo if you find it useful!</b>
|
|
231
|
+
</p>
|
package/bin/videonut.js
ADDED
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* VideoNut - Complete Installation Script
|
|
5
|
+
*
|
|
6
|
+
* This script installs VideoNut and ALL its requirements:
|
|
7
|
+
* 1. Copies all VideoNut files to current directory
|
|
8
|
+
* 2. Creates Projects folder
|
|
9
|
+
* 3. Installs Python (if needed)
|
|
10
|
+
* 4. Runs pip install -r requirements.txt
|
|
11
|
+
* 5. Downloads ffmpeg and ffprobe
|
|
12
|
+
* 6. Installs chosen CLI (Gemini/Qwen/Claude)
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
const { execSync, spawnSync } = require('child_process');
|
|
16
|
+
const path = require('path');
|
|
17
|
+
const fs = require('fs');
|
|
18
|
+
const https = require('https');
|
|
19
|
+
const readline = require('readline');
|
|
20
|
+
|
|
21
|
+
// Colors for console
|
|
22
|
+
const colors = {
|
|
23
|
+
reset: '\x1b[0m',
|
|
24
|
+
bright: '\x1b[1m',
|
|
25
|
+
green: '\x1b[32m',
|
|
26
|
+
yellow: '\x1b[33m',
|
|
27
|
+
blue: '\x1b[34m',
|
|
28
|
+
red: '\x1b[31m',
|
|
29
|
+
cyan: '\x1b[36m'
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
function log(msg, color = 'reset') {
|
|
33
|
+
console.log(`${colors[color]}${msg}${colors.reset}`);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function header(msg) {
|
|
37
|
+
console.log('\n' + '═'.repeat(60));
|
|
38
|
+
log(`🎬 ${msg}`, 'bright');
|
|
39
|
+
console.log('═'.repeat(60) + '\n');
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function success(msg) { log(`✅ ${msg}`, 'green'); }
|
|
43
|
+
function warning(msg) { log(`⚠️ ${msg}`, 'yellow'); }
|
|
44
|
+
function error(msg) { log(`❌ ${msg}`, 'red'); }
|
|
45
|
+
function info(msg) { log(`ℹ️ ${msg}`, 'cyan'); }
|
|
46
|
+
|
|
47
|
+
// Check if command exists
|
|
48
|
+
function commandExists(cmd) {
|
|
49
|
+
try {
|
|
50
|
+
const isWindows = process.platform === 'win32';
|
|
51
|
+
const checkCmd = isWindows ? `where ${cmd}` : `which ${cmd}`;
|
|
52
|
+
execSync(checkCmd, { stdio: 'pipe' });
|
|
53
|
+
return true;
|
|
54
|
+
} catch {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// Get user input
|
|
60
|
+
function ask(question) {
|
|
61
|
+
const rl = readline.createInterface({
|
|
62
|
+
input: process.stdin,
|
|
63
|
+
output: process.stdout
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
return new Promise(resolve => {
|
|
67
|
+
rl.question(question, answer => {
|
|
68
|
+
rl.close();
|
|
69
|
+
resolve(answer.trim());
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// Copy directory recursively
|
|
75
|
+
function copyDir(src, dest) {
|
|
76
|
+
fs.mkdirSync(dest, { recursive: true });
|
|
77
|
+
const entries = fs.readdirSync(src, { withFileTypes: true });
|
|
78
|
+
|
|
79
|
+
for (const entry of entries) {
|
|
80
|
+
const srcPath = path.join(src, entry.name);
|
|
81
|
+
const destPath = path.join(dest, entry.name);
|
|
82
|
+
|
|
83
|
+
if (entry.isDirectory()) {
|
|
84
|
+
// Skip certain directories
|
|
85
|
+
if (['node_modules', '.git', 'Projects', 'output', 'assets'].includes(entry.name)) {
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
copyDir(srcPath, destPath);
|
|
89
|
+
} else {
|
|
90
|
+
fs.copyFileSync(srcPath, destPath);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// Download file
|
|
96
|
+
function downloadFile(url, dest) {
|
|
97
|
+
return new Promise((resolve, reject) => {
|
|
98
|
+
const file = fs.createWriteStream(dest);
|
|
99
|
+
https.get(url, response => {
|
|
100
|
+
if (response.statusCode === 302 || response.statusCode === 301) {
|
|
101
|
+
// Follow redirect
|
|
102
|
+
https.get(response.headers.location, res => {
|
|
103
|
+
res.pipe(file);
|
|
104
|
+
file.on('finish', () => {
|
|
105
|
+
file.close();
|
|
106
|
+
resolve();
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
} else {
|
|
110
|
+
response.pipe(file);
|
|
111
|
+
file.on('finish', () => {
|
|
112
|
+
file.close();
|
|
113
|
+
resolve();
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
}).on('error', err => {
|
|
117
|
+
fs.unlink(dest, () => { });
|
|
118
|
+
reject(err);
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
async function main() {
|
|
124
|
+
const args = process.argv.slice(2);
|
|
125
|
+
const command = args[0];
|
|
126
|
+
|
|
127
|
+
header('VideoNut - AI-Powered Documentary Pipeline');
|
|
128
|
+
|
|
129
|
+
if (command === 'init') {
|
|
130
|
+
await runInit();
|
|
131
|
+
} else {
|
|
132
|
+
showHelp();
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
async function runInit() {
|
|
137
|
+
const targetDir = process.cwd();
|
|
138
|
+
|
|
139
|
+
info(`Installing VideoNut in: ${targetDir}\n`);
|
|
140
|
+
|
|
141
|
+
// Step 1: Copy VideoNut files
|
|
142
|
+
header('Step 1: Copying VideoNut Files');
|
|
143
|
+
|
|
144
|
+
const sourceDir = path.join(__dirname, '..');
|
|
145
|
+
const folders = ['_video_nut', '.gemini', '.qwen', '.claude', '.antigravity'];
|
|
146
|
+
|
|
147
|
+
for (const folder of folders) {
|
|
148
|
+
const src = path.join(sourceDir, folder);
|
|
149
|
+
const dest = path.join(targetDir, folder);
|
|
150
|
+
|
|
151
|
+
if (fs.existsSync(src)) {
|
|
152
|
+
copyDir(src, dest);
|
|
153
|
+
success(`Copied ${folder}/`);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
// Create Projects folder
|
|
158
|
+
const projectsDir = path.join(targetDir, 'Projects');
|
|
159
|
+
fs.mkdirSync(projectsDir, { recursive: true });
|
|
160
|
+
success('Created Projects/ folder');
|
|
161
|
+
|
|
162
|
+
// Step 2: Check Python
|
|
163
|
+
header('Step 2: Checking Python');
|
|
164
|
+
|
|
165
|
+
const hasPython = commandExists('python') || commandExists('python3');
|
|
166
|
+
|
|
167
|
+
if (hasPython) {
|
|
168
|
+
success('Python is installed');
|
|
169
|
+
|
|
170
|
+
// Install requirements
|
|
171
|
+
info('Installing Python requirements...');
|
|
172
|
+
const reqPath = path.join(targetDir, '_video_nut', 'requirements.txt');
|
|
173
|
+
|
|
174
|
+
if (fs.existsSync(reqPath)) {
|
|
175
|
+
try {
|
|
176
|
+
const pythonCmd = commandExists('python3') ? 'python3' : 'python';
|
|
177
|
+
execSync(`${pythonCmd} -m pip install -r "${reqPath}"`, { stdio: 'inherit' });
|
|
178
|
+
success('Python requirements installed');
|
|
179
|
+
} catch (e) {
|
|
180
|
+
warning('Could not install Python requirements automatically');
|
|
181
|
+
info(`Please run: pip install -r ${reqPath}`);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
} else {
|
|
185
|
+
warning('Python not found!');
|
|
186
|
+
console.log('\nPlease install Python manually:');
|
|
187
|
+
console.log(' Windows: https://www.python.org/downloads/');
|
|
188
|
+
console.log(' Mac: brew install python3');
|
|
189
|
+
console.log(' Linux: sudo apt install python3 python3-pip');
|
|
190
|
+
console.log('\nAfter installing Python, run:');
|
|
191
|
+
console.log(` pip install -r ${path.join(targetDir, '_video_nut', 'requirements.txt')}`);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
// Step 3: Check FFmpeg
|
|
195
|
+
header('Step 3: Checking FFmpeg');
|
|
196
|
+
|
|
197
|
+
const hasFFmpeg = commandExists('ffmpeg');
|
|
198
|
+
const hasFFprobe = commandExists('ffprobe');
|
|
199
|
+
|
|
200
|
+
if (hasFFmpeg && hasFFprobe) {
|
|
201
|
+
success('FFmpeg and FFprobe are installed');
|
|
202
|
+
} else {
|
|
203
|
+
warning('FFmpeg/FFprobe not found!');
|
|
204
|
+
console.log('\nPlease install FFmpeg:');
|
|
205
|
+
console.log(' Windows: https://www.gyan.dev/ffmpeg/builds/');
|
|
206
|
+
console.log(' Download ffmpeg-release-essentials.zip');
|
|
207
|
+
console.log(' Extract and add bin/ folder to PATH');
|
|
208
|
+
console.log(' Mac: brew install ffmpeg');
|
|
209
|
+
console.log(' Linux: sudo apt install ffmpeg');
|
|
210
|
+
|
|
211
|
+
// Create tools/bin folder for manual installation
|
|
212
|
+
const binDir = path.join(targetDir, '_video_nut', 'tools', 'bin');
|
|
213
|
+
fs.mkdirSync(binDir, { recursive: true });
|
|
214
|
+
info(`Or place ffmpeg.exe and ffprobe.exe in: ${binDir}`);
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
// Step 4: Check CLI tools
|
|
218
|
+
header('Step 4: Checking AI CLI Tools');
|
|
219
|
+
|
|
220
|
+
const hasGemini = commandExists('gemini');
|
|
221
|
+
const hasQwen = commandExists('qwen');
|
|
222
|
+
const hasClaude = commandExists('claude');
|
|
223
|
+
|
|
224
|
+
console.log('Detected CLIs:');
|
|
225
|
+
console.log(` Gemini CLI: ${hasGemini ? '✅ Installed' : '❌ Not found'}`);
|
|
226
|
+
console.log(` Qwen CLI: ${hasQwen ? '✅ Installed' : '❌ Not found'}`);
|
|
227
|
+
console.log(` Claude: ${hasClaude ? '✅ Installed' : '❌ Not found'}`);
|
|
228
|
+
|
|
229
|
+
if (!hasGemini && !hasQwen && !hasClaude) {
|
|
230
|
+
warning('\nNo AI CLI found! You need at least one.');
|
|
231
|
+
console.log('\nInstall one of these:');
|
|
232
|
+
console.log(' Gemini CLI: npm install -g @anthropic-ai/claude-cli');
|
|
233
|
+
console.log(' (Follow official documentation for each CLI)');
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
// Final summary
|
|
237
|
+
header('Installation Complete!');
|
|
238
|
+
|
|
239
|
+
console.log('📁 Folder Structure:');
|
|
240
|
+
console.log(` ${targetDir}/`);
|
|
241
|
+
console.log(' ├── _video_nut/ (agents & tools)');
|
|
242
|
+
console.log(' ├── .gemini/ (Gemini CLI commands)');
|
|
243
|
+
console.log(' ├── .qwen/ (Qwen CLI commands)');
|
|
244
|
+
console.log(' ├── .claude/ (Claude CLI commands)');
|
|
245
|
+
console.log(' └── Projects/ (your video projects)');
|
|
246
|
+
|
|
247
|
+
console.log('\n🚀 Quick Start:');
|
|
248
|
+
console.log(' 1. Open your AI CLI (e.g., gemini)');
|
|
249
|
+
console.log(' 2. Run: /topic_scout');
|
|
250
|
+
console.log(' 3. Follow the agent pipeline!');
|
|
251
|
+
|
|
252
|
+
console.log('\n📖 Documentation:');
|
|
253
|
+
console.log(' https://github.com/vamshikrishna131437/videonut');
|
|
254
|
+
|
|
255
|
+
console.log('\n' + '═'.repeat(60));
|
|
256
|
+
log('🎬 Happy Documentary Making!', 'bright');
|
|
257
|
+
console.log('═'.repeat(60) + '\n');
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
function showHelp() {
|
|
261
|
+
console.log('Usage: npx videonut <command>\n');
|
|
262
|
+
console.log('Commands:');
|
|
263
|
+
console.log(' init Install VideoNut in current directory');
|
|
264
|
+
console.log('');
|
|
265
|
+
console.log('This will install:');
|
|
266
|
+
console.log(' • VideoNut agents and tools');
|
|
267
|
+
console.log(' • CLI command files (.gemini, .qwen, .claude)');
|
|
268
|
+
console.log(' • Python requirements');
|
|
269
|
+
console.log(' • FFmpeg check');
|
|
270
|
+
console.log('');
|
|
271
|
+
console.log('Example:');
|
|
272
|
+
console.log(' mkdir my-youtube-project');
|
|
273
|
+
console.log(' cd my-youtube-project');
|
|
274
|
+
console.log(' npx videonut init');
|
|
275
|
+
console.log('');
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
main().catch(console.error);
|
package/package.json
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "videonut",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "AI-powered YouTube documentary production pipeline with 10 specialized agents for research, scripting, and asset management",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"youtube",
|
|
7
|
+
"documentary",
|
|
8
|
+
"ai-agents",
|
|
9
|
+
"video-production",
|
|
10
|
+
"gemini-cli",
|
|
11
|
+
"qwen",
|
|
12
|
+
"claude",
|
|
13
|
+
"content-creation",
|
|
14
|
+
"scriptwriting",
|
|
15
|
+
"research",
|
|
16
|
+
"automation"
|
|
17
|
+
],
|
|
18
|
+
"homepage": "https://github.com/konda-vamshi-krishna/videonut",
|
|
19
|
+
"bugs": {
|
|
20
|
+
"url": "https://github.com/konda-vamshi-krishna/videonut/issues"
|
|
21
|
+
},
|
|
22
|
+
"license": "MIT",
|
|
23
|
+
"author": {
|
|
24
|
+
"name": "Vamshi Krishna",
|
|
25
|
+
"email": "vamshikrishna131437@gmail.com"
|
|
26
|
+
},
|
|
27
|
+
"repository": {
|
|
28
|
+
"type": "git",
|
|
29
|
+
"url": "git+https://github.com/konda-vamshi-krishna/videonut.git"
|
|
30
|
+
},
|
|
31
|
+
"bin": {
|
|
32
|
+
"videonut": "./bin/videonut.js"
|
|
33
|
+
},
|
|
34
|
+
"files": [
|
|
35
|
+
"_video_nut/",
|
|
36
|
+
".gemini/",
|
|
37
|
+
".qwen/",
|
|
38
|
+
".claude/",
|
|
39
|
+
".antigravity/",
|
|
40
|
+
"bin/",
|
|
41
|
+
"README.md",
|
|
42
|
+
"LICENSE"
|
|
43
|
+
],
|
|
44
|
+
"engines": {
|
|
45
|
+
"node": ">=16.0.0"
|
|
46
|
+
}
|
|
47
|
+
}
|