@llm-newsletter-kit/core 2.0.0 → 2.0.2
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 +11 -4
- package/package.json +20 -20
package/README.md
CHANGED
|
@@ -29,7 +29,7 @@ This project originated from a **Korean cultural heritage newsletter service** c
|
|
|
29
29
|
|
|
30
30
|
It was architected by **Kim Hongyeon**, a unique **archaeologist-turned-software engineer**. Driven by a question he held for over a decade—***"Why must research be such grueling manual labor?"***—he combined his domain expertise with 10+ years of engineering experience to solve this problem.
|
|
31
31
|
|
|
32
|
-
After completing an academic research project on [A Study on Archaeological Informatization Using Large Language Models (LLMs)](https://poc.heripo.
|
|
32
|
+
After completing an academic research project on [A Study on Archaeological Informatization Using Large Language Models (LLMs)](https://poc.heripo.org), a personal automation script created to keep up with academic trends evolved into a service with a high engagement rate (15% CTR) and near-zero maintenance cost.
|
|
33
33
|
|
|
34
34
|
**Real-world production metrics:**
|
|
35
35
|
- **LLM API cost:** $0.2-1 USD per issue with optimized model usage
|
|
@@ -44,7 +44,7 @@ His design philosophy: **"Logic in code, reasoning in AI, connections in archite
|
|
|
44
44
|
- **Research Radar (Reference Implementation):** A real-world application built with this Core. It serves as a live demo and a "preset" for how to implement the providers.
|
|
45
45
|
|
|
46
46
|
**Quick Links**
|
|
47
|
-
- Research Radar (Live Service): https://heripo.
|
|
47
|
+
- Research Radar (Live Service): https://heripo.app/research-radar/subscribe
|
|
48
48
|
- Source Code (Usage Example): https://github.com/heripo-lab/heripo-research-radar
|
|
49
49
|
|
|
50
50
|
## Why Code-Based?
|
|
@@ -58,7 +58,7 @@ Newsletter automation generally falls into two approaches: no-code and code-base
|
|
|
58
58
|
- **Production-grade**: Type-safe contracts, 100% test coverage, CI/CD integration, and observability built-in
|
|
59
59
|
|
|
60
60
|
**Real-world output example:**
|
|
61
|
-
See the quality for yourself—an actual newsletter generated by this kit: https://heripo.
|
|
61
|
+
See the quality for yourself—an actual newsletter generated by this kit: https://heripo.app/research-radar-newsletter-example.html
|
|
62
62
|
|
|
63
63
|
**Trade-off:** Higher initial setup complexity vs. no-code. This kit mitigates it with strong types, IDE autocompletion, sensible defaults, and a complete reference implementation.
|
|
64
64
|
|
|
@@ -249,6 +249,13 @@ For academic papers or research documentation, you may use the following BibTeX
|
|
|
249
249
|
}
|
|
250
250
|
```
|
|
251
251
|
|
|
252
|
+
## Sponsor
|
|
253
|
+
|
|
254
|
+
If you’d like to support heripo lab's open-source research, you can sponsor us through:
|
|
255
|
+
|
|
256
|
+
- [Open Collective](https://opencollective.com/heripo-project) for general project sponsorship.
|
|
257
|
+
- [fairy.hada.io/@heripo](https://fairy.hada.io/@heripo) for Korean individual supporters who prefer KRW payments.
|
|
258
|
+
|
|
252
259
|
## License
|
|
253
260
|
|
|
254
|
-
Apache-2.0 © 2025-present kimhongyeon. See LICENSE and NOTICE for details.
|
|
261
|
+
Apache-2.0 © 2025-present kimhongyeon. See LICENSE and NOTICE for details.
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@llm-newsletter-kit/core",
|
|
3
3
|
"private": false,
|
|
4
4
|
"type": "module",
|
|
5
|
-
"version": "2.0.
|
|
5
|
+
"version": "2.0.2",
|
|
6
6
|
"description": "An extensible framework to automate your entire newsletter workflow. Handles data collection, LLM-based content analysis, and email generation, letting you focus on your unique domain logic.",
|
|
7
7
|
"main": "dist/index.cjs",
|
|
8
8
|
"module": "dist/index.js",
|
|
@@ -48,36 +48,36 @@
|
|
|
48
48
|
"author": "kimhongyeon",
|
|
49
49
|
"license": "Apache-2.0",
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@langchain/core": "^1.1.
|
|
52
|
-
"ai": "^6.0.
|
|
53
|
-
"es-toolkit": "^1.
|
|
54
|
-
"jsdom": "^29.
|
|
51
|
+
"@langchain/core": "^1.1.46",
|
|
52
|
+
"ai": "^6.0.184",
|
|
53
|
+
"es-toolkit": "^1.46.1",
|
|
54
|
+
"jsdom": "^29.1.1",
|
|
55
55
|
"juice": "^11.1.1",
|
|
56
|
-
"safe-markdown2html": "^1.0.
|
|
57
|
-
"zod": "^4.3
|
|
56
|
+
"safe-markdown2html": "^1.0.4",
|
|
57
|
+
"zod": "^4.4.3"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
|
-
"@ai-sdk/anthropic": "^3.0.
|
|
61
|
-
"@ai-sdk/google": "^3.0.
|
|
62
|
-
"@ai-sdk/openai": "^3.0.
|
|
63
|
-
"@ai-sdk/togetherai": "^2.0.
|
|
60
|
+
"@ai-sdk/anthropic": "^3.0.78",
|
|
61
|
+
"@ai-sdk/google": "^3.0.75",
|
|
62
|
+
"@ai-sdk/openai": "^3.0.64",
|
|
63
|
+
"@ai-sdk/togetherai": "^2.0.51",
|
|
64
64
|
"@eslint/js": "^10.0.1",
|
|
65
65
|
"@trivago/prettier-plugin-sort-imports": "^6.0.2",
|
|
66
|
-
"@types/jsdom": "^28.0.
|
|
67
|
-
"@types/node": "^25.
|
|
68
|
-
"@vitest/coverage-v8": "^4.1.
|
|
69
|
-
"@vitest/expect": "^4.1.
|
|
70
|
-
"eslint": "^10.
|
|
66
|
+
"@types/jsdom": "^28.0.3",
|
|
67
|
+
"@types/node": "^25.8.0",
|
|
68
|
+
"@vitest/coverage-v8": "^4.1.6",
|
|
69
|
+
"@vitest/expect": "^4.1.6",
|
|
70
|
+
"eslint": "^10.4.0",
|
|
71
71
|
"eslint-plugin-unused-imports": "^4.4.1",
|
|
72
72
|
"prettier": "^3.8.3",
|
|
73
73
|
"rimraf": "^6.1.3",
|
|
74
|
-
"rollup": "^4.60.
|
|
74
|
+
"rollup": "^4.60.4",
|
|
75
75
|
"rollup-plugin-dts": "^6.4.1",
|
|
76
76
|
"rollup-plugin-typescript2": "^0.37.0",
|
|
77
|
-
"tsx": "^4.
|
|
77
|
+
"tsx": "^4.22.1",
|
|
78
78
|
"typescript": "^6.0.3",
|
|
79
|
-
"typescript-eslint": "^8.
|
|
80
|
-
"vitest": "^4.1.
|
|
79
|
+
"typescript-eslint": "^8.59.3",
|
|
80
|
+
"vitest": "^4.1.6"
|
|
81
81
|
},
|
|
82
82
|
"repository": {
|
|
83
83
|
"type": "git",
|