Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
353 commits
Select commit Hold shift + click to select a range
b7a9daa
fix: add getZapSenderPubkey function to extract zapper pubkey from NI…
Aug 28, 2025
9fd7735
fix: implement LLM-based personalized zap thanks messages with fallba…
Aug 28, 2025
f5e5334
fix: clarify sender information in buildZapThanksPrompt to include us…
Aug 28, 2025
7d1eb6c
feat: refactor key parsing and event building helpers for improved te…
Aug 28, 2025
86a5f18
Add tests for plugin-nostr entrypoint and configure Vitest
Aug 28, 2025
41d100a
feat: extract discovery helpers into separate module for improved tes…
Aug 28, 2025
3998129
feat: add contacts and discovery modules with associated tests for im…
Aug 28, 2025
8232b7a
feat: implement buildZapThanksPost function for structured zap thanks…
Aug 28, 2025
776ae4d
feat: add context and generation modules with associated tests for im…
Aug 28, 2025
01c371f
feat: update character to reference main monorepo
Aug 29, 2025
3f663a7
feat: add open source pride to Pixel's bio
Aug 29, 2025
e5249e0
feat: implement quality-first discovery algorithm
anabelle Aug 29, 2025
b05bb1f
docs: add quality-first discovery configuration options
anabelle Aug 29, 2025
3aa265c
feat: enhance discovery logging for quality-first algorithm
anabelle Aug 29, 2025
0f99f85
fix: pin @elizaos/plugin-telegram to exact version 1.0.10
anabelle Aug 29, 2025
556a718
Fix MaxListenersExceededWarning for WebSocket pong listeners
anabelle Aug 29, 2025
bdddabd
chore: update character.ts and prepare for release
anabelle Aug 29, 2025
2fa1b0a
feat: disable shell plugin for security
anabelle Aug 29, 2025
c8da464
docs: complete README overhaul with comprehensive agent documentation
anabelle Aug 29, 2025
e2b0ced
docs: update server operations with monitoring system
anabelle Aug 29, 2025
6e4064e
feat: add socket.io-client dependency and implement basic testing fra…
Aug 29, 2025
30c8e66
feat: fix text generation by removing optional chaining and enhancing…
Aug 29, 2025
204481a
feat: implement pixel purchase event handling with text generation an…
Aug 29, 2025
6d88e2d
feat: enhance pixel event handling with deduplication and memory mana…
Aug 29, 2025
b0d5007
feat: implement cross-process persistent deduplication for pixel even…
Aug 29, 2025
5f65ec4
feat: implement anti-spam mechanism for pixel posts with throttling a…
Aug 29, 2025
ca6084e
feat: enhance pixel event handling with memory management and improve…
Aug 29, 2025
4207a2a
feat: enhance memory handling with unique ID generation for LNPixels …
Aug 29, 2025
fac55ad
feat: implement LNPixels context management and improve memory handli…
Aug 29, 2025
308471c
feat: update memory handling to use 'messages' table for LNPixels con…
Aug 29, 2025
171782e
feat: enhance deduplication handling for pixel posts and update stati…
Aug 29, 2025
223f444
feat: enhance pixel event handling with suppression logic for schedul…
Aug 29, 2025
00a8e35
fix: align dedupe key generation between listener and service
Aug 29, 2025
f931498
debug: add detailed logging for duplicate post investigation
Aug 29, 2025
07710b1
fix: prevent duplicate posts by filtering payment-only events
Aug 29, 2025
97380ac
feat: enhance pixel purchase prompts with bulk purchase support and g…
Aug 29, 2025
5549dff
feat: distinct messaging for single vs bulk pixel purchases
Aug 29, 2025
92c54f7
fix: update pixel bought prompt to differentiate between bulk and sin…
Aug 29, 2025
540caf1
Fix bulk purchase coordinate appending
Aug 29, 2025
f937af3
CRITICAL: Fix duplicate posts by blocking ALL payment events
Aug 29, 2025
8c3e0cd
CRITICAL: Fix bulk purchase spam by rejecting individual pixels
Aug 29, 2025
7cd14e6
fix: enhance whitelist messaging and add zap strategy nuances in prompts
Aug 30, 2025
26defd0
feat: add diary entry for Anabelle's posts on Aug 29, 2025
Aug 30, 2025
1e7f48b
fix: refine reply prompt constraints to encourage a more mysterious a…
Aug 30, 2025
2767a3f
fix: improve reply prompt by enforcing stricter formatting rules for …
Aug 30, 2025
63e5ab1
Add emdash sanitization to prevent — in Nostr replies
anabelle Aug 30, 2025
44d3128
feat: implement home feed interactions and unfollow management in Nos…
Sep 1, 2025
171e7cd
Merge branch 'master' of github.com:anabelle/pixel-agent
Sep 1, 2025
2457948
Update sanitizer to allow official GitHub repo URLs
Sep 1, 2025
d737a3d
Fix duplicate replies by checking home feed processed events
Sep 1, 2025
88605f3
feat: implement real followers count for social metrics
Sep 1, 2025
4be14df
feat: enable unfollowing and adjust quality score thresholds for bett…
Sep 1, 2025
d1e81eb
feat: Add Nostr DM support with encrypted messaging and reply functio…
Sep 1, 2025
b3f206e
feat: Implement manual NIP-04 DM encryption/decryption
Sep 1, 2025
ceff7bf
feat: Add console warning for successful fallback NIP-04 decryption
Sep 1, 2025
da7e757
fix: Change console warning to info for successful fallback NIP-04 de…
Sep 1, 2025
6f74dcb
fix: Remove console info log for successful fallback NIP-04 decryption
Sep 1, 2025
c30b4f4
feat: Implement manual NIP-04 encryption and decryption functions wit…
Sep 1, 2025
7f90c5a
fix: Improve error handling for NIP-04 encryption fallback to nostr-t…
Sep 1, 2025
f6d82a7
feat: Add DM-specific reply prompt for concise and private responses
Sep 1, 2025
6c7504b
fix: Enhance DM memory handling with persistent deduplication and inc…
Sep 1, 2025
074a2fa
fix: Include decrypted content in DM reply scheduling and generation
Sep 1, 2025
17689d2
Update links from lnpixels.qzz.io to ln.pixel.xx.kg across documentat…
Sep 2, 2025
c3412f0
fix: Update LNPixels URL references for consistency across documentat…
Sep 2, 2025
1528c90
feat: Add diary entries for Aug 30 and Aug 31, 2025, documenting pixe…
Sep 2, 2025
40f572a
fix: Invalidate social metrics cache when publishing contacts to ensu…
Sep 2, 2025
454ed76
feat: Enhance selectFollowCandidates to support options and improve c…
Sep 2, 2025
87852d0
fix: Update unfollow settings for improved user experience and flexib…
Sep 2, 2025
35ae28e
nostr: accept bulk summary events; dedupe by payment/quote; include p…
Sep 2, 2025
05b053f
feat: Optimize relay selection and event listing to reduce duplicate …
Sep 2, 2025
dd75514
feat: add comprehensive database backup system
anabelle Sep 2, 2025
1f93e5f
feat: enhance buildQuoteRepost to use clean Primal links and improve …
Sep 2, 2025
39453cf
Fix NOSTR mention reply blocking and home feed processing
Sep 2, 2025
139329b
feat: update character persona to emphasize action over philosophy an…
Sep 2, 2025
3dea1bc
Refactor punctuation and improve clarity in documentation and code co…
Sep 3, 2025
4b14317
fix: update sanitizeWhitelist to replace emdashes and endashes for im…
Sep 3, 2025
1626dc0
feat: implement pixel activity tracking with deduplication and thrott…
Sep 3, 2025
df13c6e
fix: Correct Nostr event routing to handle mentions and DMs properly
Sep 4, 2025
801acd8
feat: add comprehensive tests for NostrService event routing and hand…
Sep 4, 2025
5ac18f4
feat: implement comprehensive mute list support in Nostr plugin; add …
Sep 4, 2025
ab74013
feat: enhance mute list loading in NostrService; implement deduplicat…
Sep 4, 2025
3fe1294
feat: implement thread context awareness in NostrService; enhance eng…
Sep 4, 2025
c236af7
feat: implement connection monitoring and automatic reconnection in N…
Sep 4, 2025
2d48ab4
feat: implement NIP-21 & NIP-18 support, remove primal.net dependencies
anabelle Sep 8, 2025
53c98d7
feat: enable Twitter plugin in character configuration
anabelle Sep 13, 2025
8797810
fix: improve feedback responses and add accurate UX info
anabelle Sep 13, 2025
5e42e6b
fix: prevent assuming questions are about Pixel
anabelle Sep 13, 2025
c794620
fix: update OpenRouter model configurations
anabelle Sep 13, 2025
8401cf0
feat: enhance Nostr moderation with LLM account analysis and content …
anabelle Sep 19, 2025
2556e40
fix: resolve Twitter provider errors on startup
anabelle Sep 19, 2025
e39c068
fix: update GitHub links to blob/main and refresh model configs
anabelle Sep 24, 2025
2ee6c6a
docs: clean up source links to use simple repo URLs
anabelle Sep 24, 2025
7c56ada
Add session reflection to Sep 24 diary
anabelle Sep 25, 2025
68bed97
feat: re-enable Discord, add Instagram plugin, fix Nostr deduplication
anabelle Sep 28, 2025
9412625
sep 28 diary
anabelle Sep 28, 2025
771a774
chore: update ElizaOS dependencies to v1.5.15 and refactor Nostr plug…
anabelle Sep 28, 2025
6f92e51
feat: enhance image vision processing for Nostr
anabelle Sep 29, 2025
130e6ba
fix: add persistent memory for handled events and image context
anabelle Sep 29, 2025
3f84bda
feat: add image awareness to home feed quote reposts
anabelle Sep 29, 2025
2883219
refactor: extract character.ts sections into subfiles for better modu…
anabelle Sep 29, 2025
f03a4ac
feat: add bot filtering to prevent event loops and reduce noise in No…
anabelle Sep 29, 2025
d631b14
feat: add configurable date-based filtering for old mentions and disc…
anabelle Sep 29, 2025
717d33b
Reduce spam: interaction limits, LLM relevance, less frequent posting…
anabelle Oct 5, 2025
71967fa
feat: update default OPENROUTER_MODEL to deepseek-r1t2-chimera
anabelle Oct 5, 2025
02d235f
feat: add relevance check for mentions to skip irrelevant responses
anabelle Oct 5, 2025
4e4ba9a
feat: add interaction limits to repost/quote repost and fix logging c…
anabelle Oct 5, 2025
46e70cf
Update Oct 5 diary with mention relevance fixes and home feed scatter…
anabelle Oct 5, 2025
2bda8fb
Remove generic fallback replies and implement retry mechanism for LLM…
anabelle Oct 5, 2025
3b42f4f
Remove 'ack.' fallback from buildReplyNote and add error handling for…
anabelle Oct 6, 2025
67b82f6
Increase reply maxTokens from 192 to 256 to prevent end-truncation
anabelle Oct 6, 2025
ceba336
Reduce posting frequency: increase intervals and reduce max replies
anabelle Oct 6, 2025
33d0f49
Enhance quote repost prompt and fallback for more engaging, varied re…
anabelle Oct 6, 2025
77557dc
Remove fallback phrases from quote reposts - only use generated conte…
anabelle Oct 6, 2025
76a2d6a
Make reposts and quote reposts rare by reducing chances to 0.5% and 0.1%
anabelle Oct 6, 2025
4b4abc1
Add LLM relevancy check for reposts to ensure only cool stuff is repo…
anabelle Oct 6, 2025
33e2628
Reduce home feed events processed per run to 1 to prevent batching
anabelle Oct 6, 2025
89f7b66
Revert home feed events to 20, reduce discovery replies per run to 1
anabelle Oct 6, 2025
bf378f7
Add short, simple reply examples for variety and less repetition
anabelle Oct 6, 2025
842fac7
Update diary for Oct 5 with latest reply variety changes
anabelle Oct 6, 2025
f7567b6
Refine Nostr service interaction handling
Oct 7, 2025
1585cea
Update mention detection to include root p-tag references
Oct 7, 2025
e942cac
Add nprofile mention detection to _isActualMention
Oct 7, 2025
08b26bc
Enhance logging for mention checks in NostrService to improve traceab…
Oct 7, 2025
08a2bfd
Make relevance check less strict - default to YES for real human mess…
Oct 7, 2025
4eb4352
feat: Implement centralized posting queue for natural rate limiting
Oct 7, 2025
a1a9a43
fix: Add null checks for LLM generation failures to prevent crashes
Oct 7, 2025
7ff37a2
feat: Enhance logging for LLM generation and reply prompt building fo…
Oct 7, 2025
3ee53ea
feat: Implement user quality score tracking and updating mechanism
Oct 7, 2025
7abeb70
feat: Enhance event tracking for quality scoring and prevent memory l…
Oct 7, 2025
c39da9a
feat: Add comprehensive debug logging for home feed LLM analysis
Oct 7, 2025
20810e8
docs: Update Oct 7 diary with home feed LLM analysis revelation
Oct 7, 2025
60b5be1
Add tests for Context Accumulator and LLM narrative generation
Oct 8, 2025
292e85d
feat: Enable LLM-based analysis for topic extraction and sentiment an…
Oct 8, 2025
b133a20
feat: Implement Semantic Analyzer for LLM-powered semantic understanding
Oct 8, 2025
14e13b0
feat: Enhance Context Accumulator and NostrService with user profile …
Oct 8, 2025
379169b
feat: Implement Narrative Context Provider for enhanced narrative int…
Oct 8, 2025
424fe41
feat: Implement system context management across multiple modules for…
Oct 8, 2025
519fdac
feat: Enhance Nostr context system with additional metadata for impro…
Oct 8, 2025
7c1af09
feat: implement SelfReflectionEngine for analyzing interaction qualit…
Oct 8, 2025
dfc20b2
feat: enhance topic extraction logic with detailed source tracking an…
Oct 8, 2025
9c1e7c7
feat: expand memory system documentation with detailed architecture a…
Oct 8, 2025
b83ac63
feat: enhance ContextAccumulator with configurable daily event limits…
Oct 8, 2025
b5d2e4f
feat: implement real-time analysis system with adaptive sampling and …
Oct 8, 2025
0043000
feat: refine topic filtering and enhance response criteria for conten…
Oct 8, 2025
d8faf36
feat: enhance thread fetching logic to build complete context from ro…
Oct 8, 2025
c2ff719
feat: rewrite diary entry to reflect enhanced memory and contextual u…
Oct 8, 2025
60b5576
feat: add daily digest post generation and handling logic for communi…
Oct 8, 2025
2b2b2df
feat: enhance PostingQueue with active ID tracking and improved proce…
Oct 8, 2025
a0e484b
feat: implement configurable thread context fetching with enhanced ev…
Oct 8, 2025
ee1fe5d
feat: enhance topic extraction with LLM support and add user history …
Oct 8, 2025
c2d474c
feat: enhance topic extraction with improved LLM prompt and filtering…
Oct 8, 2025
a291c90
feat: update small model configuration to use GPT-4o-mini
Oct 8, 2025
07f6c12
feat: enhance topic extraction debugging and update small model confi…
anabelle Oct 8, 2025
5ea1176
feat: update small model configuration to use GPT-5-mini
anabelle Oct 8, 2025
4ef2a79
feat: enhance LLM processing parameters for sentiment and topic extra…
Oct 8, 2025
590d11b
nostr/hourly: incorporate topic diversity metrics (unique topics, con…
Oct 8, 2025
97cb609
feat: add topic analysis and narrative summarization configuration; d…
Oct 8, 2025
703fc3a
feat: enhance topic extraction with stricter filtering and none handling
anabelle Oct 9, 2025
96a9cee
feat: add configurable thresholds for emerging topic detection and co…
Oct 9, 2025
93fc91d
feat: update prompt format to include <POST_TO_ANALYZE> tags for cont…
Oct 9, 2025
d5aefc3
feat: refine topic extraction rules to improve accuracy in identifyin…
Oct 9, 2025
a62c000
feat: enhance topic extraction logic by adding options for full sente…
Oct 9, 2025
40c4b66
feat: enhance logging in topic extraction and home feed event handlin…
Oct 9, 2025
68d7ccf
Add NOSTR_SELF_REFLECTION_ENABLE setting to character configuration
anabelle Oct 9, 2025
5a24155
feat: add method to aggregate top topics across hours with configurab…
Oct 9, 2025
dac1a47
Merge branch 'master' of https://github.com/anabelle/pixel-agent
Oct 9, 2025
05bd970
feat: Add image processing to all reply scenarios
anabelle Oct 9, 2025
ad93f0e
feat: Add author recent posts context to reply prompts and enhance ca…
Oct 9, 2025
d1c9c4f
feat: Implement timeline lore management with buffering and processin…
Oct 9, 2025
6b89cd8
feat: Enhance timeline lore processing with improved logging and fall…
Oct 9, 2025
09e93f5
feat: Improve timeline lore candidate consideration with enhanced log…
Oct 9, 2025
c47587f
feat: Add context accumulator and LLM analysis settings to configuration
Oct 9, 2025
9874f28
feat: Enhance timeline lore processing with HTML stripping and JSON e…
Oct 9, 2025
86615f1
feat: Enhance reply and post prompt builders with timeline lore integ…
Oct 9, 2025
c77b2f6
feat: Increase timeline lore batch size from 10 to 50 for improved pr…
Oct 9, 2025
aa967c1
feat(lore): enhance narrative continuity and adaptive triggering
Oct 9, 2025
aabc07a
feat: Implement Phase 4 Watchlist Monitoring
Oct 9, 2025
fa9b903
feat: Enhance proactive discovery by prioritizing watchlist topics in…
Oct 9, 2025
9ae4435
feat(diary): Add comprehensive entry on predictive agency and watchli…
Oct 9, 2025
e629e26
feat: Enhance specificity in narrative analysis and watchlist guideli…
Oct 9, 2025
a3092c9
feat: Prioritize recent posts in timeline lore generation and add war…
Oct 9, 2025
a37ddbd
feat: Allow topics to be returned one per line or separated by commas…
Oct 9, 2025
dcf27fc
feat: Simplify topic extraction logic by unifying LLM and keyword-bas…
Oct 9, 2025
a804f4d
feat: Revise timeline lore prompt for clarity and specificity, emphas…
Oct 9, 2025
393517d
feat: Enhance topic extraction by refining filtering logic and adding…
Oct 9, 2025
e8eecef
feat: Enhance topic extraction by adding a sanitize function for hash…
Oct 9, 2025
ff55786
feat: Add noise token filtering to improve topic extraction accuracy …
Oct 9, 2025
e271706
feat: Enhance topic extraction by prioritizing LLM cleaned topics and…
Oct 9, 2025
86040d9
feat: Update response handling in topic extraction to support string …
Oct 9, 2025
8b19d16
feat: Add awareness post prompt builder and integrate awareness dry-r…
Oct 9, 2025
d34fed8
feat: Enhance awareness post prompt with timeline lore, recent digest…
Oct 9, 2025
58ec7da
feat: Add debugging capabilities for context data with detailed memor…
Oct 9, 2025
efc46e8
feat: Enhance LLM analysis configuration and improve recent digest ha…
Oct 9, 2025
febdf24
feat: Enhance awareness prompt by including self-reflection insights …
Oct 9, 2025
7720769
feat: Add initial self-reflection run on startup for immediate prompt…
Oct 9, 2025
865847c
feat: Implement startup warm-up for context with hourly digest and da…
Oct 9, 2025
f9d794e
feat: Add recent home feed samples ring buffer for debugging and awar…
Oct 9, 2025
8e09251
feat: Enhance memory retrieval by expanding message count and adding …
Oct 9, 2025
7b49867
feat: Enhance user profile summaries with fallback summaries and enga…
Oct 9, 2025
30a68bc
feat: Add community snapshot with narrative arcs and watchlist state …
Oct 9, 2025
c0bf11d
feat: Add compact context hints for posts and replies to enhance user…
Oct 9, 2025
3805f04
feat: Enhance awareness post generation with detailed context and deb…
Oct 9, 2025
64d7793
feat: Integrate LLM-based reflection generation with improved error h…
Oct 10, 2025
c0810f1
feat: Introduce configurable topic extraction limits for improved con…
Oct 10, 2025
b514fd8
feat: Append detailed memory dump to post and reply prompts for enhan…
Oct 10, 2025
ef4756d
feat: Add support for emerging stories with sentiment analysis in con…
Oct 10, 2025
7e51cef
Add integration and verification tests for emerging_story memory hand…
Oct 10, 2025
a914120
Remove integration tests for emerging stories and related functionali…
Oct 10, 2025
f877200
Remove outdated testing and documentation files for the Nostr plugin,…
Oct 10, 2025
2db79ab
refactor: Improve topic extraction prompts for clarity and specificit…
Oct 10, 2025
7a3cf68
feat: Implement optimized topic extraction with batching and caching,…
Oct 10, 2025
25c9d88
feat: Enhance topic extraction by integrating context accumulation an…
Oct 10, 2025
fcf8741
feat: Enhance topic extraction by building continuous context from ho…
Oct 10, 2025
79149ce
feat: Improve batch processing logic in TopicExtractor to enhance eve…
Oct 10, 2025
5569a8d
feat: Update batching configuration in TopicExtractor for improved ev…
Oct 10, 2025
ac29feb
feat: Update destroyTopicExtractor to flush pending events before des…
Oct 10, 2025
c5b4206
feat: Revise topic extraction prompts for clarity and specificity in …
Oct 10, 2025
c71578c
refactor: Move TOPIC_LIST_LIMIT declaration outside of buildPostPromp…
Oct 10, 2025
67b9a3a
feat: Enhance buildPostPrompt and generatePostTextLLM to support sche…
Oct 10, 2025
e2edc8d
feat: Add memory stats logging and a method to report memory/cache sn…
Oct 10, 2025
46a675d
feat: Enhance timeline lore handling and logging across various conte…
Oct 10, 2025
f169eb6
feat: Update timeline lore limit and enhance lore formatting for impr…
Oct 10, 2025
54684e3
feat: Improve timeline lore retrieval with enhanced fallback mechanis…
Oct 10, 2025
1c894d9
feat: Add JSON repair functionality to enhance robustness in parsing …
Oct 10, 2025
6a52170
feat: Adjust memory dump logging to prevent log truncation by reposit…
Oct 10, 2025
0653464
feat: Update debug headers and prompts to emphasize context and origi…
Oct 13, 2025
13358ee
Add historical context to timeline lore generation to prevent repetit…
Copilot Oct 13, 2025
2ec5064
Implement Novelty-Based Candidate Scoring to Reduce Repetitive Conten…
Copilot Oct 13, 2025
87cb3bb
Fix inconsistent mute list filtering in homefeed realtime events (#14)
Copilot Oct 13, 2025
0d0570b
Integrate continuity analysis into candidate selection pipeline (#17)
Copilot Oct 13, 2025
bfa8bda
Add Longitudinal Analysis to Self-Reflection Engine (#18)
Copilot Oct 13, 2025
77f795b
Redesign LLM Prompts for Evolution-Aware Timeline Lore Analysis (#19)
Copilot Oct 13, 2025
c19dfb7
feat(nostr): contextual topic evolution + narrative scoring integrati…
anabelle Oct 13, 2025
d333b70
Adaptive trending for Nostr: velocity + novelty + baseline (Closes #6…
anabelle Oct 13, 2025
81e4ef2
fix(narrativeMemory): improve filtering of recent digest summaries fo…
Oct 13, 2025
f96cc32
fix(nostr): update posting queue delay settings to 15min and 30min de…
Oct 13, 2025
915ee0b
fix(narrativeMemory): increase recent digest summaries retrieval from…
Oct 13, 2025
a06af92
feat(narrativeMemory): enhance recent digest summaries with additiona…
Oct 13, 2025
7c1f2e2
refactor(tests): remove test-enhanced-context.js file
Oct 13, 2025
b4f7200
fix(selfReflection): enhance self-reflection output with critical beh…
Oct 13, 2025
54a2fcd
fix(nostr): update output requirements to enforce JSON-only responses…
Oct 13, 2025
83e0b5b
feat: Implement adaptive storyline progression and emerging-pattern d…
anabelle Oct 13, 2025
ecd452d
Fix home feed interaction probabilities (Issue #24) (#30)
anabelle Oct 14, 2025
2d2ebd0
Implement Content Freshness Decay Algorithm for Timeline Diversity (#32)
Copilot Oct 15, 2025
9b22391
ci: run plugin-nostr vitest on all PRs (Fixes #34) (#35)
anabelle Oct 15, 2025
4359474
feat: enable code coverage reporting for plugin-nostr tests (#38)
anabelle Oct 15, 2025
e9696f5
Add comprehensive test coverage for userProfileManager.js (29.80% → 1…
Copilot Oct 15, 2025
2f95b65
Add comprehensive test coverage for contextAccumulator.js
Copilot Oct 15, 2025
6a1806b
Fix test imports to match project conventions and add coverage summary
Copilot Oct 15, 2025
3201a93
Add comprehensive test documentation for contextAccumulator coverage
Copilot Oct 15, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 66 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# Knowledge Plugin defaults
# Uncomment to auto-load documents from ./docs on startup
# LOAD_DOCS_ON_STARTUP=true
# Set a custom knowledge path (defaults vary by setup). Point to docs/knowledge here.
# KNOWLEDGE_PATH=./docs/knowledge

# Enhanced contextual knowledge (optional for better accuracy and lower cost with caching)
# CTX_KNOWLEDGE_ENABLED=true
# TEXT_PROVIDER=openrouter
# TEXT_MODEL=anthropic/claude-3.5-sonnet
# OPENROUTER_API_KEY=your-openrouter-api-key

# Existing provider keys (if you use them)
# OPENAI_API_KEY=
# GOOGLE_GENERATIVE_AI_API_KEY=
# TELEGRAM_BOT_TOKEN=
# DISCORD_API_TOKEN=

# Nostr Configuration
# NOSTR_PRIVATE_KEY=nsec1...
# NOSTR_PUBLIC_KEY=npub1...
# NOSTR_RELAYS=wss://relay.damus.io,wss://nos.lol,wss://relay.snort.social
# NOSTR_POST_ENABLE=true
# NOSTR_REPLY_ENABLE=true
# NOSTR_DISCOVERY_ENABLE=true
# NOSTR_MAX_WS_LISTENERS=64

# Quality-first discovery settings (improves interaction frequency)
# NOSTR_DISCOVERY_MIN_QUALITY_INTERACTIONS=1 # Minimum quality interactions required per run
# NOSTR_DISCOVERY_MAX_SEARCH_ROUNDS=3 # Maximum search rounds to attempt
# NOSTR_DISCOVERY_STARTING_THRESHOLD=0.6 # Initial quality threshold (0.0-1.0)
# NOSTR_DISCOVERY_THRESHOLD_DECREMENT=0.05 # How much to lower threshold per reply
# NOSTR_DISCOVERY_QUALITY_STRICTNESS=normal # normal, strict, or relaxed

# Content freshness decay (down-weights recently covered topics)
# NOSTR_FRESHNESS_DECAY_ENABLE=true # Enable freshness decay penalty (default: true)
# NOSTR_FRESHNESS_LOOKBACK_HOURS=24 # Hours to look back for topic mentions (default: 24)
# NOSTR_FRESHNESS_LOOKBACK_DIGESTS=3 # Number of recent digests to check tags (default: 3)
# NOSTR_FRESHNESS_MENTIONS_FULL_INTENSITY=5 # Mentions needed for full intensity penalty (default: 5)
# NOSTR_FRESHNESS_MAX_PENALTY=0.4 # Maximum penalty factor 0-1 (default: 0.4 = 40%)
# NOSTR_FRESHNESS_SIMILARITY_BUMP=0.05 # Extra penalty if topic in recent tags (default: 0.05)
# NOSTR_FRESHNESS_NOVELTY_REDUCTION=0.5 # Penalty reduction for novel angles (default: 0.5 = 50%)

# -------------------------------
# Topic Analysis & Narrative Tuning
# -------------------------------
# Per-post LLM bounds (topic/sentiment helpers)
# CONTEXT_LLM_SENTIMENT_MAXLEN=1000 # Max chars for sentiment prompts
# CONTEXT_LLM_TOPIC_MAXLEN=1000 # Max chars for topic prompts

# Narrative summarization bounds
# LLM_NARRATIVE_SAMPLE_SIZE=800 # Max events sampled/iterated when building narratives
# LLM_NARRATIVE_MAX_CONTENT=30000 # Max total characters packed into narrative prompts

# Hourly sliding-window size
# LLM_HOURLY_POOL_SIZE=200 # Number of most-recent events considered for hourly narrative

# Emerging topic detection thresholds
# CONTEXT_EMERGING_STORY_MIN_USERS=3 # Minimum unique users before tracking an emerging topic
# CONTEXT_EMERGING_STORY_MENTION_THRESHOLD=5 # Minimum mentions before we log a new story once

# Topic context injection guardrails
# CONTEXT_EMERGING_STORY_CONTEXT_MIN_USERS=5 # Require this many unique users before injecting context
# CONTEXT_EMERGING_STORY_CONTEXT_MIN_MENTIONS=10 # Require this many mentions before including in prompts
# CONTEXT_EMERGING_STORY_CONTEXT_LIMIT=20 # Maximum number of topics injected into context blocks
# CONTEXT_EMERGING_STORY_CONTEXT_RECENT_EVENTS=5 # Recent events to include per topic when sharing context
34 changes: 34 additions & 0 deletions .github/workflows/plugin-nostr-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Test plugin-nostr on PR

on:
pull_request:
workflow_dispatch:

jobs:
test-plugin-nostr:
runs-on: ubuntu-latest
timeout-minutes: 20
defaults:
run:
working-directory: plugin-nostr
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: plugin-nostr/package-lock.json

- name: Install dependencies
run: |
if [ -f package-lock.json ]; then
npm ci
else
npm install
fi

- name: Run plugin-nostr tests
run: npm run test
16 changes: 15 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ bun.lockb
# Build output
dist/
build/
.elizadb-test/

# Environment variables
.env
Expand All @@ -28,6 +29,8 @@ pids

# Coverage directory used by tools like istanbul
coverage/
.nyc_output/
*.lcov

# IDE
.vscode/
Expand All @@ -40,4 +43,15 @@ coverage/
Thumbs.db

# ElizaOS database
.eliza/
.eliza/

# Database backups
backups/
*.backup
*.tar.gz
backup_summary_*.txt

# Temporary test/documentation files
test-novelty-scoring.js
test-service-novelty-integration.js
NOVELTY_SCORING_IMPLEMENTATION.md
1 change: 1 addition & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
@jsr:registry=https://npm.jsr.io
2 changes: 1 addition & 1 deletion PM2_SETUP.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ Successfully configured the ElizaOS Pixel agent to start automatically with the

### File Structure
```
/home/ubuntu/elizaos-agent/
/home/pixel/elizaos-agent/
├── ecosystem.config.js # PM2 configuration
├── health-check.sh # Health monitoring script
├── src/
Expand Down
Loading
Loading