seshat-scribe 0.9.2 → 3.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.
Files changed (52) hide show
  1. package/README.md +47 -58
  2. package/dist/commands/check-due.d.ts +15 -0
  3. package/dist/commands/check-due.d.ts.map +1 -0
  4. package/dist/commands/check-due.js +53 -0
  5. package/dist/commands/check-due.js.map +1 -0
  6. package/dist/commands/generate.d.ts +4 -1
  7. package/dist/commands/generate.d.ts.map +1 -1
  8. package/dist/commands/generate.js +120 -97
  9. package/dist/commands/generate.js.map +1 -1
  10. package/dist/commands/init.d.ts.map +1 -1
  11. package/dist/commands/init.js +73 -338
  12. package/dist/commands/init.js.map +1 -1
  13. package/dist/config.d.ts +21 -179
  14. package/dist/config.d.ts.map +1 -1
  15. package/dist/config.js +43 -112
  16. package/dist/config.js.map +1 -1
  17. package/dist/core/analyzer.d.ts +1 -1
  18. package/dist/core/analyzer.d.ts.map +1 -1
  19. package/dist/core/analyzer.js +2 -115
  20. package/dist/core/analyzer.js.map +1 -1
  21. package/dist/core/artist.d.ts +1 -2
  22. package/dist/core/artist.d.ts.map +1 -1
  23. package/dist/core/artist.js +2 -5
  24. package/dist/core/artist.js.map +1 -1
  25. package/dist/core/planner.d.ts +2 -2
  26. package/dist/core/sanity.d.ts +36 -1
  27. package/dist/core/sanity.d.ts.map +1 -1
  28. package/dist/core/sanity.js +78 -2
  29. package/dist/core/sanity.js.map +1 -1
  30. package/dist/core/scheduler.d.ts +45 -0
  31. package/dist/core/scheduler.d.ts.map +1 -0
  32. package/dist/core/scheduler.js +136 -0
  33. package/dist/core/scheduler.js.map +1 -0
  34. package/dist/index.js +26 -3
  35. package/dist/index.js.map +1 -1
  36. package/dist/types.d.ts +52 -0
  37. package/dist/types.d.ts.map +1 -0
  38. package/dist/types.js +5 -0
  39. package/dist/types.js.map +1 -0
  40. package/package.json +7 -8
  41. package/dist/core/writer.d.ts +0 -7
  42. package/dist/core/writer.d.ts.map +0 -1
  43. package/dist/core/writer.js +0 -126
  44. package/dist/core/writer.js.map +0 -1
  45. package/dist/lib/detection.d.ts +0 -13
  46. package/dist/lib/detection.d.ts.map +0 -1
  47. package/dist/lib/detection.js +0 -158
  48. package/dist/lib/detection.js.map +0 -1
  49. package/dist/lib/frontmatter.d.ts +0 -28
  50. package/dist/lib/frontmatter.d.ts.map +0 -1
  51. package/dist/lib/frontmatter.js +0 -114
  52. package/dist/lib/frontmatter.js.map +0 -1
@@ -1,9 +1,7 @@
1
1
  import fs from 'fs/promises';
2
2
  import path from 'path';
3
3
  import { input, select, confirm } from '@inquirer/prompts';
4
- import { DEFAULT_CONFIG } from '../config.js';
5
4
  import { success, info, gold, cyan } from '../lib/output.js';
6
- import { detectBlogStructure } from '../lib/detection.js';
7
5
  /**
8
6
  * Initialize Seshat configuration in the current directory
9
7
  */
@@ -26,47 +24,7 @@ export async function init(options = {}) {
26
24
  }
27
25
  console.log('');
28
26
  console.log(gold.bold('✦ Seshat Configuration Wizard'));
29
- console.log(cyan('Let\'s set up your blog configuration...'));
30
- console.log('');
31
- // Ask about installation type first
32
- const installationType = await select({
33
- message: 'Is this a fresh installation or an existing blog?',
34
- choices: [
35
- {
36
- name: 'Existing blog (detect my structure)',
37
- value: 'existing',
38
- description: 'Auto-detect blog structure from your project',
39
- },
40
- {
41
- name: 'Fresh installation (new blog)',
42
- value: 'fresh',
43
- description: 'Set up Seshat for a new blog with defaults',
44
- },
45
- ],
46
- default: 'existing',
47
- });
48
- // Auto-detect blog structure for existing blogs
49
- let detected = null;
50
- if (installationType === 'existing') {
51
- console.log('');
52
- info('🔍 Detecting blog structure...');
53
- detected = await detectBlogStructure();
54
- if (detected.hasExistingContent) {
55
- success(`✓ Found ${detected.contentFileCount} blog post${detected.contentFileCount !== 1 ? 's' : ''}`);
56
- if (detected.framework) {
57
- info(` Framework: ${detected.framework}`);
58
- }
59
- if (detected.contentDir) {
60
- info(` Content: ${detected.contentDir}`);
61
- }
62
- if (detected.assetsDir) {
63
- info(` Assets: ${detected.assetsDir}`);
64
- }
65
- }
66
- else {
67
- info('ℹ No existing content detected, will use defaults');
68
- }
69
- }
27
+ console.log(cyan('Let\'s set up your Sanity CMS blog configuration...'));
70
28
  console.log('');
71
29
  // Offer quick setup option
72
30
  const setupMode = await select({
@@ -91,320 +49,113 @@ export async function init(options = {}) {
91
49
  console.log('');
92
50
  console.log(cyan('📦 Quick Setup'));
93
51
  console.log('');
94
- // Framework selection - use detected value if available
95
- if (detected?.framework) {
96
- config.framework = detected.framework;
97
- info(`✓ Using detected framework: ${detected.framework}`);
98
- }
99
- else {
100
- const framework = await select({
101
- message: 'Which framework are you using?',
102
- choices: [
103
- { name: 'Remix', value: 'remix' },
104
- { name: 'Next.js', value: 'next' },
105
- { name: 'Astro', value: 'astro' },
106
- { name: 'Custom (manual configuration)', value: 'custom' },
107
- ],
108
- default: 'remix',
109
- });
110
- config.framework = framework;
111
- }
112
52
  config.topic = await input({
113
53
  message: 'Blog topic:',
114
- default: DEFAULT_CONFIG.topic,
54
+ default: 'Software Engineering and Technology',
55
+ });
56
+ config.tone = await input({
57
+ message: 'Writing tone:',
58
+ default: 'Professional yet witty',
115
59
  });
116
- // Use defaults for everything else
117
- config.tone = DEFAULT_CONFIG.tone;
118
60
  console.log('');
119
61
  info('✓ Using recommended defaults for remaining settings');
120
- // Ask about output mode
121
- console.log('');
122
- const outputMode = await select({
123
- message: 'Where should content be saved?',
124
- choices: [
125
- { name: 'Local files (MDX)', value: 'local' },
126
- { name: 'Sanity CMS', value: 'sanity' },
127
- ],
128
- default: 'local',
129
- });
130
- config.outputMode = outputMode;
131
- // Only ask for directories if using local mode
132
- if (outputMode === 'local') {
133
- console.log('');
134
- console.log(cyan('📁 Local File Configuration'));
135
- // Use detected values or ask for input
136
- if (detected?.contentDir) {
137
- const useDetected = await confirm({
138
- message: `Use detected content directory "${detected.contentDir}"?`,
139
- default: true,
140
- });
141
- config.contentDir = useDetected ? detected.contentDir : await input({
142
- message: 'Blog posts directory:',
143
- default: DEFAULT_CONFIG.contentDir,
144
- });
145
- }
146
- else {
147
- config.contentDir = await input({
148
- message: 'Blog posts directory:',
149
- default: DEFAULT_CONFIG.contentDir,
150
- });
151
- }
152
- if (detected?.assetsDir) {
153
- const useDetected = await confirm({
154
- message: `Use detected assets directory "${detected.assetsDir}"?`,
155
- default: true,
156
- });
157
- config.assetsDir = useDetected ? detected.assetsDir : await input({
158
- message: 'Where should generated images be saved?',
159
- default: DEFAULT_CONFIG.assetsDir,
160
- });
161
- if (useDetected && detected.publicAssetPath) {
162
- config.publicAssetPath = detected.publicAssetPath;
163
- }
164
- else {
165
- config.publicAssetPath = await input({
166
- message: 'Public URL path for images:',
167
- default: DEFAULT_CONFIG.publicAssetPath,
168
- });
169
- }
170
- }
171
- else {
172
- config.assetsDir = await input({
173
- message: 'Where should generated images be saved?',
174
- default: DEFAULT_CONFIG.assetsDir,
175
- });
176
- config.publicAssetPath = await input({
177
- message: 'Public URL path for images:',
178
- default: DEFAULT_CONFIG.publicAssetPath,
179
- });
180
- }
181
- }
182
- // Configure Sanity if needed
183
- if (outputMode === 'sanity') {
184
- console.log('');
185
- console.log(cyan('🔧 Sanity CMS Configuration'));
186
- config.sanity = {
187
- projectId: await input({
188
- message: 'Sanity project ID:',
189
- validate: (value) => value.trim() !== '' || 'Project ID is required',
190
- }),
191
- dataset: await input({
192
- message: 'Sanity dataset:',
193
- default: 'production',
194
- }),
195
- apiVersion: await input({
196
- message: 'Sanity API version:',
197
- default: '2024-01-01',
198
- }),
199
- documentType: await input({
200
- message: 'Document type to create:',
201
- default: 'post',
202
- }),
203
- };
204
- console.log('');
205
- info('💡 Remember to set SANITY_WRITE_TOKEN environment variable');
206
- }
207
62
  }
208
63
  else {
209
64
  // Custom setup - full wizard
210
65
  console.log('');
211
66
  console.log(cyan('⚙️ Custom Setup'));
212
- // Ask about output mode FIRST
213
- console.log('');
214
- const outputMode = await select({
215
- message: 'Where should content be saved?',
216
- choices: [
217
- { name: 'Local files (MDX)', value: 'local', description: 'Save posts as local MDX files' },
218
- { name: 'Sanity CMS', value: 'sanity', description: 'Upload directly to Sanity CMS' },
219
- ],
220
- default: 'local',
221
- });
222
- config.outputMode = outputMode;
223
- // Framework selection - use detected as default
224
- const useFrameworkPreset = await confirm({
225
- message: 'Do you want to use a framework preset?',
226
- default: true,
227
- });
228
- if (useFrameworkPreset) {
229
- const frameworkDefault = detected?.framework || 'remix';
230
- const framework = await select({
231
- message: 'Which framework are you using?',
232
- choices: [
233
- {
234
- name: 'Remix (date, image, tag)',
235
- value: 'remix',
236
- description: 'For Remix applications',
237
- },
238
- {
239
- name: 'Next.js (date, coverImage, tag)',
240
- value: 'next',
241
- description: 'For Next.js applications',
242
- },
243
- {
244
- name: 'Astro (pubDate, heroImage, tag)',
245
- value: 'astro',
246
- description: 'For Astro sites',
247
- },
248
- {
249
- name: 'Custom (manual configuration)',
250
- value: 'custom',
251
- description: 'Configure frontmatter manually',
252
- },
253
- ],
254
- default: frameworkDefault,
255
- });
256
- config.framework = framework;
257
- }
258
- // Project directories - only ask if using local mode
259
- if (outputMode === 'local') {
260
- console.log('');
261
- console.log(cyan('📁 Project Structure'));
262
- config.contentDir = await input({
263
- message: 'Where do you store your blog posts?',
264
- default: detected?.contentDir || DEFAULT_CONFIG.contentDir,
265
- });
266
- config.assetsDir = await input({
267
- message: 'Where should generated images be saved?',
268
- default: detected?.assetsDir || DEFAULT_CONFIG.assetsDir,
269
- });
270
- config.publicAssetPath = await input({
271
- message: 'What is the public URL path for images?',
272
- default: detected?.publicAssetPath || DEFAULT_CONFIG.publicAssetPath,
273
- });
274
- }
275
67
  // Content settings
276
68
  console.log('');
277
69
  console.log(cyan('✍️ Content Settings'));
278
70
  config.topic = await input({
279
71
  message: 'What is your blog\'s main topic?',
280
- default: DEFAULT_CONFIG.topic,
72
+ default: 'Software Engineering and Technology',
281
73
  });
282
74
  config.tone = await input({
283
75
  message: 'What writing tone should Seshat use?',
284
- default: DEFAULT_CONFIG.tone,
76
+ default: 'Professional yet witty',
285
77
  });
286
78
  // Advanced options
287
79
  console.log('');
288
80
  const configureAdvanced = await confirm({
289
- message: 'Configure advanced options? (file naming, generation settings)',
81
+ message: 'Configure advanced generation options?',
290
82
  default: false,
291
83
  });
292
84
  if (configureAdvanced) {
293
85
  console.log('');
294
86
  console.log(cyan('⚙️ Advanced Options'));
295
- // File extension
296
- const fileExtension = await select({
297
- message: 'File extension for blog posts:',
298
- choices: [
299
- { name: '.mdx (MDX - Markdown with JSX)', value: 'mdx' },
300
- { name: '.md (Standard Markdown)', value: 'md' },
301
- ],
302
- default: 'mdx',
87
+ config.generation = {};
88
+ const setWordCount = await confirm({
89
+ message: 'Set a target word count?',
90
+ default: false,
303
91
  });
304
- config.fileExtension = fileExtension;
305
- // File naming
306
- const fileNamePattern = await select({
307
- message: 'File naming pattern:',
308
- choices: [
309
- { name: 'my-post-title.mdx', value: '{{slug}}' },
310
- { name: '2024-01-15-my-post-title.mdx', value: '{{date}}-{{slug}}' },
311
- { name: '2024-01-my-post-title.mdx', value: '{{year}}-{{month}}-{{slug}}' },
312
- ],
313
- default: '{{slug}}',
92
+ if (setWordCount) {
93
+ const wordCount = await input({
94
+ message: 'Target word count:',
95
+ default: '1500',
96
+ validate: (value) => {
97
+ const num = parseInt(value, 10);
98
+ if (isNaN(num) || num < 100) {
99
+ return 'Please enter a valid number (at least 100)';
100
+ }
101
+ return true;
102
+ },
103
+ });
104
+ config.generation.targetWordCount = parseInt(wordCount, 10);
105
+ }
106
+ config.generation.includeCodeExamples = await confirm({
107
+ message: 'Emphasize code examples in posts?',
108
+ default: false,
314
109
  });
315
- config.fileNameTemplate = fileNamePattern;
316
- // Nested directories
317
- config.nestedDirectories = await confirm({
318
- message: 'Organize posts in date-based folders? (e.g., 2024/01/)',
110
+ config.generation.seoOptimized = await confirm({
111
+ message: 'Generate SEO-optimized content?',
319
112
  default: false,
320
113
  });
321
- // Generation options
322
- const configureGeneration = await confirm({
323
- message: 'Configure content generation options?',
114
+ const enableImages = await confirm({
115
+ message: 'Enable AI image generation for posts?',
116
+ default: true,
117
+ });
118
+ config.generation.enableImageGeneration = enableImages;
119
+ const addCustomInstructions = await confirm({
120
+ message: 'Add custom writing instructions?',
324
121
  default: false,
325
122
  });
326
- if (configureGeneration) {
327
- config.generation = {};
328
- const setWordCount = await confirm({
329
- message: 'Set a target word count?',
330
- default: false,
331
- });
332
- if (setWordCount) {
333
- const wordCount = await input({
334
- message: 'Target word count:',
335
- default: '1500',
336
- validate: (value) => {
337
- const num = parseInt(value, 10);
338
- if (isNaN(num) || num < 100) {
339
- return 'Please enter a valid number (at least 100)';
340
- }
341
- return true;
342
- },
343
- });
344
- config.generation.targetWordCount = parseInt(wordCount, 10);
345
- }
346
- config.generation.includeCodeExamples = await confirm({
347
- message: 'Emphasize code examples in posts?',
348
- default: false,
349
- });
350
- config.generation.seoOptimized = await confirm({
351
- message: 'Generate SEO-optimized content?',
352
- default: false,
123
+ if (addCustomInstructions) {
124
+ config.generation.customInstructions = await input({
125
+ message: 'Custom instructions:',
126
+ default: '',
353
127
  });
354
- const addCustomInstructions = await confirm({
355
- message: 'Add custom writing instructions?',
356
- default: false,
357
- });
358
- if (addCustomInstructions) {
359
- config.generation.customInstructions = await input({
360
- message: 'Custom instructions:',
361
- default: '',
362
- });
363
- }
364
128
  }
365
129
  }
366
- // Configure Sanity if needed
367
- if (outputMode === 'sanity') {
368
- console.log('');
369
- console.log(cyan('🔧 Sanity CMS Configuration'));
370
- console.log('');
371
- config.sanity = {
372
- projectId: await input({
373
- message: 'Sanity project ID:',
374
- validate: (value) => value.trim() !== '' || 'Project ID is required',
375
- }),
376
- dataset: await input({
377
- message: 'Sanity dataset:',
378
- default: 'production',
379
- }),
380
- apiVersion: await input({
381
- message: 'Sanity API version:',
382
- default: '2024-01-01',
383
- }),
384
- documentType: await input({
385
- message: 'Document type to create:',
386
- default: 'post',
387
- }),
388
- };
389
- console.log('');
390
- info('💡 Remember to set SANITY_WRITE_TOKEN environment variable');
391
- }
392
130
  }
393
- // Build final config with defaults
131
+ // Configure Sanity (always required)
132
+ console.log('');
133
+ console.log(cyan('🔧 Sanity CMS Configuration'));
134
+ console.log('');
135
+ config.sanity = {
136
+ projectId: await input({
137
+ message: 'Sanity project ID:',
138
+ validate: (value) => value.trim() !== '' || 'Project ID is required',
139
+ }),
140
+ dataset: await input({
141
+ message: 'Sanity dataset:',
142
+ default: 'production',
143
+ }),
144
+ apiVersion: await input({
145
+ message: 'Sanity API version:',
146
+ default: '2024-01-01',
147
+ }),
148
+ documentType: await input({
149
+ message: 'Document type to create:',
150
+ default: 'post',
151
+ }),
152
+ };
153
+ // Build final config
394
154
  const finalConfig = {
395
155
  topic: config.topic,
396
156
  tone: config.tone,
397
- ...(config.contentDir && { contentDir: config.contentDir }),
398
- ...(config.assetsDir && { assetsDir: config.assetsDir }),
399
- ...(config.publicAssetPath && { publicAssetPath: config.publicAssetPath }),
400
- ...(config.framework && { framework: config.framework }),
401
- ...(config.fileExtension && { fileExtension: config.fileExtension }),
402
- ...(config.imageFormat && { imageFormat: config.imageFormat }),
403
- ...(config.fileNameTemplate && { fileNameTemplate: config.fileNameTemplate }),
404
- ...(config.nestedDirectories !== undefined && { nestedDirectories: config.nestedDirectories }),
157
+ sanity: config.sanity,
405
158
  ...(config.generation && Object.keys(config.generation).length > 0 && { generation: config.generation }),
406
- ...(config.outputMode && { outputMode: config.outputMode }),
407
- ...(config.sanity && { sanity: config.sanity }),
408
159
  };
409
160
  // Save configuration
410
161
  const configContent = JSON.stringify(finalConfig, null, 2);
@@ -414,34 +165,18 @@ export async function init(options = {}) {
414
165
  console.log('');
415
166
  // Show summary
416
167
  console.log(gold('📋 Configuration Summary:'));
417
- if (finalConfig.contentDir) {
418
- console.log(` Content directory: ${finalConfig.contentDir}`);
419
- }
420
- if (finalConfig.assetsDir) {
421
- console.log(` Assets directory: ${finalConfig.assetsDir}`);
422
- }
423
168
  console.log(` Topic: ${finalConfig.topic}`);
424
169
  console.log(` Tone: ${finalConfig.tone}`);
425
- if (finalConfig.framework) {
426
- console.log(` Framework: ${finalConfig.framework}`);
427
- }
428
- if (finalConfig.outputMode) {
429
- console.log(` Output mode: ${finalConfig.outputMode}`);
430
- }
170
+ console.log(` Sanity Project: ${finalConfig.sanity.projectId}`);
171
+ console.log(` Sanity Dataset: ${finalConfig.sanity.dataset}`);
431
172
  console.log('');
432
173
  console.log('🚀 Next steps:');
433
174
  console.log(' 1. Set your GEMINI_API_KEY environment variable');
434
175
  console.log(' export GEMINI_API_KEY="your_key_here"');
435
- if (finalConfig.outputMode === 'sanity') {
436
- console.log(' 2. Set your SANITY_WRITE_TOKEN environment variable');
437
- console.log(' export SANITY_WRITE_TOKEN="your_token_here"');
438
- console.log(' 3. Generate your first post: seshat write');
439
- console.log(' 4. (Optional) Set up GitHub Actions: seshat setup-workflow');
440
- }
441
- else {
442
- console.log(' 2. Generate your first post: seshat write');
443
- console.log(' 3. (Optional) Set up GitHub Actions: seshat setup-workflow');
444
- }
176
+ console.log(' 2. Set your SANITY_WRITE_TOKEN environment variable');
177
+ console.log(' export SANITY_WRITE_TOKEN="your_token_here"');
178
+ console.log(' 3. Generate your first post: seshat write');
179
+ console.log(' 4. (Optional) Set up GitHub Actions: seshat setup-workflow');
445
180
  console.log('');
446
181
  console.log(cyan('💡 Tip: Run "seshat init" again anytime to reconfigure'));
447
182
  console.log('');
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}