@redaksjon/protokoll 0.0.11 → 0.0.13

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 (88) hide show
  1. package/.cursor/rules/definition-of-done.md +1 -0
  2. package/.cursor/rules/no-emoticons.md +26 -12
  3. package/README.md +483 -69
  4. package/dist/agentic/executor.js +473 -41
  5. package/dist/agentic/executor.js.map +1 -1
  6. package/dist/agentic/index.js.map +1 -1
  7. package/dist/agentic/tools/lookup-person.js +123 -4
  8. package/dist/agentic/tools/lookup-person.js.map +1 -1
  9. package/dist/agentic/tools/lookup-project.js +139 -22
  10. package/dist/agentic/tools/lookup-project.js.map +1 -1
  11. package/dist/agentic/tools/route-note.js +5 -1
  12. package/dist/agentic/tools/route-note.js.map +1 -1
  13. package/dist/arguments.js +6 -3
  14. package/dist/arguments.js.map +1 -1
  15. package/dist/cli/action.js +704 -0
  16. package/dist/cli/action.js.map +1 -0
  17. package/dist/cli/config.js +482 -0
  18. package/dist/cli/config.js.map +1 -0
  19. package/dist/cli/context.js +466 -0
  20. package/dist/cli/context.js.map +1 -0
  21. package/dist/cli/feedback.js +858 -0
  22. package/dist/cli/feedback.js.map +1 -0
  23. package/dist/cli/index.js +103 -0
  24. package/dist/cli/index.js.map +1 -0
  25. package/dist/cli/install.js +572 -0
  26. package/dist/cli/install.js.map +1 -0
  27. package/dist/cli/transcript.js +199 -0
  28. package/dist/cli/transcript.js.map +1 -0
  29. package/dist/constants.js +12 -5
  30. package/dist/constants.js.map +1 -1
  31. package/dist/context/discovery.js +1 -1
  32. package/dist/context/discovery.js.map +1 -1
  33. package/dist/context/index.js +25 -1
  34. package/dist/context/index.js.map +1 -1
  35. package/dist/context/storage.js +57 -4
  36. package/dist/context/storage.js.map +1 -1
  37. package/dist/interactive/handler.js +310 -9
  38. package/dist/interactive/handler.js.map +1 -1
  39. package/dist/main.js +11 -1
  40. package/dist/main.js.map +1 -1
  41. package/dist/output/index.js.map +1 -1
  42. package/dist/output/manager.js +47 -2
  43. package/dist/output/manager.js.map +1 -1
  44. package/dist/phases/complete.js +38 -3
  45. package/dist/phases/complete.js.map +1 -1
  46. package/dist/phases/locate.js +1 -1
  47. package/dist/phases/locate.js.map +1 -1
  48. package/dist/pipeline/orchestrator.js +104 -31
  49. package/dist/pipeline/orchestrator.js.map +1 -1
  50. package/dist/protokoll.js +68 -2
  51. package/dist/protokoll.js.map +1 -1
  52. package/dist/reasoning/client.js +83 -0
  53. package/dist/reasoning/client.js.map +1 -1
  54. package/dist/reasoning/index.js +1 -0
  55. package/dist/reasoning/index.js.map +1 -1
  56. package/dist/routing/router.js +2 -2
  57. package/dist/routing/router.js.map +1 -1
  58. package/dist/util/media.js +1 -1
  59. package/dist/util/media.js.map +1 -1
  60. package/dist/util/metadata.js.map +1 -1
  61. package/dist/util/sound.js +116 -0
  62. package/dist/util/sound.js.map +1 -0
  63. package/dist/util/storage.js +3 -3
  64. package/dist/util/storage.js.map +1 -1
  65. package/docs/duplicate-question-prevention.md +117 -0
  66. package/docs/examples.md +152 -0
  67. package/docs/interactive-context-example.md +92 -0
  68. package/docs/package-lock.json +6 -0
  69. package/docs/package.json +3 -1
  70. package/eslint.config.mjs +1 -1
  71. package/guide/action.md +375 -0
  72. package/guide/config.md +207 -0
  73. package/guide/configuration.md +82 -67
  74. package/guide/context-commands.md +574 -0
  75. package/guide/context-system.md +20 -7
  76. package/guide/development.md +106 -4
  77. package/guide/feedback.md +335 -0
  78. package/guide/index.md +100 -4
  79. package/guide/interactive.md +15 -14
  80. package/guide/quickstart.md +21 -7
  81. package/guide/reasoning.md +18 -4
  82. package/guide/routing.md +192 -97
  83. package/package.json +2 -3
  84. package/scripts/copy-assets.mjs +47 -0
  85. package/scripts/coverage-priority.mjs +323 -0
  86. package/tsconfig.tsbuildinfo +1 -1
  87. package/vite.config.ts +6 -13
  88. package/vitest.config.ts +5 -1
@@ -8,40 +8,29 @@
8
8
  # Model settings
9
9
  model: "gpt-5.2" # Reasoning model (default)
10
10
  transcriptionModel: "whisper-1" # Audio transcription
11
-
12
- # Context
13
- context:
14
- directory: "~/.protokoll"
15
- autoCreate: true
16
-
17
- # Routing
18
- routing:
19
- default:
20
- path: "~/notes"
21
- structure: "month"
22
- filename:
23
- - date
24
- - time
25
- - subject
26
-
27
- projects:
28
- - projectId: "work"
29
- destination:
30
- path: "~/work/notes"
31
- structure: "month"
32
- triggers:
33
- - "work note"
34
- - "about work"
35
-
36
- # Output
37
- output:
38
- intermediateDir: "./output/protokoll"
39
- keepIntermediates: true
40
-
41
- # Features
42
- features:
43
- interactive: false # Disabled by default
44
- selfReflection: true # Enabled by default
11
+ reasoningLevel: "medium" # Reasoning effort: low, medium, high (default: medium)
12
+
13
+ # Directory settings (Dreadcabinet options)
14
+ inputDirectory: "./recordings" # Where to find audio files
15
+ outputDirectory: "~/notes" # Where to write transcripts
16
+ outputStructure: "month" # Directory structure (none, year, month, day)
17
+ outputFilenameOptions: # Filename components
18
+ - date
19
+ - time
20
+ - subject
21
+
22
+ # Processing options
23
+ processedDirectory: "./processed" # Move processed audio here (optional)
24
+
25
+ # Features (flat properties, not nested)
26
+ interactive: true # Interactive prompts (enabled by default)
27
+ selfReflection: true # Generate reflection reports (enabled by default)
28
+ silent: false # Sound notifications (enabled by default)
29
+
30
+ # Advanced
31
+ maxAudioSize: 26214400 # Max audio file size in bytes (25MB)
32
+ tempDirectory: "/tmp" # Temporary file storage
33
+ contextDirectories: [] # Additional context locations
45
34
  ```
46
35
 
47
36
  ## Environment Variables
@@ -60,17 +49,19 @@ features:
60
49
  | Option | Description | Default |
61
50
  |--------|-------------|---------|
62
51
  | `--input-directory <dir>` | Directory with audio files | Required |
63
- | `--output-directory <dir>` | Default output directory | `~/notes` |
52
+ | `--output-directory <dir>` | Default output directory | `./` |
64
53
  | `--model <model>` | Reasoning model | `gpt-5.2` |
65
54
  | `--transcription-model <model>` | Whisper model | `whisper-1` |
55
+ | `--reasoning-level <level>` | Reasoning effort (low/medium/high) | `medium` |
66
56
 
67
57
  ### Mode Options
68
58
 
69
59
  | Option | Description | Default |
70
60
  |--------|-------------|---------|
71
- | `--interactive` | Enable interactive clarifications | `false` |
61
+ | `--batch` | Disable interactive mode | `false` (interactive enabled) |
72
62
  | `--self-reflection` | Generate reflection reports | `true` |
73
63
  | `--no-self-reflection` | Disable reflection reports | - |
64
+ | `--silent` | Disable sound notifications | `false` |
74
65
  | `--dry-run` | Show what would happen | `false` |
75
66
  | `--verbose` | Enable verbose logging | `false` |
76
67
  | `--debug` | Enable debug mode | `false` |
@@ -85,7 +76,7 @@ features:
85
76
  | `--processed-directory <dir>` | Move processed files here | - |
86
77
  | `--overrides` | Allow config overrides | `false` |
87
78
 
88
- ## Routing Structures
79
+ ## Output Structures
89
80
 
90
81
  Protokoll uses Dreadcabinet structure codenames:
91
82
 
@@ -120,6 +111,43 @@ Protokoll walks up the directory tree looking for `.protokoll/` directories:
120
111
 
121
112
  Lower directories take precedence for conflicting settings.
122
113
 
114
+ ## Project-Based Routing
115
+
116
+ Routing to different destinations is configured via **project files** in the context system, not in the main config.yaml.
117
+
118
+ ### Example Project File
119
+
120
+ ```yaml
121
+ # ~/.protokoll/projects/work.yaml
122
+ id: work
123
+ name: Work Notes
124
+ type: project
125
+
126
+ classification:
127
+ context_type: work
128
+ explicit_phrases:
129
+ - "work note"
130
+ - "about work"
131
+ - "office meeting"
132
+ topics:
133
+ - "standup"
134
+ - "sprint"
135
+
136
+ routing:
137
+ destination: "~/work/notes"
138
+ structure: "month"
139
+ filename_options:
140
+ - date
141
+ - time
142
+ - subject
143
+ auto_tags:
144
+ - work
145
+
146
+ active: true
147
+ ```
148
+
149
+ See [Context System](./context-system.md) and [Routing](./routing.md) for more details.
150
+
123
151
  ## Model Selection
124
152
 
125
153
  ### Reasoning Models
@@ -152,48 +180,35 @@ Lower directories take precedence for conflicting settings.
152
180
 
153
181
  ```yaml
154
182
  model: "gpt-5.2"
155
- routing:
156
- default:
157
- path: "~/notes"
158
- structure: "month"
183
+ outputDirectory: "~/notes"
184
+ outputStructure: "month"
159
185
  ```
160
186
 
161
- ### Work Projects
187
+ ### Work Setup with Processed Directory
162
188
 
163
189
  ```yaml
164
190
  model: "claude-3-5-sonnet"
165
- routing:
166
- default:
167
- path: "~/notes/personal"
168
- structure: "month"
169
- projects:
170
- - projectId: "work"
171
- destination:
172
- path: "~/work/notes"
173
- structure: "day"
174
- triggers:
175
- - "work"
176
- - "office"
177
- - "meeting"
191
+ inputDirectory: "~/recordings"
192
+ outputDirectory: "~/notes"
193
+ outputStructure: "month"
194
+ processedDirectory: "~/recordings/processed"
195
+ selfReflection: true
178
196
  ```
179
197
 
180
- ### Team Shared Context
198
+ ### Batch Processing (Non-Interactive)
181
199
 
182
200
  ```yaml
183
- # ~/team-project/.protokoll/config.yaml
184
- context:
185
- directory: "./.protokoll"
186
- routing:
187
- default:
188
- path: "./notes"
189
- structure: "month"
201
+ # For automation/cron jobs
202
+ interactive: false
203
+ selfReflection: false
190
204
  ```
191
205
 
192
- ### Batch Processing (No Self-Reflection)
206
+ ### Team Shared Context
193
207
 
194
208
  ```yaml
195
- features:
196
- selfReflection: false
197
- interactive: false
209
+ # ~/team-project/.protokoll/config.yaml
210
+ # Uses relative path for team portability
211
+ outputDirectory: "./notes"
212
+ outputStructure: "month"
198
213
  ```
199
214