seshat-scribe 0.5.1 → 0.7.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 +124 -125
- package/dist/commands/generate.d.ts.map +1 -1
- package/dist/commands/generate.js +10 -4
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +164 -56
- package/dist/commands/init.js.map +1 -1
- package/dist/config.d.ts +99 -18
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +20 -9
- package/dist/config.js.map +1 -1
- package/dist/core/analyzer.d.ts.map +1 -1
- package/dist/core/analyzer.js +10 -2
- package/dist/core/analyzer.js.map +1 -1
- package/dist/core/artist.d.ts.map +1 -1
- package/dist/core/artist.js +3 -0
- package/dist/core/artist.js.map +1 -1
- package/dist/lib/detection.d.ts +13 -0
- package/dist/lib/detection.d.ts.map +1 -0
- package/dist/lib/detection.js +158 -0
- package/dist/lib/detection.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,210 +1,209 @@
|
|
|
1
|
-
# Seshat
|
|
1
|
+
# Seshat
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
AI-powered automatic content generation for blogs and headless CMS platforms. Seshat analyzes your existing content, generates new blog posts using Google Gemini, and publishes. Automatic generation and publication via Github Actions run on a schedule. Currently support local MDX files and Sanity CMS.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Features
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
- **AI-Powered Planning**: Analyzes existing content to generate unique, non-duplicate topics
|
|
8
|
+
- **BYOK** - Bring Your Own Key, it will use your Gemini key to generate posts
|
|
9
|
+
- **Flexible Output**: Commit local MDX files or publish to Sanity CMS automatically
|
|
10
|
+
- **Smart Generation**: Creates complete articles with frontmatter and hero images
|
|
11
|
+
- **Framework Support**: Optional presets for Remix, Next.js, and Astro (or custom configuration)
|
|
12
|
+
- **Flexible Configuration**: Customizable frontmatter, file naming, and content generation options
|
|
13
|
+
- **GitHub Actions Integration**: Automate content creation on a schedule
|
|
14
|
+
- **Type-Safe**: Built with TypeScript and Zod for runtime validation
|
|
8
15
|
|
|
9
|
-
|
|
10
|
-
- ✍️ **Automated Writing**: Generates complete, high-quality MDX blog posts with proper frontmatter
|
|
11
|
-
- 🎨 **Image Generation**: Creates hero images for your posts (with placeholder support)
|
|
12
|
-
- 🔒 **Type-Safe**: Built with TypeScript and Zod for strict validation
|
|
13
|
-
- 🎯 **Framework Agnostic**: Supports Remix, Next.js, and Astro
|
|
14
|
-
- 🤝 **GitHub Actions Ready**: Automate content creation with scheduled workflows
|
|
15
|
-
- 🎨 **Beautiful CLI**: Gold and cyan themed output with progress indicators
|
|
16
|
-
|
|
17
|
-
## 📦 Installation
|
|
16
|
+
## Installation
|
|
18
17
|
|
|
19
18
|
```bash
|
|
20
19
|
npm install -g seshat-scribe
|
|
21
20
|
```
|
|
22
21
|
|
|
23
|
-
Or use directly
|
|
22
|
+
Or use directly:
|
|
24
23
|
|
|
25
24
|
```bash
|
|
26
25
|
npx seshat-scribe init
|
|
27
26
|
```
|
|
28
27
|
|
|
29
|
-
##
|
|
28
|
+
## Quick Start
|
|
30
29
|
|
|
31
|
-
### 1. Initialize
|
|
30
|
+
### 1. Initialize
|
|
32
31
|
|
|
33
32
|
```bash
|
|
34
33
|
cd your-blog-project
|
|
35
34
|
seshat init
|
|
36
35
|
```
|
|
37
36
|
|
|
38
|
-
|
|
39
|
-
-
|
|
40
|
-
-
|
|
41
|
-
|
|
42
|
-
|
|
37
|
+
The interactive wizard will guide you through setup:
|
|
38
|
+
- Choose between quick setup (recommended defaults) or custom configuration
|
|
39
|
+
- Select output mode: local files or Sanity CMS
|
|
40
|
+
- Select framework preset (Remix, Next.js, Astro) or custom configuration
|
|
41
|
+
- Auto-detect existing blog structure if available
|
|
43
42
|
|
|
44
|
-
### 2. Configure
|
|
43
|
+
### 2. Configure API Keys
|
|
45
44
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
```json
|
|
49
|
-
{
|
|
50
|
-
"contentDir": "app/routes/blog",
|
|
51
|
-
"assetsDir": "public/images/generated",
|
|
52
|
-
"publicAssetPath": "/images/generated",
|
|
53
|
-
"topic": "Software Engineering and Technology",
|
|
54
|
-
"tone": "Professional yet witty",
|
|
55
|
-
"framework": "remix"
|
|
56
|
-
}
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
### 3. Set Up Your API Key
|
|
60
|
-
|
|
61
|
-
Get a Google Gemini API key from [Google AI Studio](https://aistudio.google.com/app/apikey) and add it to your environment:
|
|
45
|
+
Get a [Google Gemini API key](https://aistudio.google.com/app/apikey) and add to your environment:
|
|
62
46
|
|
|
63
47
|
```bash
|
|
64
48
|
export GEMINI_API_KEY="your_api_key_here"
|
|
65
49
|
```
|
|
66
50
|
|
|
67
|
-
|
|
51
|
+
For Sanity CMS, also set:
|
|
68
52
|
|
|
69
|
-
```
|
|
70
|
-
|
|
53
|
+
```bash
|
|
54
|
+
export SANITY_WRITE_TOKEN="your_sanity_token_here"
|
|
71
55
|
```
|
|
72
56
|
|
|
73
|
-
###
|
|
57
|
+
### 3. Generate Content
|
|
74
58
|
|
|
75
59
|
```bash
|
|
76
60
|
seshat write
|
|
77
61
|
```
|
|
78
62
|
|
|
79
|
-
|
|
63
|
+
Preview without saving:
|
|
80
64
|
|
|
81
65
|
```bash
|
|
82
66
|
seshat write --dry-run
|
|
83
67
|
```
|
|
84
68
|
|
|
85
|
-
##
|
|
69
|
+
## Configuration
|
|
86
70
|
|
|
87
|
-
Seshat
|
|
71
|
+
Seshat uses `seshat.config.json` for configuration. The wizard creates this automatically, but you can also edit it manually.
|
|
88
72
|
|
|
89
|
-
###
|
|
73
|
+
### Core Settings
|
|
90
74
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
### Advanced Configuration
|
|
75
|
+
```json
|
|
76
|
+
{
|
|
77
|
+
"topic": "Software Engineering and Technology",
|
|
78
|
+
"tone": "Professional yet approachable",
|
|
79
|
+
"framework": "remix",
|
|
80
|
+
"outputMode": "local"
|
|
81
|
+
}
|
|
82
|
+
```
|
|
101
83
|
|
|
102
|
-
|
|
84
|
+
- `topic`: Global topic constraint for content generation
|
|
85
|
+
- `tone`: Writing style and voice
|
|
86
|
+
- `framework`: Optional preset - one of `remix`, `next`, `astro`, or `custom` for manual configuration. Framework presets configure frontmatter fields automatically, but are not required
|
|
87
|
+
- `outputMode`: `local` or `sanity`
|
|
103
88
|
|
|
104
|
-
|
|
105
|
-
- **Frontmatter**: Custom field names, date formats, additional metadata
|
|
106
|
-
- **Content Generation**: Word count targets, code examples, SEO optimization, custom instructions
|
|
89
|
+
### Local File Output
|
|
107
90
|
|
|
108
|
-
|
|
91
|
+
Required when `outputMode` is `local`:
|
|
109
92
|
|
|
110
|
-
|
|
93
|
+
```json
|
|
94
|
+
{
|
|
95
|
+
"contentDir": "app/routes/blog",
|
|
96
|
+
"assetsDir": "public/images/generated",
|
|
97
|
+
"publicAssetPath": "/images/generated"
|
|
98
|
+
}
|
|
99
|
+
```
|
|
111
100
|
|
|
112
|
-
|
|
101
|
+
### Sanity CMS Output
|
|
113
102
|
|
|
114
|
-
|
|
103
|
+
Required when `outputMode` is `sanity`:
|
|
115
104
|
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
|
|
105
|
+
```json
|
|
106
|
+
{
|
|
107
|
+
"sanity": {
|
|
108
|
+
"projectId": "your-project-id",
|
|
109
|
+
"dataset": "production",
|
|
110
|
+
"apiVersion": "2024-01-01",
|
|
111
|
+
"documentType": "post"
|
|
112
|
+
}
|
|
113
|
+
}
|
|
119
114
|
```
|
|
120
115
|
|
|
121
|
-
###
|
|
116
|
+
### Advanced Options
|
|
122
117
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
118
|
+
**File Structure**
|
|
119
|
+
- `fileExtension`: `mdx` or `md`
|
|
120
|
+
- `imageFormat`: `png`, `jpg`, or `svg`
|
|
121
|
+
- `fileNameTemplate`: e.g., `{{slug}}` or `{{date}}-{{slug}}`
|
|
122
|
+
- `nestedDirectories`: Use date-based nested directories
|
|
128
123
|
|
|
129
|
-
|
|
124
|
+
**Frontmatter Customization**
|
|
125
|
+
- `frontmatter.dateField`: Field name for date (e.g., `date`, `pubDate`)
|
|
126
|
+
- `frontmatter.dateFormat`: `iso`, `date-only`, or custom format
|
|
127
|
+
- `frontmatter.imageField`: Field name for image
|
|
128
|
+
- `frontmatter.additionalFields`: Custom metadata as key-value pairs
|
|
130
129
|
|
|
131
|
-
|
|
130
|
+
**Content Generation**
|
|
131
|
+
- `generation.targetWordCount`: Target word count (optional)
|
|
132
|
+
- `generation.includeCodeExamples`: Emphasize code examples
|
|
133
|
+
- `generation.seoOptimized`: Generate SEO-optimized content
|
|
134
|
+
- `generation.customInstructions`: Additional instructions for AI
|
|
132
135
|
|
|
133
|
-
```yaml
|
|
134
|
-
on:
|
|
135
|
-
schedule:
|
|
136
|
-
- cron: '0 9 * * 1' # Every Monday at 9 AM
|
|
137
|
-
```
|
|
138
136
|
|
|
139
|
-
##
|
|
137
|
+
## GitHub Actions Automation
|
|
140
138
|
|
|
141
|
-
|
|
139
|
+
Automate content generation on a schedule:
|
|
142
140
|
|
|
143
|
-
|
|
141
|
+
### Setup
|
|
144
142
|
|
|
145
143
|
```bash
|
|
146
|
-
seshat
|
|
144
|
+
seshat setup-workflow
|
|
147
145
|
```
|
|
148
146
|
|
|
149
|
-
|
|
147
|
+
This creates `.github/workflows/seshat.yml` based on your configuration.
|
|
150
148
|
|
|
151
|
-
|
|
149
|
+
### Configure Secrets
|
|
152
150
|
|
|
153
|
-
|
|
154
|
-
seshat write [options]
|
|
155
|
-
```
|
|
151
|
+
Add these to your repository secrets (Settings → Secrets and Variables → Actions):
|
|
156
152
|
|
|
157
|
-
|
|
158
|
-
-
|
|
153
|
+
- `GEMINI_API_KEY`: Your Google Gemini API key
|
|
154
|
+
- `SANITY_WRITE_TOKEN`: Your Sanity write token (if using Sanity CMS)
|
|
159
155
|
|
|
160
|
-
|
|
156
|
+
### Customize Schedule
|
|
161
157
|
|
|
162
|
-
|
|
163
|
-
- **Language**: TypeScript
|
|
164
|
-
- **AI Engine**: @google/generative-ai (Gemini 1.5 Pro)
|
|
165
|
-
- **CLI Framework**: commander + chalk
|
|
166
|
-
- **File Parsing**: gray-matter + zod
|
|
167
|
-
- **Progress UI**: ora
|
|
158
|
+
This will run the Github action workflow to generate and publish posts automatically according to the defined schedule.
|
|
168
159
|
|
|
169
|
-
|
|
160
|
+
Edit the `schedule` field in `seshat.config.json`:
|
|
170
161
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
162
|
+
```json
|
|
163
|
+
{
|
|
164
|
+
"schedule": "0 9 * * 1"
|
|
165
|
+
}
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
Then run `seshat setup-workflow` again to update the workflow file.
|
|
169
|
+
|
|
170
|
+
## CLI Commands
|
|
176
171
|
|
|
177
|
-
|
|
172
|
+
### `seshat init`
|
|
173
|
+
|
|
174
|
+
Initialize configuration with interactive wizard:
|
|
178
175
|
|
|
179
|
-
|
|
176
|
+
```bash
|
|
177
|
+
seshat init
|
|
178
|
+
```
|
|
180
179
|
|
|
181
|
-
|
|
182
|
-
- 𓇋𓏏 Egyptian hieroglyphic symbols
|
|
183
|
-
- Sacred completion message: "The scroll is written. The archives are updated."
|
|
180
|
+
### `seshat write`
|
|
184
181
|
|
|
185
|
-
|
|
182
|
+
Generate a new blog post:
|
|
186
183
|
|
|
187
184
|
```bash
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
185
|
+
seshat write
|
|
186
|
+
seshat write --dry-run # Preview without saving
|
|
187
|
+
```
|
|
191
188
|
|
|
192
|
-
|
|
193
|
-
npm install
|
|
189
|
+
### `seshat setup-workflow`
|
|
194
190
|
|
|
195
|
-
|
|
196
|
-
npm run build
|
|
191
|
+
Create or update GitHub Actions workflow:
|
|
197
192
|
|
|
198
|
-
|
|
199
|
-
|
|
193
|
+
```bash
|
|
194
|
+
seshat setup-workflow
|
|
200
195
|
```
|
|
201
196
|
|
|
202
|
-
##
|
|
197
|
+
## How It Works
|
|
203
198
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
199
|
+
1. **Analysis**: Scans existing content (local MDX files or Sanity CMS) to understand what you've written
|
|
200
|
+
2. **Planning**: Uses Google Gemini to propose a new, non-duplicate topic
|
|
201
|
+
3. **Writing**: Generates complete article with frontmatter (or Portable Text for Sanity)
|
|
202
|
+
4. **Illustration**: Creates a hero image using Gemini's image generation
|
|
203
|
+
5. **Publishing**: Saves to local files, uploads to Sanity CMS, or both
|
|
207
204
|
|
|
208
|
-
|
|
205
|
+
## Requirements
|
|
209
206
|
|
|
210
|
-
|
|
207
|
+
- Node.js v20+
|
|
208
|
+
- Google Gemini API key ([Get one here](https://aistudio.google.com/app/apikey))
|
|
209
|
+
- Sanity write token (if using Sanity CMS)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuM3E"}
|
|
@@ -73,10 +73,10 @@ export async function generate(options = {}) {
|
|
|
73
73
|
let mdxContent;
|
|
74
74
|
let portableTextBody;
|
|
75
75
|
try {
|
|
76
|
-
if (outputMode === 'local'
|
|
76
|
+
if (outputMode === 'local') {
|
|
77
77
|
mdxContent = await writeBlogPost(config, plan, postDate);
|
|
78
78
|
}
|
|
79
|
-
if (outputMode === 'sanity'
|
|
79
|
+
if (outputMode === 'sanity') {
|
|
80
80
|
portableTextBody = await writePortableTextContent(config, plan);
|
|
81
81
|
}
|
|
82
82
|
writeSpinner.succeed('Content written');
|
|
@@ -124,7 +124,7 @@ export async function generate(options = {}) {
|
|
|
124
124
|
try {
|
|
125
125
|
const imageExtension = config.imageFormat === 'jpg' ? 'jpg' : (config.imageFormat === 'svg' ? 'svg' : 'png');
|
|
126
126
|
// Upload to Sanity if configured
|
|
127
|
-
if (
|
|
127
|
+
if (outputMode === 'sanity' && portableTextBody) {
|
|
128
128
|
if (options.dryRun) {
|
|
129
129
|
saveSpinner.info('Dry run: skipping Sanity upload');
|
|
130
130
|
}
|
|
@@ -144,12 +144,15 @@ export async function generate(options = {}) {
|
|
|
144
144
|
}
|
|
145
145
|
}
|
|
146
146
|
// Save to local files if configured
|
|
147
|
-
if (
|
|
147
|
+
if (outputMode === 'local' && mdxContent) {
|
|
148
148
|
// Build file name from template
|
|
149
149
|
const fileExtension = config.fileExtension || 'mdx';
|
|
150
150
|
const fileNameTemplate = config.fileNameTemplate || '{{slug}}';
|
|
151
151
|
const fileName = buildFileName(fileNameTemplate, plan.slug, postDate, fileExtension);
|
|
152
152
|
// Replace the placeholder image path with the actual path
|
|
153
|
+
if (!config.publicAssetPath) {
|
|
154
|
+
throw new Error('publicAssetPath is required for local output mode');
|
|
155
|
+
}
|
|
153
156
|
const publicImagePath = `${config.publicAssetPath}/${plan.slug}.${imageExtension}`;
|
|
154
157
|
mdxContent = mdxContent.replace(/PLACEHOLDER_IMAGE/g, publicImagePath);
|
|
155
158
|
if (options.dryRun) {
|
|
@@ -161,6 +164,9 @@ export async function generate(options = {}) {
|
|
|
161
164
|
}
|
|
162
165
|
else {
|
|
163
166
|
// Determine content directory (with optional nested structure)
|
|
167
|
+
if (!config.contentDir) {
|
|
168
|
+
throw new Error('contentDir is required for local output mode');
|
|
169
|
+
}
|
|
164
170
|
let contentPath = path.resolve(process.cwd(), config.contentDir);
|
|
165
171
|
if (config.nestedDirectories) {
|
|
166
172
|
contentPath = buildNestedPath(postDate, contentPath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAOA,UAAU,WAAW;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,wBAAsB,IAAI,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+dnE"}
|