fow-cli 0.3.0__tar.gz → 0.3.1__tar.gz

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 (50) hide show
  1. {fow_cli-0.3.0 → fow_cli-0.3.1}/CHANGELOG.md +6 -0
  2. {fow_cli-0.3.0 → fow_cli-0.3.1}/PKG-INFO +1 -1
  3. {fow_cli-0.3.0 → fow_cli-0.3.1}/pyproject.toml +1 -1
  4. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/__init__.py +1 -1
  5. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/providers/elevenlabs.py +15 -14
  6. {fow_cli-0.3.0 → fow_cli-0.3.1}/.gitignore +0 -0
  7. {fow_cli-0.3.0 → fow_cli-0.3.1}/LICENSE +0 -0
  8. {fow_cli-0.3.0 → fow_cli-0.3.1}/README.md +0 -0
  9. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/api_keys.py +0 -0
  10. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/audio.py +0 -0
  11. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/audio_metadata.py +0 -0
  12. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/cache.py +0 -0
  13. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/cleanup.py +0 -0
  14. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/cli.py +0 -0
  15. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/cli_costs.py +0 -0
  16. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/cli_glossary.py +0 -0
  17. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/cli_menu.py +0 -0
  18. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/cli_publish.py +0 -0
  19. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/cli_speaker_review.py +0 -0
  20. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/cli_watch.py +0 -0
  21. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/config.py +0 -0
  22. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/costs.py +0 -0
  23. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/db.py +0 -0
  24. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/doctor.py +0 -0
  25. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/embeddings.py +0 -0
  26. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/exporting.py +0 -0
  27. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/glossary.py +0 -0
  28. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/meetings.py +0 -0
  29. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/normalization.py +0 -0
  30. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/people.py +0 -0
  31. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/people_embeddings.py +0 -0
  32. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/pipeline.py +0 -0
  33. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/processing.py +0 -0
  34. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/providers/__init__.py +0 -0
  35. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/providers/openai_analysis.py +0 -0
  36. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/providers/openai_cleanup.py +0 -0
  37. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/publishing.py +0 -0
  38. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/py.typed +0 -0
  39. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/reanalysis.py +0 -0
  40. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/recording_quality.py +0 -0
  41. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/rendering.py +0 -0
  42. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/secrets.py +0 -0
  43. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/service_pricing.py +0 -0
  44. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/setup.py +0 -0
  45. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/speaker_identity.py +0 -0
  46. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/speaker_matching.py +0 -0
  47. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/speakers.py +0 -0
  48. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/storage.py +0 -0
  49. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/voice_samples.py +0 -0
  50. {fow_cli-0.3.0 → fow_cli-0.3.1}/src/fly_on_the_wall/watch.py +0 -0
@@ -2,6 +2,12 @@
2
2
 
3
3
  All notable changes to Fly on the Wall are documented here.
4
4
 
5
+ ## [0.3.1] - 2026-06-15
6
+
7
+ ### Fixed
8
+
9
+ - Fixed ElevenLabs keyterms encoding for glossary and known-person transcription hints.
10
+
5
11
  ## [0.3.0] - 2026-06-13
6
12
 
7
13
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fow-cli
3
- Version: 0.3.0
3
+ Version: 0.3.1
4
4
  Summary: Personal CLI note-taker for turning meeting audio into cleaned meeting manuscripts.
5
5
  Project-URL: Repository, https://github.com/henriksvensson/fly-on-the-wall
6
6
  License-Expression: MIT
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "fow-cli"
3
- version = "0.3.0"
3
+ version = "0.3.1"
4
4
  description = "Personal CLI note-taker for turning meeting audio into cleaned meeting manuscripts."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
@@ -1,3 +1,3 @@
1
1
  """Fly on the Wall CLI application."""
2
2
 
3
- __version__ = "0.3.0"
3
+ __version__ = "0.3.1"
@@ -34,31 +34,32 @@ def transcribe_audio(
34
34
  if not resolved_api_key:
35
35
  raise ElevenLabsError("Missing ELEVENLABS_API_KEY.")
36
36
 
37
- data = {
38
- "model_id": MODEL,
39
- "tag_audio_events": "true",
40
- "timestamps_granularity": "word",
41
- "diarize": "true",
42
- "temperature": "0",
43
- "seed": "1",
44
- "no_verbatim": str(no_verbatim).lower(),
45
- }
37
+ form_fields = [
38
+ ("model_id", MODEL),
39
+ ("tag_audio_events", "true"),
40
+ ("timestamps_granularity", "word"),
41
+ ("diarize", "true"),
42
+ ("temperature", "0"),
43
+ ("seed", "1"),
44
+ ("no_verbatim", str(no_verbatim).lower()),
45
+ ]
46
46
  if num_speakers is not None:
47
- data["num_speakers"] = str(num_speakers)
47
+ form_fields.append(("num_speakers", str(num_speakers)))
48
48
  if diarization_threshold is not None:
49
- data["diarization_threshold"] = str(diarization_threshold)
49
+ form_fields.append(("diarization_threshold", str(diarization_threshold)))
50
50
  if keyterms:
51
- data["keyterms"] = json.dumps(keyterms, ensure_ascii=False)
51
+ form_fields.extend(("keyterms", keyterm) for keyterm in keyterms)
52
52
 
53
53
  close_client = client is None
54
54
  http_client = client or httpx.Client(timeout=600)
55
55
  try:
56
56
  with audio_path.open("rb") as audio_file:
57
+ files: list[tuple[str, Any]] = [(name, (None, value)) for name, value in form_fields]
58
+ files.append(("file", (audio_path.name, audio_file)))
57
59
  response = http_client.post(
58
60
  API_URL,
59
61
  headers={"xi-api-key": resolved_api_key},
60
- data=data,
61
- files={"file": (audio_path.name, audio_file)},
62
+ files=files,
62
63
  )
63
64
  response.raise_for_status()
64
65
  return response.json()
File without changes
File without changes
File without changes