task-summary-extractor 8.1.0 → 8.3.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/ARCHITECTURE.md CHANGED
@@ -76,20 +76,23 @@ flowchart TB
76
76
  GIT["git.js"]
77
77
  end
78
78
 
79
- subgraph Utils["Utilities — 19 modules"]
79
+ subgraph Utils["Utilities"]
80
80
  QG["quality-gate"]
81
- FR["focused-reanalysis"]
82
81
  LL["learning-loop"]
83
82
  DE["diff-engine"]
84
- CD["change-detector"]
85
- PU["progress-updater"]
86
83
  CM["context-manager"]
87
84
  JP["json-parser"]
88
85
  AB["adaptive-budget"]
89
86
  HD["health-dashboard"]
87
+ OT["+ 7 more"]
88
+ end
89
+
90
+ subgraph Modes["Modes — AI pipeline phases"]
91
+ FR["focused-reanalysis"]
92
+ CD["change-detector"]
93
+ PU["progress-updater"]
90
94
  DD["deep-dive"]
91
95
  DM["dynamic-mode"]
92
- OT["+ 7 more"]
93
96
  end
94
97
 
95
98
  subgraph Renderers["Renderers"]
@@ -101,6 +104,7 @@ flowchart TB
101
104
  P1 -.->|"--dynamic"| DYN
102
105
  Pipeline --> Services
103
106
  Pipeline --> Utils
107
+ Pipeline --> Modes
104
108
  Pipeline --> Renderers
105
109
  UP --> GIT
106
110
  UP --> CD
@@ -115,7 +119,7 @@ flowchart TB
115
119
  | Phase | Name | What Happens |
116
120
  |-------|------|-------------|
117
121
  | 1 | **Init** | CLI parsing, interactive folder selection (if no arg), config validation, logger setup, load learning insights, route to dynamic/progress mode |
118
- | 2 | **Discover** | Find videos, discover documents, resolve user name, check resume state |
122
+ | 2 | **Discover** | Find videos/audio, discover documents, resolve user name, check resume state |
119
123
  | 3 | **Services** | Firebase auth, Gemini init, prepare document parts |
120
124
  | 4 | **Process** | Compress → Upload → Analyze → Quality Gate → Retry → Focused Pass |
121
125
  | 5 | **Compile** | Cross-segment compilation, diff engine comparison |
@@ -294,17 +298,17 @@ flowchart TB
294
298
 
295
299
  ## Extraction Schema
296
300
 
297
- The AI extracts 6 structured categories from each meeting. The categories are content-adaptive the AI populates whichever fields are relevant to the actual discussion.
301
+ The AI extracts 6 structured categories from any content source (video, audio, documents, or mixed). The prompt auto-detects the input type and adapts: temporal content (video/audio) gets timestamps; document-only content uses section references and null timestamps. All field names remain identical regardless of input type for backward compatibility.
298
302
 
299
303
  ### Categories
300
304
 
301
305
  | Category | Key Fields | Adapts To |
302
306
  |----------|-----------|----------|
303
- | **Tickets / Items** | `ticket_id`, `title`, `status`, `assignee`, `reviewer`, `video_segments` with timestamps, `speaker_comments`, `details` with priority, confidence | Sprint items, requirements, interview topics, incident items |
304
- | **Change Requests** | `WHERE` (target: file, system, process, scope), `WHAT` (specific change), `HOW` (approach), `WHY` (justification), `dependencies`, `blocked_by`, confidence | Code changes, requirement changes, process changes, scope adjustments |
305
- | **References** | `name`, `type`, `role`, cross-refs to tickets & CRs, `context_doc_match` | Files, documents, URLs, tools, systems, resources mentioned |
306
- | **Action Items** | `description`, `assigned_to`, `status`, `deadline`, `dependencies`, related tickets & CRs, confidence | Any follow-up work discussed |
307
- | **Blockers** | `description`, `severity`, `owner`, `status`, `proposed_resolution`, confidence | Technical blockers, approval gates, resource constraints |
307
+ | **Tickets / Items** | `ticket_id`, `title`, `status`, `assignee`, `reviewer`, `video_segments` with timestamps (or null for docs), `speaker_comments`, `details` with priority, confidence | Sprint items, requirements, interview topics, incident items, legal matters, deals |
308
+ | **Change Requests** | `WHERE` (target: file, system, process, scope), `WHAT` (specific change), `HOW` (approach), `WHY` (justification), `dependencies`, `blocked_by`, confidence | Code changes, requirement changes, process changes, scope adjustments, contract revisions, policy updates |
309
+ | **References** | `name`, `type`, `role`, cross-refs to tickets & CRs, `context_doc_match` | Files, documents, URLs, tools, systems, resources, contracts, reports mentioned |
310
+ | **Action Items** | `description`, `assigned_to`, `status`, `deadline`, `dependencies`, related tickets & CRs, confidence | Any follow-up work discussed or documented |
311
+ | **Blockers** | `description`, `severity`, `owner`, `status`, `proposed_resolution`, confidence | Technical blockers, approval gates, resource constraints, legal reviews, budget approvals |
308
312
  | **Scope Changes** | `type` (added/removed/deferred), `original` vs `new` scope, `decided_by`, `impact`, confidence | Feature scope, project scope, contract scope, training scope |
309
313
 
310
314
  ### Personalized Task Section
@@ -500,6 +504,7 @@ taskex --dynamic --request "Document this microservices architecture"
500
504
  |-----------|--------|-------------|
501
505
  | `.vtt` `.srt` `.txt` `.md` `.csv` | Inline text | Read and passed directly as text parts |
502
506
  | `.pdf` | Gemini File API | Uploaded as binary, Gemini processes natively |
507
+ | `.mp3` `.wav` `.ogg` `.m4a` | Gemini File API | Uploaded as audio, Gemini processes natively |
503
508
  | `.docx` `.doc` | Firebase only | Uploaded for archival, not processable by Gemini |
504
509
 
505
510
  Directories skipped during recursive discovery: `node_modules`, `.git`, `compressed`, `logs`, `gemini_runs`, `runs`
package/EXPLORATION.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Task Summary Extractor — Where We Are & Where We Can Go
2
2
 
3
- > **Version 8.1.0** — February 2026
3
+ > **Version 8.3.0** — February 2026
4
4
  > Module map, codebase stats, and future roadmap.
5
5
  > For setup and CLI reference, see [README.md](README.md) · [Quick Start](QUICK_START.md)
6
6
  > For architecture diagrams and algorithms, see [ARCHITECTURE.md](ARCHITECTURE.md)
@@ -66,7 +66,7 @@
66
66
  | Config + Logger | 2 | 578 |
67
67
  | Entry points (taskex + legacy) | 2 | 165 |
68
68
  | Setup script | 1 | 505 |
69
- | Prompt (JSON) | 1 | 265 |
69
+ | Prompt (JSON) | 1 | 308 |
70
70
  | **Total** | **33 files** | **~10,600 lines** |
71
71
 
72
72
  ### Version History
@@ -85,6 +85,8 @@
85
85
  | **v7.2.1** | Storage URL + Audit | Firebase Storage URLs as Gemini External URLs (skip File API upload), 3-strategy file resolution, URI reuse for retry/focused pass, Gemini file cleanup, confidence % fix, logger/firebase/git/version fixes |
86
86
  | **v7.2.2** | Upload Control | `--force-upload` to re-upload existing files, `--no-storage-url` to force Gemini File API, production-ready docs |
87
87
  | **v8.1.0** | Smart Global Config | Persistent `~/.taskexrc` config, `taskex config` subcommand, first-run API key prompting, 5-level config resolution, production audit (14 fixes), shared CLI flag injection, boolean flag parser fix |
88
+ | **v8.2.0** | Architecture Cleanup | `src/modes/` for AI pipeline phases, `retry.js` self-contained defaults, dead code removal, export trimming, `process_and_upload.js` slim shim, `progress.js` → `checkpoint.js`, merged `prompt.js` into `cli.js` |
89
+ | **v8.3.0** | Universal Content Analysis | prompt.json v4.0.0 — input type auto-detection (video/audio/document/mixed), timestamps conditional, domain-adaptive extraction for any content source, gemini.js bridge text generalized |
88
90
  | **v8.0.0** | npm Package | Global CLI (`taskex`), `--gemini-key`/`--firebase-*` config flags, CWD-based path resolution, CWD-first `.env`, `bin/taskex.js` entry point, npm publish-ready `package.json` |
89
91
  | **v7.2.3** | Production Hardening | Cross-platform ffmpeg detection, shell injection fix (spawnSync), auto git init for `--update-progress`, `runs/` excluded from doc discovery, entry point docs updated |
90
92
 
@@ -176,7 +178,7 @@ The logger now writes **three parallel outputs**:
176
178
  | Adaptive Thinking Budget | `adaptive-budget.js` | Segment position, complexity, context docs → dynamic 8K–32K range |
177
179
  | Smart Boundary Detection | `context-manager.js` | Mid-conversation detection, open ticket carry-forward, continuity hints |
178
180
  | Health Dashboard | `health-dashboard.js` | Quality scores, extraction density bars, retry stats, efficiency metrics |
179
- | Enhanced Prompt | `prompt.json` | Timestamp accuracy, dedup rules, self-verification checklist, retry hints |
181
+ | Enhanced Prompt | `prompt.json` | Universal content analysis (v4.0.0): input type detection, timestamps conditional on content type, domain-adaptive extraction, self-verification checklist |
180
182
 
181
183
  ### Current Capabilities
182
184
 
@@ -270,36 +272,38 @@ src/
270
272
  ├── config.js 277 ln Central config, env vars, model registry, validation
271
273
  ├── logger.js 306 ln ★ v6 — Triple output: detailed + minimal + structured JSONL, phase spans, metrics
272
274
  ├── pipeline.js 1,985 ln Multi-mode orchestrator with Storage URL optimization, upload control flags, learning loop, focused re-analysis, diff engine, deep-dive, dynamic, auto git init
275
+ ├── modes/ ★ v8.2.0 — AI-heavy pipeline phase modules
276
+ │ ├── change-detector.js 417 ln Git-based change correlation engine
277
+ │ ├── deep-dive.js 473 ln ★ v6.2 — Topic discovery, parallel doc generation, index builder
278
+ │ ├── dynamic-mode.js 494 ln ★ v7.0 — Context-only doc generation, topic planning, parallel writing
279
+ │ ├── focused-reanalysis.js 268 ln ★ v6 — Weakness detection, targeted second pass, intelligent merge
280
+ │ └── progress-updater.js 402 ln ★ v6.1 — AI-powered progress assessment, status report generation
273
281
  ├── renderers/
274
282
  │ └── markdown.js 879 ln ★ v6 — Confidence badges (🟢🟡🔴), confidence distribution table, diff section
275
283
  ├── services/
276
284
  │ ├── firebase.js 92 ln Init, upload, exists check (with retry, async I/O)
277
285
  │ ├── gemini.js 677 ln ★ v7.2.1 — 3-strategy file resolution, External URL support, cleanup, doc prep, analysis, compilation
278
- │ ├── git.js 330 ln ★ v7.2.3 — Git CLI wrapper: log, diff, status, changed files, auto-init
286
+ │ ├── git.js 310 ln ★ v7.2.3 — Git CLI wrapper: log, diff, status, changed files, auto-init
279
287
  │ └── video.js 285 ln ★ v7.2.3 — ffmpeg compress, segment, probe (cross-platform, spawnSync)
280
- └── utils/
288
+ └── utils/ Pure utilities — parsing, retry, budget, config
281
289
  ├── adaptive-budget.js 232 ln ★ v5 — Transcript complexity → dynamic budget
282
- ├── change-detector.js 417 ln v6.1 Git-based change correlation engine
283
- ├── cli.js 391 ln ★ v8.0.0 — Interactive prompts, model selector, folder picker, config flags, taskex help
290
+ ├── checkpoint.js 145 ln Checkpoint/resume persistence (renamed from progress.js in v8.2.0)
291
+ ├── cli.js 415 ln ★ v8.0.0 — Interactive prompts, model selector, folder picker, config flags, taskex help
284
292
  ├── context-manager.js 424 ln 4-tier priority, VTT slicing, progressive context, boundary detection
285
293
  ├── cost-tracker.js 140 ln Token counting, USD cost estimation (+ focused pass tracking)
286
- ├── deep-dive.js 473 ln ★ v6.2 — Topic discovery, parallel doc generation, index builder
287
294
  ├── diff-engine.js 280 ln ★ v6 — Cross-run delta: new/removed/changed items, Markdown rendering
288
- ├── dynamic-mode.js 494 ln ★ v7.0 — Context-only doc generation, topic planning, parallel writing
289
- ├── focused-reanalysis.js 268 ln ★ v6 — Weakness detection, targeted second pass, intelligent merge
290
295
  ├── format.js 27 ln Duration, bytes formatting
291
296
  ├── fs.js 40 ln Recursive doc finder (skips runs/)
297
+ ├── global-config.js 320 ln ★ v8.1.0 — ~/.taskexrc persistent config, interactive setup
292
298
  ├── health-dashboard.js 191 ln ★ v5 — Quality report, density bars, efficiency metrics
299
+ ├── inject-cli-flags.js 58 ln ★ v8.1.0 — CLI flag → env var injection
293
300
  ├── json-parser.js 216 ln 5-strategy JSON extraction + repair
294
301
  ├── learning-loop.js 270 ln ★ v6 — History I/O, trend analysis, budget auto-tuning, recommendations
295
- ├── progress.js 145 ln Checkpoint/resume persistence
296
- ├── progress-updater.js 402 ln ★ v6.1 — AI-powered progress assessment, status report generation
297
- ├── prompt.js 28 ln Interactive user prompts
298
302
  ├── quality-gate.js 372 ln ★ v6 — 4+1 dimension scoring (+ confidence coverage), retry hints
299
- └── retry.js 112 ln Exponential backoff, parallel map
303
+ └── retry.js 112 ln Exponential backoff, parallel map (self-contained defaults)
300
304
 
301
- prompt.json 265 ln ★ v6Confidence scoring instructions, evidence-based schema
302
- process_and_upload.js 115 ln Backward-compatible entry point with config flag injection (v8.0.0)
305
+ prompt.json 308 ln ★ v4.0.0Universal content analysis: video, audio, documents, mixed input; auto-detects input type + domain
306
+ process_and_upload.js 14 ln Backward-compatible shim delegates to bin/taskex.js
303
307
  setup.js 505 ln Automated first-time setup & environment validation (v8.0.0)
304
308
  ```
305
309
 
@@ -314,14 +318,14 @@ The following features from the original exploration have been **fully implement
314
318
  | Feature | Status | Implemented In |
315
319
  |---------|--------|----------------|
316
320
  | 📊 Confidence Scoring Per Extracted Item | ✅ Done | `prompt.json`, `quality-gate.js`, `markdown.js` |
317
- | 🔄 Multi-Pass Analysis (Focused Re-extraction) | ✅ Done | `focused-reanalysis.js` (268 ln), pipeline integration |
321
+ | 🔄 Multi-Pass Analysis (Focused Re-extraction) | ✅ Done | `modes/focused-reanalysis.js` (268 ln), pipeline integration |
318
322
  | 🧠 Learning & Improvement Loop | ✅ Done | `learning-loop.js` (270 ln), pipeline init + save |
319
323
  | 📝 Diff-Aware Compilation | ✅ Done | `diff-engine.js` (280 ln), pipeline output + MD |
320
324
  | 🔍 Structured Logging & Observability | ✅ Done | `logger.js` rewritten (303 ln), JSONL + spans + metrics |
321
325
  | Parallel segment analysis (via CLI) | ✅ Done | `--parallel-analysis` flag, pipeline batching |
322
- | 🔎 Smart Change Detection & Progress Tracking | ✅ Done | `git.js` (258 ln), `change-detector.js` (417 ln), `progress-updater.js` (402 ln), pipeline `--update-progress` mode |
323
- | 🗓️ Deep Dive Document Generation | ✅ Done | `deep-dive.js` (473 ln), pipeline phase 9 |
324
- | 📝 Dynamic Mode (doc-only generation) | ✅ Done | `dynamic-mode.js` (494 ln), pipeline `--dynamic` route |
326
+ | 🔎 Smart Change Detection & Progress Tracking | ✅ Done | `git.js` (310 ln), `modes/change-detector.js` (417 ln), `modes/progress-updater.js` (402 ln), pipeline `--update-progress` mode |
327
+ | 🗓️ Deep Dive Document Generation | ✅ Done | `modes/deep-dive.js` (473 ln), pipeline phase 9 |
328
+ | 📝 Dynamic Mode (doc-only generation) | ✅ Done | `modes/dynamic-mode.js` (494 ln), pipeline `--dynamic` route |
325
329
  | 🤖 Runtime Model Selection | ✅ Done | `config.js` model registry, `cli.js` selector, `--model` flag |
326
330
 
327
331
  ---
@@ -416,7 +420,7 @@ The following features from the original exploration have been **fully implement
416
420
  | **Slack webhook** — post summary to a channel | ~1 hr | Team-wide visibility |
417
421
  | **Segment preview** — show first 3 VTT lines per segment before analyzing | ~30 min | Better UX during processing |
418
422
  | **Custom output templates** — Handlebars/Mustache for MD output | ~4 hrs | Teams customize report format |
419
- | **Audio-only mode** support .mp3/.wav without video | ~2 hrs | Works for phone calls, podcasts |
423
+ | **~~Audio-only mode~~** | ~~Done~~ | prompt.json v4.0.0 supports audio/doc/mixed pipeline video requirement is next |
420
424
  | **Watch mode** — monitor a folder and auto-process new recordings | ~3 hrs | Hands-free automation |
421
425
  | **Git integration** — auto-commit results to repo | ~1 hr | Version-controlled meeting history |
422
426
  | **Confidence threshold filter** — CLI flag to exclude LOW confidence items from output | ~1 hr | Cleaner reports on demand |
package/README.md CHANGED
@@ -1,16 +1,16 @@
1
1
  # Task Summary Extractor
2
2
 
3
- > **v8.1.0** — AI-powered meeting analysis & document generation CLI. Install globally, run anywhere.
3
+ > **v8.3.0** — AI-powered content analysis CLI meetings, recordings, documents, or any mix. Install globally, run anywhere.
4
4
 
5
5
  <p align="center">
6
6
  <img src="https://img.shields.io/badge/node-%3E%3D18.0.0-green" alt="Node.js" />
7
7
  <img src="https://img.shields.io/badge/gemini-2.5--flash-blue" alt="Gemini" />
8
8
  <img src="https://img.shields.io/badge/firebase-11.x-orange" alt="Firebase" />
9
- <img src="https://img.shields.io/badge/version-8.1.0-brightgreen" alt="Version" />
9
+ <img src="https://img.shields.io/badge/version-8.3.0-brightgreen" alt="Version" />
10
10
  <img src="https://img.shields.io/badge/npm-task--summary--extractor-red" alt="npm" />
11
11
  </p>
12
12
 
13
- **Record a meeting → get a structured task document.** Or point it at any folder and generate docs from context.
13
+ **Analyze any content → get a structured task document.** Feed it meeting recordings, audio files, documents, or any mix — it extracts work items, action items, blockers, and more. Or point it at any folder and generate docs from context.
14
14
 
15
15
  📖 **New here?** Jump to [Setup (3 steps)](#setup-3-steps) — you'll be running in under 5 minutes.
16
16
 
@@ -18,9 +18,9 @@
18
18
 
19
19
  ## What It Does
20
20
 
21
- ### 🎥 Video Analysis (default mode)
21
+ ### 🎥 Content Analysis (default mode)
22
22
 
23
- Drop a recording in a folder → run the tool → get a Markdown task document with:
23
+ Drop a recording (video/audio) or documents in a folder → run the tool → get a Markdown task document with:
24
24
 
25
25
  - **Tickets** — ID, title, status, assignee, confidence score
26
26
  - **Change Requests** — what changed, where, how, why
@@ -191,7 +191,7 @@ Choose what the tool does. Only use one at a time:
191
191
 
192
192
  | Flag | Mode | What You Get |
193
193
  |------|------|-------------|
194
- | *(none)* | **Video analysis** | `results.md` — structured task document |
194
+ | *(none)* | **Content analysis** | `results.md` — structured task document |
195
195
  | `--dynamic` | **Doc generation** | `INDEX.md` + 3–15 topic documents |
196
196
  | `--deep-dive` | **Topic explainers** | `INDEX.md` + per-topic deep-dive docs |
197
197
  | `--update-progress` | **Progress check** | `progress.md` — item status via git |
@@ -271,7 +271,7 @@ INFO --help (-h) --version (-v)
271
271
 
272
272
  ## Output
273
273
 
274
- ### Video Analysis
274
+ ### Content Analysis
275
275
 
276
276
  ```
277
277
  my-meeting/runs/{timestamp}/
@@ -312,12 +312,12 @@ my-meeting/runs/{timestamp}/
312
312
 
313
313
  ## Folder Setup Tips
314
314
 
315
- Drop docs alongside your video to give the AI context. **More context = better extraction.**
315
+ Drop content files and supporting docs in a folder. **More context = better extraction.**
316
316
 
317
317
  ```
318
318
  my-meeting/
319
- ├── Recording.mp4 ← Video (required for video mode)
320
- ├── Recording.vtt ← Subtitles (highly recommended)
319
+ ├── Recording.mp4 ← Video recording (primary for video mode)
320
+ ├── Recording.vtt ← Subtitles (highly recommended for recordings)
321
321
  ├── agenda.md ← Loose docs at root are fine
322
322
 
323
323
  ├── .tasks/ ← Gets priority weighting (optional)
@@ -328,7 +328,7 @@ my-meeting/
328
328
  └── requirements.md
329
329
  ```
330
330
 
331
- **Supported formats:** `.mp4` `.mkv` `.webm` `.avi` `.mov` (video) · `.vtt` `.srt` `.txt` `.md` `.csv` `.pdf` (docs)
331
+ **Supported formats:** `.mp4` `.mkv` `.webm` `.avi` `.mov` (video) · `.mp3` `.wav` `.ogg` `.m4a` (audio) · `.vtt` `.srt` `.txt` `.md` `.csv` `.pdf` (docs)
332
332
 
333
333
  The tool **recursively scans all subfolders**. `.tasks/` gets highest priority weighting but everything is included.
334
334
 
@@ -406,7 +406,7 @@ GEMINI_API_KEY=your-key-here
406
406
 
407
407
  | Feature | Description |
408
408
  |---------|-------------|
409
- | **Video Compression** | H.264 CRF 24, text-optimized sharpening, configurable speed |
409
+ | **Video/Audio Compression** | H.264 CRF 24, text-optimized sharpening, configurable speed |
410
410
  | **Smart Segmentation** | ≤5 min chunks with boundary-aware splitting |
411
411
  | **Cross-Segment Continuity** | Ticket IDs, names, and context carry forward |
412
412
  | **Document Discovery** | Auto-finds docs in all subfolders |
@@ -468,7 +468,7 @@ Your call folders, `.env`, logs, and videos are all `.gitignore`d — nothing ge
468
468
  task-summary-extractor/
469
469
  ├── bin/
470
470
  │ └── taskex.js Global CLI entry point
471
- ├── process_and_upload.js Backward-compatible entry point
471
+ ├── process_and_upload.js Backward-compatible entry (delegates to bin/taskex)
472
472
  ├── setup.js First-time setup & validation
473
473
  ├── package.json Dependencies, scripts, bin config
474
474
  ├── prompt.json Gemini extraction prompt
@@ -476,15 +476,21 @@ task-summary-extractor/
476
476
  ├── src/
477
477
  │ ├── config.js Config, model registry, env vars
478
478
  │ ├── logger.js Structured JSONL logger (triple output)
479
- │ ├── pipeline.js Multi-mode orchestrator (1,985 lines)
479
+ │ ├── pipeline.js Multi-mode orchestrator (~2,000 lines)
480
480
  │ ├── services/
481
481
  │ │ ├── gemini.js Gemini AI — 3-strategy file resolution + External URL support
482
482
  │ │ ├── firebase.js Firebase Storage (async I/O)
483
483
  │ │ ├── video.js ffmpeg compression
484
484
  │ │ └── git.js Git CLI wrapper
485
+ │ ├── modes/ AI-heavy pipeline phase modules
486
+ │ │ ├── deep-dive.js Topic discovery & deep-dive doc generation
487
+ │ │ ├── dynamic-mode.js Dynamic document planning & generation
488
+ │ │ ├── focused-reanalysis.js Targeted reanalysis of weak segments
489
+ │ │ ├── progress-updater.js Git-based progress assessment
490
+ │ │ └── change-detector.js Git change correlation engine
485
491
  │ ├── renderers/
486
492
  │ │ └── markdown.js Report renderer
487
- │ └── utils/ 21 modulessee ARCHITECTURE.md
493
+ │ └── utils/ Pure utilitiesparsing, retry, budget, config
488
494
 
489
495
  ├── QUICK_START.md Step-by-step setup guide
490
496
  ├── ARCHITECTURE.md Technical deep dive
@@ -512,6 +518,8 @@ task-summary-extractor/
512
518
 
513
519
  | Version | Highlights |
514
520
  |---------|-----------|
521
+ | **v8.3.0** | **Universal content analysis** — prompt v4.0.0 supports video, audio, documents, and mixed content; input type auto-detection; timestamps conditional on content type; gemini.js bridge text generalized; all markdown docs updated |
522
+ | **v8.2.0** | **Architecture cleanup** — `src/modes/` for AI pipeline phases, `retry.js` self-contained defaults, dead code removal, export trimming, `process_and_upload.js` slim shim, `progress.js` → `checkpoint.js`, merged `prompt.js` into `cli.js` |
515
523
  | **v8.1.0** | **Smart global config** — `taskex config` persistent setup (`~/.taskexrc`), first-run prompting, 5-level config resolution, production audit fixes, shared CLI flag injection, boolean flag parser fix |
516
524
  | **v8.0.0** | **npm package** — `npm i -g task-summary-extractor`, `taskex` global CLI, `--gemini-key` / `--firebase-*` config flags, run from anywhere, CWD-first `.env` resolution |
517
525
  | **v7.2.3** | Production hardening — cross-platform ffmpeg, shell injection fix, auto git init for progress tracking, `runs/` excluded from doc discovery |
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "task-summary-extractor",
3
- "version": "8.1.0",
3
+ "version": "8.3.0",
4
4
  "description": "AI-powered meeting analysis & document generation CLI — video + document processing, deep dive docs, dynamic mode, interactive CLI with model selection, confidence scoring, learning loop, git progress tracking",
5
5
  "main": "process_and_upload.js",
6
6
  "bin": {
7
- "taskex": "./bin/taskex.js"
7
+ "taskex": "bin/taskex.js"
8
8
  },
9
9
  "files": [
10
10
  "bin/",
@@ -1,107 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * taskex AI-powered meeting analysis & document generation.
3
+ * Backward-compatible entry point delegates to bin/taskex.js.
4
4
  *
5
- * Backward-compatible entry point delegates to src/pipeline.js.
6
- * For global installs, use the `taskex` command directly.
5
+ * For global installs, use the `taskex` CLI command directly.
6
+ * This file exists for `node process_and_upload.js` and `npm start` compatibility.
7
7
  *
8
8
  * Usage:
9
- * taskex [options] [folder]
10
- * node process_and_upload.js [options] "C:\path\to\call folder"
9
+ * taskex [options] [folder] (recommended)
10
+ * node process_and_upload.js [options] [folder] (legacy)
11
11
  *
12
- * Config flags (override .env):
13
- * --gemini-key <key> Gemini API key
14
- * --firebase-key <key> Firebase API key
15
- * --firebase-project <id> Firebase project ID
16
- * --firebase-bucket <bucket> Firebase storage bucket
17
- * --firebase-domain <domain> Firebase auth domain
18
- *
19
- * Options:
20
- * --name <name> Your name (skips interactive prompt)
21
- * --model <id> Gemini model (default: gemini-2.5-flash)
22
- * --skip-upload Skip Firebase Storage uploads
23
- * --force-upload Upload even if remote file exists
24
- * --no-storage-url Disable Storage URL strategy for Gemini
25
- * --skip-compression Skip video compression (use existing segments)
26
- * --skip-gemini Skip Gemini AI analysis
27
- * --resume Resume from last checkpoint
28
- * --reanalyze Force re-analysis of all segments
29
- * --parallel <n> Max parallel uploads (default: 3)
30
- * --parallel-analysis <n> Max concurrent Gemini analyses (default: 2)
31
- * --thinking-budget <n> Gemini thinking token budget
32
- * --compilation-thinking-budget <n> Compilation thinking budget
33
- * --log-level <level> Log level: debug, info, warn, error
34
- * --output <dir> Custom output directory
35
- * --dry-run Show what would be done without executing
36
- * --dynamic Document-only mode (no video required)
37
- * --deep-dive Generate deep-dive documents after analysis
38
- * --request <text> Custom research prompt for deep-dive/dynamic
39
- * --update-progress Smart change detection & progress update
40
- * --repo <path> Git repo path for progress tracking
41
- * --no-focused-pass Disable focused re-analysis pass
42
- * --no-learning Disable learning loop
43
- * --no-diff Disable diff against previous run
44
- * --help, -h Show help
45
- * --version, -v Show version
46
- *
47
- * Project structure:
48
- * src/
49
- * config.js — Environment-based config with validation
50
- * logger.js — Buffered dual-file logger with levels
51
- * pipeline.js — Main orchestrator with CLI flags & progress
52
- * services/
53
- * firebase.js — Firebase init, upload with retry, exists checks
54
- * gemini.js — Gemini init, segment analysis with retry
55
- * git.js — Git CLI wrapper for change detection
56
- * video.js — ffmpeg compression, segmentation, probing
57
- * renderers/
58
- * markdown.js — Action-focused Markdown renderer
59
- * utils/
60
- * adaptive-budget.js — Transcript complexity → thinking budget
61
- * change-detector.js — Git + document change correlation engine
62
- * cli.js — CLI argument parser & interactive prompts
63
- * context-manager.js — Smart context prioritization for Gemini
64
- * cost-tracker.js — Model-specific token cost tracking
65
- * deep-dive.js — AI topic discovery & document generation
66
- * diff-engine.js — Compilation diff between runs
67
- * dynamic-mode.js — Document-only analysis mode
68
- * focused-reanalysis.js — Second-pass extraction for weak dimensions
69
- * format.js — Duration/size formatting helpers
70
- * fs.js — Recursive file discovery
71
- * health-dashboard.js — Quality report builder
72
- * json-parser.js — Robust JSON extraction from AI output
73
- * learning-loop.js — Cross-run history & trend analysis
74
- * progress.js — Pipeline checkpoint/resume persistence
75
- * progress-updater.js — Smart progress assessment & rendering
76
- * prompt.js — Interactive CLI prompts (stdin/stdout)
77
- * quality-gate.js — Multi-dimension confidence scoring
78
- * retry.js — Exponential backoff retry with parallelMap
12
+ * Run `taskex --help` for full CLI reference.
79
13
  */
80
-
81
- 'use strict';
82
-
83
- // ── Inject CLI config flags into process.env ──────────────────────────────
84
- // Must run BEFORE any require() that touches config.js / dotenv
85
- const { injectCliFlags } = require('./src/utils/inject-cli-flags');
86
- injectCliFlags();
87
-
88
- // ── Delegate to pipeline ──────────────────────────────────────────────────
89
- const { run, getLog } = require('./src/pipeline');
90
-
91
- run().catch(err => {
92
- // showHelp() throws with code HELP_SHOWN — clean exit, not an error
93
- if (err.code === 'HELP_SHOWN' || err.code === 'VERSION_SHOWN') {
94
- process.exit(0);
95
- }
96
-
97
- const log = getLog();
98
- if (log) {
99
- log.error(`FATAL: ${err.message || err}`);
100
- log.error(err.stack || '');
101
- log.step('FAILED');
102
- log.close();
103
- }
104
- process.stderr.write(`\nFATAL: ${err.message || err}\n`);
105
- process.stderr.write(`${err.stack || ''}\n`);
106
- process.exit(1);
107
- });
14
+ require('./bin/taskex');