Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
1bdb861
Update readme with missing information and fix dependency installation
vedmakk Sep 23, 2025
cac77b1
Fix pydantic warnings
vedmakk Sep 23, 2025
3078bf9
Ensure pydantic version compatibility with latest litellm and openai …
vedmakk Sep 23, 2025
6120a64
Update litellm version in toml file
vedmakk Sep 23, 2025
c93fcb6
Drop unsupported params (e.g. temperature with gpt-5)
vedmakk Sep 23, 2025
071ee70
Update cost estimation with input and output token pricing
vedmakk Sep 23, 2025
8e1a54d
Add test information to readme
vedmakk Sep 23, 2025
7ed814c
More verbose progress information
vedmakk Sep 23, 2025
4097135
Improve actual cost calculation
vedmakk Sep 23, 2025
123b9d6
Add implementation plan for context-aware algorithm
vedmakk Sep 23, 2025
5f6074e
Remove type checks and linting from quality checks for now
vedmakk Sep 23, 2025
7bb737d
Implement context-aware translation algorithm
vedmakk Sep 23, 2025
a6fbdd6
Use logger for all logs
vedmakk Sep 23, 2025
cc0da2a
Add time information to progress bar
vedmakk Sep 23, 2025
38a8f16
Wire up cli with checkpoint support
vedmakk Sep 23, 2025
5f3e297
Provide checkpoint manager
vedmakk Sep 23, 2025
a8cdf03
Fix some issues with chunking
vedmakk Sep 23, 2025
a44c311
Fix checkpoint manager calls
vedmakk Sep 23, 2025
259c8cc
Fix an issue that caused the first character of chunks to be cut
vedmakk Sep 23, 2025
d86181c
Update empty content test for new behaviour
vedmakk Sep 23, 2025
330e974
Fix tests
vedmakk Sep 23, 2025
7f8fd91
Check finish reason in llm response
vedmakk Sep 23, 2025
1601dfb
Actually resume from checkpoints
vedmakk Sep 23, 2025
88eacd3
Control verbosity of checkpoint manager
vedmakk Sep 23, 2025
7f9c952
Increasing max_tokens default
vedmakk Sep 23, 2025
301293a
Add cleanup_old_checkpoints method
vedmakk Sep 23, 2025
7956823
Cleanup checkpoint files only after final translation has been written
vedmakk Sep 23, 2025
4adf3c9
Reduce code duplication for checkpoint resume logic
vedmakk Sep 23, 2025
76d30cf
Fix a bug that caused available checkpoints to be ignored
vedmakk Sep 23, 2025
0f7fcb0
Add refactoring plan for context building and leading/trailing whites…
vedmakk Sep 24, 2025
9a7b7a5
Refactor context extraction and leading/trailing chunk whitespace pre…
vedmakk Sep 24, 2025
fc77c17
Remove streaming as there is no benefit, but additional complexity
vedmakk Sep 24, 2025
b10b945
Add plan for glossary feature
vedmakk Sep 24, 2025
0e83cfa
Add glossary feature
vedmakk Sep 24, 2025
05cb065
Fix structured response parsing
vedmakk Sep 24, 2025
350a48d
Handle initially empty glossary
vedmakk Sep 24, 2025
3abfe33
Adjust glossary prompts
vedmakk Sep 24, 2025
db416a3
Cleanup unused function
vedmakk Sep 24, 2025
4e12209
Set reasoning to minimal
vedmakk Sep 24, 2025
f8b3750
Updated cost estimation
vedmakk Sep 24, 2025
cfed583
Wire up max-cost to actually exit when max-cost is exceeded during tr…
vedmakk Sep 24, 2025
6f464aa
Add next chunk to context too
vedmakk Sep 24, 2025
df4a5c3
Adjust tokens per second for cloud
vedmakk Sep 24, 2025
fb79cb2
Update prompts to enforce target language
vedmakk Sep 24, 2025
c3d8d86
Add cost overview and prediction to progress information
vedmakk Sep 25, 2025
182fbaf
Add reasoning-effort param
vedmakk Sep 25, 2025
c71c02b
Add infos as warnings
vedmakk Sep 25, 2025
6a54ded
Small prompt adjustment
vedmakk Sep 25, 2025
4fb3a1b
Make model param required, because it needs an api key
vedmakk Sep 26, 2025
6e610ce
Only load file processor classes that are needed
vedmakk Sep 26, 2025
a9c8c7f
Mark potentially obsolete code
vedmakk Sep 26, 2025
daf643b
Update readme and add example file
vedmakk Sep 26, 2025
8c5bfb5
Update readme
vedmakk Sep 26, 2025
7c547e5
Adjust recommended reasoning level
vedmakk Sep 27, 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
372 changes: 223 additions & 149 deletions README.md

Large diffs are not rendered by default.

Binary file added examples/elara_story.pdf
Binary file not shown.
57 changes: 57 additions & 0 deletions examples/elara_story.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# The Girl Who Couldn’t Understand

Once upon a time, in a valley village surrounded by high green hills, there lived a girl named Elara. She was bright-eyed, quick-footed, and always eager to listen—but there was one trouble that followed her everywhere. She could not understand anyone.

When the baker spoke to her, his words sounded like the rush of wind in the chimney. When the shepherd called from the fields, his voice came across like the bleating of sheep. Even her own mother’s sentences slipped away like drops of rain on stone. Elara nodded and smiled, but she felt lost in a sea of sounds.

The villagers thought she was strange. They whispered, they shook their heads, and sometimes they grew impatient. “She does not listen,” they muttered. But Elara *did* listen, harder than anyone else—she simply could not catch the meaning.

One evening, after another long day of confusion, Elara sat by the river at the edge of the village. The sun had gone down, and the water reflected the first stars. She held a small pebble in her hands, as if it could anchor her in silence.

That was when a soft shimmer rose from the river mist. A shape gathered—thin as smoke, yet glowing with pale light. It looked like both a man and a cloud, with eyes that sparkled as if they had seen every word ever spoken.

“Child,” said the figure, in a voice that rang clear inside her head, “why do you sigh so deeply?”

Elara blinked. For the first time in her life, she understood someone perfectly. “You can speak to me?” she gasped.

“I am a translator of meanings,” the ghostly figure replied. “A genie of tongues, bound not to lamps, but to the longing of hearts. You may call me Lume.”

Elara felt warmth spread through her chest. “Everyone speaks to me, but I cannot grasp their words. They blur together. Can you help me?”

The genie drifted closer, swirling like mist around her shoulders. “I can,” Lume said. “I can hear their words, shape them, and pass them to you in the way you need. But magic is never given without purpose. You must promise something in return.”

“What must I promise?” asked Elara, though her heart already leaned forward eagerly.

“That you will not only listen,” Lume said, “but also carry the meaning onward. Translate kindness into action, anger into patience, sorrow into comfort. Will you do this?”

Elara nodded without hesitation.

The very next day, she tested her new gift. At the market, the baker frowned at her. “Why do you never answer?” he demanded, his voice gruff.

For Elara, his words would have once been a jumble. But now Lume whispered softly in her mind: *He feels ignored. He wants to know you hear him.*

Elara smiled and said, “I hear you. I am sorry for the silence.” The baker’s face softened at once. He offered her a piece of warm bread, crusty and sweet.

From then on, life began to shift. When the shepherd shouted across the hills, Lume translated his cries into gentle messages: *The sheep are wandering! Can you help push them back?* Elara ran to assist, and the shepherd, astonished, thanked her with fresh milk.

Even her mother, who had often looked at her with worry, now found herself embraced by new understanding. When her mother murmured at night, *I wish she could hear me,* Lume translated it as *She fears losing you, she loves you deeply.* Elara hugged her mother and whispered, “I love you too.”

Days turned into weeks, and Elara grew more confident. Yet she noticed something curious. The genie did not always translate words exactly. Sometimes Lume gave her the *feeling* behind them rather than the literal meaning. And Elara began to see that perhaps that was the truer language.

One afternoon, a traveler passed through the valley. He spoke in a tongue no villager had ever heard before. People shrugged and waved him on, uninterested. But Elara felt a pull. She stood before him, and with Lume’s help, she caught the traveler’s story. He had lost his way, searching for a mountain pass.

Through Elara, the village finally understood, and they offered him food and a guide for his journey. The traveler bowed low, tears in his eyes. For the first time, Elara felt not only useful but *essential*.

That night, by the river again, Elara thanked the genie. “You have given me a new life,” she said.

Lume’s glow flickered softly. “No, child. You have always had the life. I only showed you how to listen differently.”

Elara frowned. “Will you stay with me forever?”

The genie’s form grew faint, blending with the starlight. “Not forever. My task is to teach you until you no longer need me. One day, you will hear without me. For true understanding is not magic—it is the courage to care about what others mean, even when their words are unclear.”

Elara clutched the pebble in her hand again, but this time it felt light, not heavy. She realized she was not afraid anymore. She could live with mystery, with effort, with patience. And perhaps, little by little, she could learn to hear not only through Lume, but through her own heart.

The genie’s whisper lingered as the river breeze carried him away: “Remember, the greatest translation is love.”

And Elara, smiling under the stars, understood perfectly.
17 changes: 17 additions & 0 deletions plans/_prompt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Prompt to execute a plan

I would like to <task in one sentence>.

Please implement it according to the design plan in <plan-file.md>.

Make sure the plan is up to date if new insights arrise during the implementation and update the plan with changes.

The goal is to execute the plan, while keeping it up to date so in the end, we have the implemented state and the design document serving as both an implementation design plan and a documentation of the implementation we did.

# Prompt to create a plan

(Discuss the plan with the model… when you feel confident about the discussed plan, ask the model to write it down with this prompt:)

Great plan! Please write a comprehensive design plan in <plans-dir> by creating a new file with name <plan-file.md> based on the structure in <template.md>.

The plan should describe the design in detail, outline the implementation steps, cover testing (new tests and updates to existing tests) and quality assurance and define the expected results – so that a developer can implement the changes based on the plan.
Loading