@agentwhy/cli 0.0.0-dev

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 (400) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +2 -0
  3. package/README.md +181 -0
  4. package/THIRD_PARTY_NOTICES.md +31 -0
  5. package/dist/adapter/claude-code/contract/assumptions.js +208 -0
  6. package/dist/adapter/claude-code/contract/denials.js +15 -0
  7. package/dist/adapter/claude-code/contract/entry-points.js +15 -0
  8. package/dist/adapter/claude-code/contract/fields.js +73 -0
  9. package/dist/adapter/claude-code/contract/hooks.js +96 -0
  10. package/dist/adapter/claude-code/contract/identifiers.js +15 -0
  11. package/dist/adapter/claude-code/contract/layout.js +29 -0
  12. package/dist/adapter/claude-code/contract/line-types.js +26 -0
  13. package/dist/adapter/claude-code/contract/projects.js +23 -0
  14. package/dist/adapter/claude-code/contract/recognition.js +14 -0
  15. package/dist/adapter/claude-code/contract/session-title.js +20 -0
  16. package/dist/adapter/claude-code/contract/settings.js +27 -0
  17. package/dist/adapter/claude-code/contract/task-notifications.js +33 -0
  18. package/dist/adapter/claude-code/contract/tools.js +37 -0
  19. package/dist/adapter/claude-code/contract/version.js +51 -0
  20. package/dist/adapter/claude-code/discovery/claude-code-project-catalogue.js +129 -0
  21. package/dist/adapter/claude-code/discovery/claude-code-recognition.js +46 -0
  22. package/dist/adapter/claude-code/discovery/claude-code-session-catalogue.js +100 -0
  23. package/dist/adapter/claude-code/discovery/claude-code-session-discovery.js +61 -0
  24. package/dist/adapter/claude-code/discovery/claude-code-session-titles.js +28 -0
  25. package/dist/adapter/claude-code/discovery/discovered-session.js +1 -0
  26. package/dist/adapter/claude-code/discovery/session-entries.js +41 -0
  27. package/dist/adapter/claude-code/discovery/transcript-tail.js +81 -0
  28. package/dist/adapter/claude-code/events/claude-code-session-source.js +197 -0
  29. package/dist/adapter/claude-code/events/delegation-index.js +15 -0
  30. package/dist/adapter/claude-code/events/transcript-scan.js +179 -0
  31. package/dist/adapter/claude-code/hooks/hook-output.js +42 -0
  32. package/dist/adapter/claude-code/hooks/pre-tool-use-input.js +23 -0
  33. package/dist/adapter/claude-code/hooks/stop-input.js +25 -0
  34. package/dist/adapter/claude-code/hooks/subagent-stop-input.js +26 -0
  35. package/dist/adapter/claude-code/policy/deny-rules.js +46 -0
  36. package/dist/adapter/claude-code/probe/claude-code-probe.js +86 -0
  37. package/dist/adapter/claude-code/probe/collectors/agent-tool-input-key-collector.js +24 -0
  38. package/dist/adapter/claude-code/probe/collectors/denial-kind-collector.js +20 -0
  39. package/dist/adapter/claude-code/probe/collectors/denied-call-collector.js +11 -0
  40. package/dist/adapter/claude-code/probe/collectors/identifier-collector.js +19 -0
  41. package/dist/adapter/claude-code/probe/collectors/line-collector.js +1 -0
  42. package/dist/adapter/claude-code/probe/collectors/line-type-collector.js +29 -0
  43. package/dist/adapter/claude-code/probe/collectors/sidechain-collector.js +20 -0
  44. package/dist/adapter/claude-code/probe/collectors/task-notification-collector.js +51 -0
  45. package/dist/adapter/claude-code/probe/collectors/tool-result-reference-collector.js +31 -0
  46. package/dist/adapter/claude-code/probe/collectors/tool-use-collector.js +24 -0
  47. package/dist/adapter/claude-code/probe/collectors/tool-version-collector.js +14 -0
  48. package/dist/adapter/claude-code/probe/collectors/top-level-key-collector.js +14 -0
  49. package/dist/adapter/claude-code/probe/collectors/unknown-line-type-key-collector.js +24 -0
  50. package/dist/adapter/claude-code/probe/collectors/working-directory-collector.js +28 -0
  51. package/dist/adapter/claude-code/probe/doctor-report.js +1 -0
  52. package/dist/adapter/claude-code/probe/meta-tally.js +42 -0
  53. package/dist/adapter/claude-code/probe/session-probe.js +1 -0
  54. package/dist/adapter/claude-code/probe/session-tally.js +41 -0
  55. package/dist/adapter/claude-code/probe/transcript-line.js +30 -0
  56. package/dist/adapter/claude-code/probe/transcript-tally.js +74 -0
  57. package/dist/adapter/claude-code/settings/deny-entries.js +65 -0
  58. package/dist/adapter/claude-code/settings/hook-entries.js +303 -0
  59. package/dist/adapter/codex/contract/actions.js +69 -0
  60. package/dist/adapter/codex/contract/assumptions.js +55 -0
  61. package/dist/adapter/codex/contract/capabilities.js +24 -0
  62. package/dist/adapter/codex/contract/delegations.js +30 -0
  63. package/dist/adapter/codex/contract/deliveries.js +25 -0
  64. package/dist/adapter/codex/contract/envelope.js +33 -0
  65. package/dist/adapter/codex/contract/hook-refusals.js +14 -0
  66. package/dist/adapter/codex/contract/hooks.js +46 -0
  67. package/dist/adapter/codex/contract/messages.js +47 -0
  68. package/dist/adapter/codex/contract/permissions.js +27 -0
  69. package/dist/adapter/codex/contract/reviews.js +13 -0
  70. package/dist/adapter/codex/contract/session.js +31 -0
  71. package/dist/adapter/codex/contract/turns.js +23 -0
  72. package/dist/adapter/codex/contract/version.js +15 -0
  73. package/dist/adapter/codex/discovery/codex-conversations.js +44 -0
  74. package/dist/adapter/codex/discovery/codex-project-catalogue.js +49 -0
  75. package/dist/adapter/codex/discovery/codex-recognition.js +20 -0
  76. package/dist/adapter/codex/discovery/codex-session-catalogue.js +28 -0
  77. package/dist/adapter/codex/discovery/codex-session-discovery.js +115 -0
  78. package/dist/adapter/codex/discovery/codex-session-index.js +21 -0
  79. package/dist/adapter/codex/discovery/codex-session-titles.js +135 -0
  80. package/dist/adapter/codex/discovery/session-header.js +86 -0
  81. package/dist/adapter/codex/discovery/session-owners.js +11 -0
  82. package/dist/adapter/codex/discovery/session-roots.js +49 -0
  83. package/dist/adapter/codex/events/action-items.js +138 -0
  84. package/dist/adapter/codex/events/capability-records.js +26 -0
  85. package/dist/adapter/codex/events/codex-session-source.js +121 -0
  86. package/dist/adapter/codex/events/hook-refusals.js +27 -0
  87. package/dist/adapter/codex/events/rollout-scan.js +614 -0
  88. package/dist/adapter/codex/events/turn-permissions.js +60 -0
  89. package/dist/adapter/codex/hooks/pre-tool-use-input.js +24 -0
  90. package/dist/adapter/codex/hooks/stop-refusals.js +57 -0
  91. package/dist/adapter/codex/probe/codex-doctor-report.js +1 -0
  92. package/dist/adapter/codex/probe/codex-probe.js +268 -0
  93. package/dist/adapter/codex/settings/codex-hooks.js +83 -0
  94. package/dist/cli/cli-command.js +1 -0
  95. package/dist/cli/command-router.js +42 -0
  96. package/dist/cli/commands/check-cli-command.js +128 -0
  97. package/dist/cli/commands/codex-stop-cli-command.js +27 -0
  98. package/dist/cli/commands/doctor-arguments.js +32 -0
  99. package/dist/cli/commands/doctor-cli-command.js +31 -0
  100. package/dist/cli/commands/doctor-usage.js +14 -0
  101. package/dist/cli/commands/init-cli-command.js +123 -0
  102. package/dist/cli/commands/menu-cli-command.js +58 -0
  103. package/dist/cli/commands/notify-cli-command.js +158 -0
  104. package/dist/cli/commands/refuse-cli-command.js +79 -0
  105. package/dist/cli/commands/report-arguments.js +62 -0
  106. package/dist/cli/commands/report-cli-command.js +36 -0
  107. package/dist/cli/commands/report-usage.js +41 -0
  108. package/dist/cli/commands/sessions-cli-command.js +184 -0
  109. package/dist/cli/commands/start-cli-command.js +83 -0
  110. package/dist/cli/commands/watch-cli-command.js +142 -0
  111. package/dist/cli/exit-codes.js +13 -0
  112. package/dist/cli/project-switches.js +46 -0
  113. package/dist/cli.js +80 -0
  114. package/dist/composition-root.js +411 -0
  115. package/dist/core/access/command-line.js +454 -0
  116. package/dist/core/access/listing.js +58 -0
  117. package/dist/core/access/path-shape.js +59 -0
  118. package/dist/core/access/path-tokens.js +37 -0
  119. package/dist/core/access/protected-access.js +310 -0
  120. package/dist/core/access/protected-values.js +102 -0
  121. package/dist/core/access/recorded-effect.js +67 -0
  122. package/dist/core/access/returns.js +173 -0
  123. package/dist/core/access/search-output.js +34 -0
  124. package/dist/core/access/search-reach.js +268 -0
  125. package/dist/core/access/uses.js +143 -0
  126. package/dist/core/access/words-before.js +52 -0
  127. package/dist/core/agent.js +1 -0
  128. package/dist/core/capability.js +11 -0
  129. package/dist/core/combined-project-catalogue.js +36 -0
  130. package/dist/core/combined-session-catalogue.js +25 -0
  131. package/dist/core/completeness.js +10 -0
  132. package/dist/core/context.js +1 -0
  133. package/dist/core/correlation/correlate.js +329 -0
  134. package/dist/core/delegation.js +1 -0
  135. package/dist/core/detector/prompt-signals.js +78 -0
  136. package/dist/core/entry-point.js +1 -0
  137. package/dist/core/event.js +1 -0
  138. package/dist/core/evidence.js +9 -0
  139. package/dist/core/late-message.js +32 -0
  140. package/dist/core/message.js +1 -0
  141. package/dist/core/nearest-project.js +28 -0
  142. package/dist/core/policy/default-policy.js +32 -0
  143. package/dist/core/policy/glob.js +56 -0
  144. package/dist/core/policy/parse-policy.js +70 -0
  145. package/dist/core/policy/policy.js +20 -0
  146. package/dist/core/policy/resolve-policy.js +16 -0
  147. package/dist/core/project-catalogue.js +1 -0
  148. package/dist/core/project-root.js +133 -0
  149. package/dist/core/provider-titles.js +10 -0
  150. package/dist/core/redaction/entropy.js +46 -0
  151. package/dist/core/redaction/redacted.js +4 -0
  152. package/dist/core/redaction/redactor.js +339 -0
  153. package/dist/core/redaction/secret-patterns.js +22 -0
  154. package/dist/core/redaction/value-shapes.js +81 -0
  155. package/dist/core/redaction/value-trace.js +110 -0
  156. package/dist/core/review.js +1 -0
  157. package/dist/core/session-catalogue.js +19 -0
  158. package/dist/core/session-filter.js +42 -0
  159. package/dist/core/session-format.js +27 -0
  160. package/dist/core/session-model.js +1 -0
  161. package/dist/core/session-reader.js +22 -0
  162. package/dist/core/session-records.js +1 -0
  163. package/dist/core/session-source.js +1 -0
  164. package/dist/core/session-titles.js +21 -0
  165. package/dist/core/turn.js +1 -0
  166. package/dist/doctor/codex-doctor.js +14 -0
  167. package/dist/doctor/doctor-use-case.js +1 -0
  168. package/dist/doctor/format-selecting-doctor.js +28 -0
  169. package/dist/doctor/render/attention/attention-rule.js +1 -0
  170. package/dist/doctor/render/attention/doctor-attention-rules.js +28 -0
  171. package/dist/doctor/render/attention/rules/damaged-meta-files-rule.js +8 -0
  172. package/dist/doctor/render/attention/rules/damaged-transcripts-rule.js +9 -0
  173. package/dist/doctor/render/attention/rules/incomplete-subagent-pairs-rule.js +6 -0
  174. package/dist/doctor/render/attention/rules/missing-main-transcript-rule.js +5 -0
  175. package/dist/doctor/render/attention/rules/missing-spilled-results-rule.js +6 -0
  176. package/dist/doctor/render/attention/rules/multiple-working-directories-rule.js +15 -0
  177. package/dist/doctor/render/attention/rules/unknown-denial-kinds-rule.js +5 -0
  178. package/dist/doctor/render/attention/rules/unknown-line-types-rule.js +6 -0
  179. package/dist/doctor/render/attention/rules/unrecognised-entries-rule.js +6 -0
  180. package/dist/doctor/render/attention/rules/unusable-directories-rule.js +12 -0
  181. package/dist/doctor/render/attention/transcript-scopes.js +6 -0
  182. package/dist/doctor/render/codex-text-doctor-renderer.js +97 -0
  183. package/dist/doctor/render/doctor-renderers.js +1 -0
  184. package/dist/doctor/render/json-doctor-renderer.js +7 -0
  185. package/dist/doctor/render/output-format.js +1 -0
  186. package/dist/doctor/render/text-doctor-renderer.js +124 -0
  187. package/dist/doctor/session-doctor.js +16 -0
  188. package/dist/infrastructure/clack-asker.js +24 -0
  189. package/dist/infrastructure/clack-chooser.js +40 -0
  190. package/dist/infrastructure/clack-multi-chooser.js +31 -0
  191. package/dist/infrastructure/file-alert-store.js +120 -0
  192. package/dist/infrastructure/file-checked-store.js +55 -0
  193. package/dist/infrastructure/file-mark-store.js +67 -0
  194. package/dist/infrastructure/file-onboarding-store.js +93 -0
  195. package/dist/infrastructure/folder-window.js +26 -0
  196. package/dist/infrastructure/node-agentwhy-invocation.js +99 -0
  197. package/dist/infrastructure/node-browser.js +40 -0
  198. package/dist/infrastructure/node-file-system.js +111 -0
  199. package/dist/infrastructure/node-local-server.js +115 -0
  200. package/dist/infrastructure/node-text-input.js +26 -0
  201. package/dist/infrastructure/os-notifier.js +21 -0
  202. package/dist/infrastructure/osascript-folder-chooser.js +53 -0
  203. package/dist/infrastructure/powershell-folder-chooser.js +78 -0
  204. package/dist/infrastructure/real-directory.js +18 -0
  205. package/dist/infrastructure/stream-printer.js +11 -0
  206. package/dist/infrastructure/terminal-banner.js +19 -0
  207. package/dist/ports/agentwhy-invocation.js +1 -0
  208. package/dist/ports/alert-store.js +1 -0
  209. package/dist/ports/asker.js +1 -0
  210. package/dist/ports/browser.js +1 -0
  211. package/dist/ports/checked-store.js +1 -0
  212. package/dist/ports/chooser.js +1 -0
  213. package/dist/ports/directory-reader.js +1 -0
  214. package/dist/ports/file-access-error.js +11 -0
  215. package/dist/ports/file-reader.js +1 -0
  216. package/dist/ports/file-tail-reader.js +1 -0
  217. package/dist/ports/file-writer.js +1 -0
  218. package/dist/ports/folder-chooser.js +1 -0
  219. package/dist/ports/local-server.js +1 -0
  220. package/dist/ports/mark-store.js +10 -0
  221. package/dist/ports/multi-chooser.js +1 -0
  222. package/dist/ports/notifier.js +1 -0
  223. package/dist/ports/onboarding-store.js +1 -0
  224. package/dist/ports/printer.js +1 -0
  225. package/dist/ports/text-input.js +1 -0
  226. package/dist/refuse/command-reach.js +135 -0
  227. package/dist/refuse/command-refusal.js +88 -0
  228. package/dist/refuse/render/codex-stop-words.js +21 -0
  229. package/dist/refuse/render/refusal-words.js +34 -0
  230. package/dist/report/build-report.js +1037 -0
  231. package/dist/report/check/actions-digest.js +73 -0
  232. package/dist/report/check/check-lines.js +83 -0
  233. package/dist/report/check/mark-request.js +90 -0
  234. package/dist/report/check/marks.js +84 -0
  235. package/dist/report/check/render/text-digest-renderer.js +332 -0
  236. package/dist/report/check/session-actions.js +90 -0
  237. package/dist/report/check/session-check.js +91 -0
  238. package/dist/report/choose-policy.js +61 -0
  239. package/dist/report/flow-reads.js +18 -0
  240. package/dist/report/private-files/tell-lists.js +84 -0
  241. package/dist/report/project-rules.js +33 -0
  242. package/dist/report/render/home-relative.js +18 -0
  243. package/dist/report/render/html-head.js +26 -0
  244. package/dist/report/render/html-report-components.js +48 -0
  245. package/dist/report/render/html-report-styles.js +500 -0
  246. package/dist/report/render/html-sidebar.js +42 -0
  247. package/dist/report/render/path-tail.js +14 -0
  248. package/dist/report/render/report-copy.js +1177 -0
  249. package/dist/report/render/report-page/advanced-view.js +167 -0
  250. package/dist/report/render/report-page/file-story.js +114 -0
  251. package/dist/report/render/report-page/files-view.js +381 -0
  252. package/dist/report/render/report-page/files.js +77 -0
  253. package/dist/report/render/report-page/fix-wizard-script.js +269 -0
  254. package/dist/report/render/report-page/fix-wizard.js +310 -0
  255. package/dist/report/render/report-page/helpers-view.js +383 -0
  256. package/dist/report/render/report-page/helpers.js +51 -0
  257. package/dist/report/render/report-page/item-names.js +63 -0
  258. package/dist/report/render/report-page/protect-patterns.js +13 -0
  259. package/dist/report/render/report-page/providers.js +208 -0
  260. package/dist/report/render/report-page/record-view.js +367 -0
  261. package/dist/report/render/report-page/report-page-renderer.js +129 -0
  262. package/dist/report/render/report-page/report-views.js +31 -0
  263. package/dist/report/render/report-page/story-window.js +356 -0
  264. package/dist/report/render/report-page/times.js +25 -0
  265. package/dist/report/render/report-page/to-do-view.js +299 -0
  266. package/dist/report/render/report-page/to-do.js +152 -0
  267. package/dist/report/render/report-page.js +1 -0
  268. package/dist/report/render/session-view.js +250 -0
  269. package/dist/report/render/text-report-renderer.js +981 -0
  270. package/dist/report/render/ui/add-file-popup.js +122 -0
  271. package/dist/report/render/ui/app-sidebar.js +78 -0
  272. package/dist/report/render/ui/ask-panel.js +80 -0
  273. package/dist/report/render/ui/avatar.js +19 -0
  274. package/dist/report/render/ui/backdrop.js +29 -0
  275. package/dist/report/render/ui/brand-mark.js +4 -0
  276. package/dist/report/render/ui/button.js +67 -0
  277. package/dist/report/render/ui/callout.js +20 -0
  278. package/dist/report/render/ui/chat-example.js +17 -0
  279. package/dist/report/render/ui/checklist.js +50 -0
  280. package/dist/report/render/ui/confirm-dialog.js +34 -0
  281. package/dist/report/render/ui/data-table.js +49 -0
  282. package/dist/report/render/ui/drawer.js +25 -0
  283. package/dist/report/render/ui/file-chip.js +37 -0
  284. package/dist/report/render/ui/fold-line.js +22 -0
  285. package/dist/report/render/ui/guide-card.js +25 -0
  286. package/dist/report/render/ui/hero.js +37 -0
  287. package/dist/report/render/ui/labelled-select.js +10 -0
  288. package/dist/report/render/ui/live-script.js +222 -0
  289. package/dist/report/render/ui/local-date.js +58 -0
  290. package/dist/report/render/ui/mode-icon.js +6 -0
  291. package/dist/report/render/ui/page-shell.js +101 -0
  292. package/dist/report/render/ui/pill-tabs.js +47 -0
  293. package/dist/report/render/ui/popup.js +77 -0
  294. package/dist/report/render/ui/progress.js +35 -0
  295. package/dist/report/render/ui/project-list.js +284 -0
  296. package/dist/report/render/ui/scope-choice.js +19 -0
  297. package/dist/report/render/ui/stats.js +21 -0
  298. package/dist/report/render/ui/status-icon.js +30 -0
  299. package/dist/report/render/ui/status-look.js +21 -0
  300. package/dist/report/render/ui/switch.js +11 -0
  301. package/dist/report/render/ui/tag.js +19 -0
  302. package/dist/report/render/ui/task-list.js +56 -0
  303. package/dist/report/render/ui/tokens.js +46 -0
  304. package/dist/report/render/ui/update-notice.js +146 -0
  305. package/dist/report/render/ui/words/app-words.js +163 -0
  306. package/dist/report/render/ui/words/conversations-words.js +457 -0
  307. package/dist/report/render/ui/words/month-words.js +59 -0
  308. package/dist/report/render/ui/words/onboarding-words.js +446 -0
  309. package/dist/report/render/ui/words/projects-words.js +217 -0
  310. package/dist/report/render/ui/words/report-words.js +2099 -0
  311. package/dist/report/render/ui/words/settings-words.js +611 -0
  312. package/dist/report/render/ui/words/to-fix-words.js +287 -0
  313. package/dist/report/report-model.js +2 -0
  314. package/dist/report/report-use-case.js +1 -0
  315. package/dist/report/rule-names.js +20 -0
  316. package/dist/report/session-report.js +163 -0
  317. package/dist/report/start/app-nav.js +37 -0
  318. package/dist/report/start/conversations/calendar-view.js +104 -0
  319. package/dist/report/start/conversations/conversation-columns.js +187 -0
  320. package/dist/report/start/conversations/conversations-renderer.js +54 -0
  321. package/dist/report/start/conversations/empty-week.js +120 -0
  322. package/dist/report/start/conversations/files-window.js +166 -0
  323. package/dist/report/start/conversations/period-section.js +280 -0
  324. package/dist/report/start/conversations/periods-script.js +440 -0
  325. package/dist/report/start/conversations/periods.js +110 -0
  326. package/dist/report/start/conversations/week-view.js +30 -0
  327. package/dist/report/start/conversations/weeks.js +17 -0
  328. package/dist/report/start/month/month-renderer.js +50 -0
  329. package/dist/report/start/month/month-view.js +135 -0
  330. package/dist/report/start/month/months.js +17 -0
  331. package/dist/report/start/onboarding/done.js +171 -0
  332. package/dist/report/start/onboarding/finish-onboarding.js +93 -0
  333. package/dist/report/start/onboarding/intro.js +100 -0
  334. package/dist/report/start/onboarding/onboarding-changes.js +40 -0
  335. package/dist/report/start/onboarding/onboarding-renderer.js +195 -0
  336. package/dist/report/start/onboarding/onboarding-script.js +400 -0
  337. package/dist/report/start/onboarding/onboarding-view.js +98 -0
  338. package/dist/report/start/onboarding/project-step.js +210 -0
  339. package/dist/report/start/onboarding/steps.js +239 -0
  340. package/dist/report/start/onboarding/welcome.js +66 -0
  341. package/dist/report/start/page-notice.js +10 -0
  342. package/dist/report/start/projects/index-projects.js +43 -0
  343. package/dist/report/start/projects/moved-page.js +82 -0
  344. package/dist/report/start/projects/project-switch.js +138 -0
  345. package/dist/report/start/projects/projects-window.js +67 -0
  346. package/dist/report/start/projects/temporary-space.js +18 -0
  347. package/dist/report/start/render/air-datepicker-vendor.js +27 -0
  348. package/dist/report/start/render/session-status.js +41 -0
  349. package/dist/report/start/render/start-words.js +84 -0
  350. package/dist/report/start/repository.js +28 -0
  351. package/dist/report/start/serve/index-handler.js +372 -0
  352. package/dist/report/start/serve/onboarding-request.js +50 -0
  353. package/dist/report/start/serve/settings-request.js +1 -0
  354. package/dist/report/start/serve/settings-setup.js +193 -0
  355. package/dist/report/start/session-index.js +1 -0
  356. package/dist/report/start/session-start.js +974 -0
  357. package/dist/report/start/settings/alerts-tab.js +104 -0
  358. package/dist/report/start/settings/files-tab.js +169 -0
  359. package/dist/report/start/settings/general-tab.js +71 -0
  360. package/dist/report/start/settings/settings-renderer.js +254 -0
  361. package/dist/report/start/settings/settings-script.js +161 -0
  362. package/dist/report/start/settings/settings-view.js +240 -0
  363. package/dist/report/start/settings/settings-windows.js +334 -0
  364. package/dist/report/start/settings-files.js +43 -0
  365. package/dist/report/start/to-fix/done-list.js +45 -0
  366. package/dist/report/start/to-fix/file-window.js +110 -0
  367. package/dist/report/start/to-fix/to-fix-list.js +70 -0
  368. package/dist/report/start/to-fix/to-fix-renderer.js +237 -0
  369. package/dist/report/start/to-fix/to-fix-script.js +94 -0
  370. package/dist/report/start/to-fix/to-fix-view.js +124 -0
  371. package/dist/report/watch/agent-alert.js +72 -0
  372. package/dist/report/watch/notice-choices.js +35 -0
  373. package/dist/report/watch/notice-settings.js +65 -0
  374. package/dist/report/watch/preferences.js +100 -0
  375. package/dist/report/watch/render/instruction-words.js +54 -0
  376. package/dist/report/watch/render/notice-words.js +182 -0
  377. package/dist/report/watch/subagent-watch.js +345 -0
  378. package/dist/report/watch/watch-notice.js +1 -0
  379. package/dist/setup/behind.js +18 -0
  380. package/dist/setup/codex-mirror.js +171 -0
  381. package/dist/setup/not-a-project.js +19 -0
  382. package/dist/setup/project-setup.js +644 -0
  383. package/dist/setup/protected-patterns.js +30 -0
  384. package/dist/shared/colour.js +23 -0
  385. package/dist/shared/compare.js +4 -0
  386. package/dist/shared/content-version.js +13 -0
  387. package/dist/shared/counter.js +11 -0
  388. package/dist/shared/file-stamp.js +4 -0
  389. package/dist/shared/json.js +13 -0
  390. package/dist/shared/label.js +13 -0
  391. package/dist/shared/package-name.js +6 -0
  392. package/dist/shared/plain-invocation.js +44 -0
  393. package/dist/shared/plain-version.js +21 -0
  394. package/dist/shared/printable.js +25 -0
  395. package/dist/shared/renderer.js +1 -0
  396. package/dist/shared/sentence.js +20 -0
  397. package/dist/shared/terminal-logo.js +41 -0
  398. package/dist/shared/text-table.js +15 -0
  399. package/dist/shared/wrap.js +29 -0
  400. package/package.json +70 -0
@@ -0,0 +1,2099 @@
1
+ /**
2
+ * What the report page says (`specs/2026-09-23-the-report-page.md`), in the glossary's words. Values arrive escaped.
3
+ * The answers of "I'm stuck" are written here in advance (F43): nothing is asked of a model, and none of them asks a
4
+ * person to paste a key anywhere (guidelines §6).
5
+ */
6
+ export const REPORT_WORDS = {
7
+ en: {
8
+ 'rp.title': 'Report · agentwhy',
9
+ 'rp.nav.todo': 'Your to-do list',
10
+ 'rp.nav.helpers': 'How it went',
11
+ 'rp.nav.files': 'Files',
12
+ 'rp.nav.advanced': 'Advanced',
13
+ 'rp.nav.back': '← All conversations',
14
+ 'rp.hero.fact.one': 'Your AI opened a private file.',
15
+ 'rp.hero.fact.other': 'Your AI opened {n} private files.',
16
+ 'rp.hero.todo.one': 'Let’s make it safe.',
17
+ 'rp.hero.todo.other': 'Let’s make them safe.',
18
+ 'rp.hero.done.one': 'You made it safe.',
19
+ 'rp.hero.done.other': 'You made them safe.',
20
+ 'rp.hero.lead': 'Your AI read what it opened, and now it has this information. Follow the steps below, one file at a time.',
21
+ 'rp.guide.start': 'Not sure where to start? I’ll guide you.',
22
+ 'rp.guide.startBody': 'We’ll go one file at a time. About 2 minutes each.',
23
+ 'rp.guide.go': 'Start →',
24
+ 'rp.done.title': 'You’re done. Nice work.',
25
+ 'rp.done.keys': 'The keys the AI saw don’t work anymore.',
26
+ 'rp.done.other': 'You did what could be done for every file.',
27
+ 'rp.todo.heading': 'Your to-do list',
28
+ 'rp.todo.progress': '{done} of {total} done',
29
+ 'rp.col.file': 'File',
30
+ 'rp.col.details': 'Details',
31
+ 'rp.col.action': 'Action',
32
+ 'rp.what': 'What happened',
33
+ 'rp.fix': 'Fix it →',
34
+ 'rp.fixed': 'Done ✓',
35
+ 'rp.nothing.title': 'Your AI didn’t read anything private in this conversation.',
36
+ 'rp.nothing.allowed': 'Your AI read only private files you let it read in this conversation.',
37
+ 'rp.shape.title': 'A result contains something that looks like a password or key.',
38
+ 'rp.shape.fact': 'Something looks like a key.',
39
+ 'rp.shape.action': 'Check if it is real.',
40
+ 'rp.shape.body': 'It was not in a file this project protects. Kind: {kinds}.',
41
+ 'rp.item.keys': 'Keys for {providers}',
42
+ 'rp.item.template': 'A sample file with keys in it',
43
+ 'rp.item.private': 'A private file',
44
+ 'rule.env': 'Passwords and keys',
45
+ 'rule.npmrc': 'App install passwords',
46
+ 'rule.secrets': 'A file in a secret folder',
47
+ 'rule.ssh': 'Computer login keys',
48
+ 'provider.ai': 'Your AI account',
49
+ 'provider.github': 'Your code on GitHub',
50
+ 'provider.gitlab': 'Your code on GitLab',
51
+ 'provider.slack': 'Your Slack app',
52
+ 'provider.cloud': 'Your cloud account',
53
+ 'provider.google': 'Google services your app uses',
54
+ 'provider.payments': 'Payments',
55
+ 'provider.supabase': 'Your Supabase account',
56
+ 'provider.npm': 'Installing and publishing packages',
57
+ 'provider.servers': 'Your servers',
58
+ 'provider.email': 'Sending emails',
59
+ 'provider.database': 'Your database',
60
+ 'provider.backend': 'Your app’s backend',
61
+ 'provider.login': 'Signing people in to your app',
62
+ 'provider.hosting': 'Where your app runs online',
63
+ 'provider.dev': 'Tools you build your app with',
64
+ 'provider.monitoring': 'Error tracking and logs',
65
+ 'provider.analytics': 'Tracking how people use your app',
66
+ 'provider.sms': 'Text messages and calls',
67
+ 'provider.chat': 'Your chat bot',
68
+ 'provider.realtime': 'Live updates and calls in your app',
69
+ 'provider.files': 'Your app’s files, images and videos',
70
+ 'provider.maps': 'Maps in your app',
71
+ 'provider.search': 'Search in your app',
72
+ 'provider.content': 'Your website’s content',
73
+ 'provider.shop': 'Your online shop',
74
+ 'provider.social': 'Connecting to social media',
75
+ 'provider.workspace': 'Your work tools',
76
+ 'wz.keys.guess': 'We think so from its name: {names}',
77
+ 'wz.keys.textGuess': 'Each card is a website your keys are for. Go there, make a new key and delete the old one.',
78
+ 'wz.file': 'File {n} of {total}',
79
+ 'wz.step.keys': 'New keys',
80
+ 'wz.step.app': 'Your app',
81
+ 'wz.step.done': 'Done',
82
+ 'wz.step.limit': 'Limit the damage',
83
+ 'wz.step.stop': 'Stop it next time',
84
+ 'wz.now': 'Now fixing',
85
+ 'wz.context.keys.one': 'Your AI read the keys in {name}. The old keys still work until you change them.',
86
+ 'wz.context.keys.other': '{n} AIs read the keys in {name}. The old keys still work until you change them.',
87
+ 'wz.context.data.one': 'Your AI read {name}. This can’t be taken back, but you can limit the damage.',
88
+ 'wz.context.data.other': '{n} AIs read {name}. This can’t be taken back, but you can limit the damage.',
89
+ 'wz.stepOf': 'Step {n} of 2',
90
+ 'wz.keys.title': 'Let’s make new keys',
91
+ 'wz.keys.text': 'This file has keys for {providers}. Open each one, make a new key and delete the old one.',
92
+ 'wz.keys.textUnnamed': 'Open the file. Each line starts with a name - STRIPE_… means Stripe. Go there and make a new key.',
93
+ 'wz.keys.unnamed': 'The keys in this file',
94
+ 'wz.keys.unnamedWhat': 'Make a new one for each, and delete the old ones.',
95
+ 'wz.keys.others': 'Other keys in this file',
96
+ 'wz.keys.textLines': 'We don’t know where these keys come from. Make a new one where you got each - or, if you made it up yourself, just change it.',
97
+ 'wz.keys.lineWhat': 'Make a new one, and delete the old one.',
98
+ 'wz.keys.notKey': 'Not a key, like NODE_ENV? Just mark it done.',
99
+ 'wz.context.every.one': 'Opening a file shows your AI every line in it - here, {n} key.',
100
+ 'wz.context.every.other': 'Opening a file shows your AI every line in it - here, {n} keys.',
101
+ 'wz.keys.testNote': 'Looks like a test key from its name - less urgent.',
102
+ 'wz.keys.more.one': 'Show 1 more key',
103
+ 'wz.keys.more.other': 'Show {n} more keys',
104
+ 'wz.keys.open.one': '1 key looks public - nothing to change',
105
+ 'wz.keys.open.other': '{n} keys look public - nothing to change',
106
+ 'wz.keys.openWhy': 'From their names, apps show these to every visitor anyway, so changing them doesn’t help. If one of them is a secret, change it too.',
107
+ 'wz.open': 'Open {provider}',
108
+ 'wz.app.title': 'Put the new keys in your app',
109
+ 'wz.app.text': 'Do this yourself — it takes a minute.',
110
+ 'wz.app.warnStrong': 'Don’t paste the new keys into your AI.',
111
+ 'wz.app.warn': 'It would see them again, and we’d be back where we started.',
112
+ 'wz.app.open': 'Open this file on your computer:',
113
+ 'wz.copy': 'Copy location',
114
+ 'wz.copied': 'Copied ✓',
115
+ 'wz.app.lines': 'Find these lines. Replace everything after = with your new key:',
116
+ 'wz.app.placeholder': 'paste new key here',
117
+ 'wz.app.linesGeneric': 'Find the lines with your old keys in them, and replace each key after = with the new one.',
118
+ 'wz.app.save': 'Save the file. If your app is online, change the same keys where it’s hosted too (for example Vercel or Netlify settings).',
119
+ 'wz.data.title': 'Limit the damage',
120
+ 'wz.data.ask': 'What’s in this file?',
121
+ 'wz.data.people': 'People’s details (customers, users, staff)',
122
+ 'wz.data.business': 'A contract or other business document',
123
+ 'wz.data.other': 'Something else private',
124
+ 'wz.data.nothing': 'Nothing private in it',
125
+ 'wz.data.text': 'You can’t take the copy back. But these things help.',
126
+ 'wz.data.report': 'Check whether you must report it',
127
+ 'wz.data.reportWhat': 'In the EU and the UK, a leak of people’s details may have to be reported to the data protection authority within 72 hours of finding it, and the people told if the risk to them is high.',
128
+ 'wz.data.agreement': 'Check what your agreement says',
129
+ 'wz.data.agreementWhat': 'It may say you must tell the other side.',
130
+ 'wz.data.team': 'Tell your security or IT team',
131
+ 'wz.data.teamWhat': 'Let them know which file your AI read. They’ll decide what happens next.',
132
+ 'wz.data.move': 'Move the file out of your project',
133
+ 'wz.data.moveWhat': 'Your AI works in your project folder. Kept outside it, the file is much harder for your AI to reach.',
134
+ 'wz.stop.title': 'Make sure it doesn’t happen again',
135
+ 'wz.stop.text': 'Protect this file. Claude Code will have to ask you before it opens it.',
136
+ 'wz.protect': 'Protect it →',
137
+ 'wz.stop.honest': 'This stops the obvious tries, not every trick. If something slips past, you’ll still see it in your report.',
138
+ 'wz.done.keys.title': 'This file is safe now.',
139
+ 'wz.done.keys.text': 'The keys the AI saw don’t work anymore.',
140
+ 'wz.done.data.title': 'You did what you could.',
141
+ 'wz.done.data.text': 'This file is on your list as done.',
142
+ 'wz.left.one': '1 left to go.',
143
+ 'wz.left.other': '{n} left to go.',
144
+ 'wz.last': 'That was the last one!',
145
+ 'wz.back': '← Back',
146
+ 'wz.skip.keys': 'No real keys here',
147
+ 'wz.skip.data': 'Nothing private in it',
148
+ 'wz.all': 'I did it →',
149
+ 'wz.tickFirst': 'First mark each card as done - just click it.',
150
+ 'wz.pickFirst': 'First pick what’s in the file.',
151
+ 'wz.later': 'Skip for now →',
152
+ 'wz.finish': 'Done ✓',
153
+ 'wz.saving': 'Saving…',
154
+ 'wz.copyCommand': 'Copy',
155
+ 'wz.cmd.mark': 'This page isn\u2019t connected to agentwhy, so it can\u2019t save this. To keep the file on your list as done, run this in your project:',
156
+ 'wz.stop.outside': 'This file is outside your project folder, so this page can\u2019t protect it.',
157
+ 'wz.stop.shared': 'This is a shared copy of the report, so it can\u2019t change anything in the project.',
158
+ 'wz.stop.told': 'You chose Track for this file, so your AI may open it and you’re told when it does. To keep it from Claude Code, set it to Block in Settings.',
159
+ 'wz.nextFile': 'Next file →',
160
+ 'wz.backToList': 'Back to my list',
161
+ 'ask.make': 'How do I make a new {provider} key?',
162
+ 'ask.makeAny': 'How do I make a new key?',
163
+ 'ask.makeA': 'Sign in to {provider}. Keys are usually under Settings, in a section called API keys or Tokens. Make a new one, then delete the old one.',
164
+ 'ask.makeAnyA': 'Look at the key’s line in the file: its name usually says which service it is for. Sign in there; keys are usually under Settings, in a section called API keys or Tokens.',
165
+ 'ask.login': 'What if I don’t have a login?',
166
+ 'ask.loginA': 'Ask whoever set up this service for your app — a teammate, or the developer who built it. Until the key is changed, the old one still works.',
167
+ 'ask.stop': 'Will my app stop working?',
168
+ 'ask.stopA': 'Only for a moment. Your app uses the old key until you put the new one in (step 2). Do both steps close together and it keeps working.',
169
+ 'ask.tell': 'Do I have to tell anyone?',
170
+ 'ask.tellA': 'It depends on what is in the file and where you are. If it holds people’s details, the step above says what the law may ask of you. If you’re unsure, ask your security or IT team.',
171
+ 'ask.who': 'Who can see this now?',
172
+ 'ask.whoA': 'Your AI read it, so it is now part of your conversation with the AI. What happens to that conversation depends on your AI and your account settings.',
173
+ 'ask.next': 'How do I stop this next time?',
174
+ 'ask.nextA': 'Protect the file (step 2). Claude Code will then have to ask you before it opens it, and you’ll still see any attempt in your report.',
175
+ 'pr.title': 'Protect this file?',
176
+ 'pr.sentence': 'This protects {path}. Claude Code won\u2019t be able to open it. If it needs it for a task, it will stop and ask you first. You can undo this anytime.',
177
+ 'pr.option': 'Also protect every file called {name}, wherever it is in your project.',
178
+ 'pr.confirm': 'Yes, protect it',
179
+ 'pr.done': 'Protected ✓',
180
+ 'pr.cmd': 'This page isn\u2019t connected to agentwhy, so it can\u2019t protect the file itself. Run this in your project:',
181
+ 'mp.title': 'Make this file private?',
182
+ 'mp.sentence': 'This adds {path} to your private files, in your settings. Claude Code won\u2019t be able to open it. If it needs it for a task, it will stop and ask you first. You can undo this anytime.',
183
+ 'mp.option': 'Also make every file called {name} private, wherever it is in your project.',
184
+ 'mp.confirm': 'Yes, make it private',
185
+ 'mp.cmd': 'This page isn\u2019t connected to agentwhy, so it can\u2019t change your settings itself. Run this in your project:',
186
+ 'st.heading': 'What happened to this file',
187
+ 'st.summary.keys.one': 'Your AI read the keys in this file — and now it has them.',
188
+ 'st.summary.keys.other': '{n} AIs read the keys in this file — and now they have them.',
189
+ 'st.summary.keysHelper': 'A helper read the keys in this file — and now it has them.',
190
+ 'st.summary.data.one': 'Your AI read this file — and now it has this information.',
191
+ 'st.summary.data.other': '{n} AIs read this file — and now they have this information.',
192
+ 'st.summary.dataHelper': 'A helper read this file — and now it has this information.',
193
+ 'st.summary.reached': 'Something from this file reached your AI — and now it has this information.',
194
+ 'st.tab.story': 'The story',
195
+ 'st.tab.diagram': 'Diagram',
196
+ 'st.tab.record': 'Full record',
197
+ 'st.you': 'You',
198
+ 'st.main': 'Your AI',
199
+ 'st.mainLower': 'your AI',
200
+ 'st.helper': 'Helper {ordinal}',
201
+ 'st.company': 'It was exposed',
202
+ 'st.e.read.keys': 'Opened the file and read the keys',
203
+ 'st.e.read.data': 'Opened the file and read it',
204
+ 'st.e.received.keys': 'Read the keys in what its program handed back',
205
+ 'st.e.received.data': 'Read it in what its program handed back',
206
+ 'st.e.again': 'Read it again',
207
+ 'st.e.helperRead.keys': 'A helper read the keys',
208
+ 'st.e.helperRead.data': 'A helper read it',
209
+ 'st.e.helperReadToo.keys': 'A helper read the keys too',
210
+ 'st.e.helperReadToo.data': 'A helper read it too',
211
+ 'st.e.named': 'Saw its name',
212
+ 'st.e.unknown': 'Tried to open it',
213
+ 'st.e.stopped': 'Tried to open it. It was stopped.',
214
+ 'st.e.passed': 'Passed what it read back to {to}',
215
+ 'st.e.saved': 'Saved a copy',
216
+ 'st.e.handed': 'Handed it to a helper',
217
+ 'st.e.repeated': 'Repeated it in a message',
218
+ 'st.e.used': 'Used it to run something',
219
+ 'st.e.company': 'The AI now has this information',
220
+ 'st.sub.did': 'With {did}.',
221
+ 'st.sub.received': 'A small program it wrote handed back the same text as in this file.',
222
+ 'st.sub.didTimes.one': 'With {did}.',
223
+ 'st.sub.didTimes.other': '{n} times, with {did}.',
224
+ 'st.sub.asked': 'It was asked to “{task}”.',
225
+ 'st.sub.notAsked': 'The record doesn’t say what it was asked to do.',
226
+ 'st.sub.unknown': 'The record doesn’t say what happened.',
227
+ 'st.sub.passed': 'What it sent back held something from this file.',
228
+ 'st.sub.saved': 'In {files}.',
229
+ 'st.sub.savedAny': 'Another file got something from this one.',
230
+ 'st.sub.handed': 'Its instructions to a helper held something from this file.',
231
+ 'st.sub.repeated': 'Its own words held something from this file.',
232
+ 'st.sub.used': 'In {programs}.',
233
+ 'st.sub.usedAny': 'A command or a tool was given something from this file.',
234
+ 'st.sub.company': 'Everything above is now in your conversation with the AI.',
235
+ 'st.stat.opened': 'Times opened',
236
+ 'st.stat.readers': 'AIs that read it',
237
+ 'st.stat.stopped': 'Stopped in time',
238
+ 'st.stat.record': 'Record',
239
+ 'st.complete': 'Complete',
240
+ 'st.gaps': 'Has gaps',
241
+ 'st.rec.every': 'Every time it was opened',
242
+ 'st.rec.count.one': '{n} event · in order',
243
+ 'st.rec.count.other': '{n} events · in order',
244
+ 'st.col.n': '#',
245
+ 'st.col.who': 'Who',
246
+ 'st.col.what': 'What happened',
247
+ 'st.col.tool': 'Tool',
248
+ 'st.col.result': 'Result',
249
+ 'st.col.evidence': 'Evidence',
250
+ 'st.res.succeeded': 'succeeded',
251
+ 'st.res.blocked': 'stopped',
252
+ 'st.res.unknown': 'not recorded',
253
+ 'st.rec.each': 'What each AI did with it',
254
+ 'st.rec.yes': 'YES = it happened',
255
+ 'st.col.role': 'Role',
256
+ 'st.col.read': 'Read it',
257
+ 'st.col.passed': 'Passed it on',
258
+ 'st.col.saved': 'Saved a copy',
259
+ 'st.col.repeated': 'Repeated it',
260
+ 'st.col.used': 'Used in a command',
261
+ 'st.col.actions': 'Actions',
262
+ 'st.role.main': 'The AI you talked to',
263
+ 'st.role.helper': 'Brought in by {who}',
264
+ 'st.role.helperAny': 'Brought in to help',
265
+ 'st.yes': 'YES',
266
+ 'st.no': 'NO',
267
+ 'st.rec.details': 'File details',
268
+ 'st.fact.path': 'Full path',
269
+ 'st.fact.rule': 'Matched rule',
270
+ 'st.fact.why': 'Why it’s private',
271
+ 'st.fact.session': 'Session',
272
+ 'st.fact.complete': 'Record complete?',
273
+ 'st.why.env': 'Files like this usually hold keys and passwords.',
274
+ 'st.why.npmrc': 'It usually holds the password for installing your app’s packages.',
275
+ 'st.why.secrets': 'It’s in a folder kept for secrets.',
276
+ 'st.why.ssh': 'Anyone who has keys like this can log in to your computers.',
277
+ 'st.why.other': 'A rule for this project marks it private.',
278
+ 'st.complete.yes': 'Yes — nothing is missing',
279
+ 'st.complete.no': 'No — part of the record is missing',
280
+ 'st.d.asked': 'asked for help',
281
+ 'st.d.hint': 'Hover a box to see where its lines lead.',
282
+ 'st.d.file': 'your private file',
283
+ 'st.d.company': 'the AI has this information',
284
+ 'st.d.readKeys': 'read the keys',
285
+ 'st.d.readIt': 'read it',
286
+ 'st.d.passed': 'passed it back',
287
+ 'st.d.saved': 'saved a copy',
288
+ 'st.d.stopped': 'was stopped',
289
+ 'st.d.named': 'saw its name',
290
+ 'st.d.times': '{n}×',
291
+ 'st.d.legendRead': 'read it / sent a copy',
292
+ 'st.d.legendWork': 'handed over work',
293
+ 'st.foot': 'We only see what the AI wrote down, not what it was thinking.',
294
+ 'hp.eyebrow': 'Behind the scenes',
295
+ 'hp.fact.one': 'Your AI got help from {n} helper.',
296
+ 'hp.fact.other': 'Your AI got help from {n} helpers.',
297
+ 'hp.some.one': 'Only {n} of them read your private files.',
298
+ 'hp.some.other': 'Only {n} of them read your private files.',
299
+ 'hp.all.one': 'It read your private files.',
300
+ 'hp.all.other': 'All of them read your private files.',
301
+ 'hp.noneRead': 'None of them read your private files.',
302
+ 'hp.lead': 'Helpers are extra AIs your AI brings in to work faster. Here’s who saw your private files.',
303
+ 'hp.tab.list': 'List',
304
+ 'hp.tab.diagram': 'Diagram',
305
+ 'hp.line.read.one': 'Read {n} private file',
306
+ 'hp.line.read.other': 'Read {n} private files',
307
+ 'hp.line.sample': 'Only saw a sample file.',
308
+ 'hp.line.named': 'Only saw a file’s name.',
309
+ 'hp.line.unknown': 'Tried to open a private file. The record doesn’t say what happened.',
310
+ 'hp.line.stopped': 'Tried to open a private file. It was stopped.',
311
+ 'hp.line.none': 'Didn’t touch anything private.',
312
+ 'hp.seeWhat': 'See what →',
313
+ 'hp.safe.one': '<strong>{n} other helper</strong> <span class="fold-rest">didn’t see anything real.</span>',
314
+ 'hp.safe.other': '<strong>{n} other helpers</strong> <span class="fold-rest">didn’t see anything real.</span>',
315
+ 'hp.col.start': 'Start',
316
+ 'hp.col.main': 'Your AI',
317
+ 'hp.col.helpers': 'Helpers',
318
+ 'hp.col.files': 'Files',
319
+ 'hp.key.read': 'Read it',
320
+ 'hp.key.named': 'Only saw the name',
321
+ 'hp.key.stopped': 'Stopped',
322
+ 'hp.key.work': 'Gave work to',
323
+ 'hp.you.sub': 'Asked for the work',
324
+ 'hp.file.named': 'Only its name was seen',
325
+ 'hp.file.unknown': 'Not recorded what happened',
326
+ 'hp.file.stopped': 'Stopped in time',
327
+ 'hp.hint': 'Hover a box to see its lines. Click to open the details.',
328
+ 'hp.job': 'Its job',
329
+ 'hp.mainJob': 'The work you asked for in this conversation.',
330
+ 'hp.opened': 'Did it open a private file?',
331
+ 'hp.yes': 'Yes',
332
+ 'hp.no': 'No',
333
+ 'hp.answer.read': 'It read what’s inside these files:',
334
+ 'hp.answer.sample': 'It saw the name of a sample file, but nothing shows it looked inside.',
335
+ 'hp.answer.named': 'It saw the name of a private file, but nothing shows it looked inside.',
336
+ 'hp.answer.unknown': 'It tried to open a private file, and the record doesn’t say what happened.',
337
+ 'hp.answer.stopped': 'It tried to open a private file. It was stopped in time.',
338
+ 'hp.answer.none': 'It stayed away from your private files.',
339
+ 'hp.next': 'What it did next',
340
+ 'hp.next.passed': 'Passed it to another AI',
341
+ 'hp.next.saved': 'Saved a copy',
342
+ 'hp.next.repeated': 'Repeated it in a message',
343
+ 'hp.next.used': 'Used it to run something',
344
+ 'hp.explain': '✦ Explain this in simple words',
345
+ 'hp.ex.brought': '{who} brought it in to help.',
346
+ 'hp.ex.read': 'It read {files}.',
347
+ 'hp.ex.passed': 'Something from them went on to another AI.',
348
+ 'hp.ex.saved': 'It saved something from them into another file.',
349
+ 'hp.ex.repeated': 'It repeated something from them in its own words.',
350
+ 'hp.ex.used': 'It used something from them to run a command.',
351
+ 'hp.ex.company': 'Everything it read is now in your conversation with the AI.',
352
+ 'hp.fix': 'Fix these files →',
353
+ 'fl.eyebrow': 'Everything it opened',
354
+ 'fl.fact.one': 'Your AI opened {n} file.',
355
+ 'fl.fact.other': 'Your AI opened {n} files.',
356
+ 'fl.some.one': 'Only {n} was private.',
357
+ 'fl.some.other': 'Only {n} were private.',
358
+ 'fl.all.one': 'It was private.',
359
+ 'fl.all.other': 'All of them were private.',
360
+ 'fl.noneRead': 'None of them were private.',
361
+ 'fl.lead': 'The rest were everyday work files. Nothing to do there.',
362
+ 'fl.leadAll': 'Each one is below, with what to do about it.',
363
+ 'fl.leadNone': 'They were everyday work files. Nothing to do there.',
364
+ 'fl.search': 'Find a file',
365
+ 'fl.group.all': 'All files',
366
+ 'fl.group.fix': 'To fix',
367
+ 'fl.group.fixed': 'Already fixed',
368
+ 'fl.did.q': 'What the AI did:',
369
+ 'fl.did.any': 'Anything',
370
+ 'fl.did.read': 'Opened and read it',
371
+ 'fl.did.name': 'Only saw the name',
372
+ 'fl.did.stopped': 'Was stopped',
373
+ 'fl.prot.q': 'Private file:',
374
+ 'fl.prot.any': 'Any',
375
+ 'fl.prot.no': 'Not blocked',
376
+ 'fl.prot.yes': 'Blocked',
377
+ 'fl.prot.na': 'Not private',
378
+ 'fl.prot.told': 'Track',
379
+ 'fl.clear': 'Clear filters',
380
+ 'fl.col.file': 'File',
381
+ 'fl.col.ai': 'AI',
382
+ 'fl.col.prot': 'Private file',
383
+ 'fl.col.mode': 'When your AI reaches it',
384
+ 'fl.col.action': 'Action',
385
+ 'fl.acc.read': 'Read it',
386
+ 'fl.acc.name': 'Name only',
387
+ 'fl.acc.unknown': 'Not recorded',
388
+ 'fl.acc.stopped': 'Stopped',
389
+ 'fl.acc.changed': 'Changed it',
390
+ 'fl.tag.private': 'Private',
391
+ 'fl.tag.na': 'Not private',
392
+ 'fl.mode.yes': 'Blocked',
393
+ 'fl.mode.told': 'Track',
394
+ 'fl.mode.no': 'Not blocked',
395
+ 'fl.mode.unknown': 'Can’t tell',
396
+ 'fl.mode.na': 'Not needed',
397
+ 'fl.act.fix': 'Fix it →',
398
+ 'fl.act.fixed': 'Fixed ✓',
399
+ 'fl.act.none': 'Nothing to do',
400
+ 'fl.protect': 'Protect it →',
401
+ 'fl.makePrivate': 'Make it private →',
402
+ 'fl.tier.read': 'Private files your AI read',
403
+ 'fl.tier.name': 'Private files it only saw the name of',
404
+ 'fl.tier.rest': 'Everything else',
405
+ 'fl.shown': '{shown} of {n} files shown.',
406
+ 'fl.commands': 'Files your AI reached only through a command are listed when they are private.',
407
+ 'fl.noMatch': 'No files match.',
408
+ 'fl.kind.aiNotes': 'Notes for the AI',
409
+ 'fl.kind.notes': 'Notes about your app',
410
+ 'fl.kind.settings': 'App settings',
411
+ 'fl.kind.code': 'Part of your app',
412
+ 'fl.kind.file': 'A file',
413
+ 'fl.w.did': 'What the AI did',
414
+ 'fl.w.prot': 'Protected?',
415
+ 'fl.w.next': 'What to do',
416
+ 'fl.w.did.read': 'Your AI opened this file and read what’s inside.',
417
+ 'fl.w.did.name': 'Your AI saw this file’s name, but nothing shows it read what’s inside.',
418
+ 'fl.w.did.unknown': 'Your AI tried to open this file, and the record doesn’t say what happened.',
419
+ 'fl.w.did.stopped': 'Your AI tried to open this file. It was stopped in time.',
420
+ 'fl.w.did.everydayRead': 'Your AI opened this file and read it.',
421
+ 'fl.w.did.changed': 'Your AI changed this file.',
422
+ 'fl.w.did.everydayStopped': 'Your AI tried to work on this file, and every try was refused.',
423
+ 'fl.w.prot.yes': 'Protected. Claude Code can’t open it without asking you first.',
424
+ 'fl.w.prot.no': 'Not protected. Claude Code can open it anytime.',
425
+ 'fl.w.prot.unknown': 'We couldn’t read your project’s settings, so we can’t tell.',
426
+ 'fl.w.prot.na': 'An everyday work file. No rule marks it private, so it doesn’t need protection.',
427
+ 'fl.w.prot.told': 'You chose Track: your AI may open it, and you’re told when it does.',
428
+ 'fl.w.next.safe': 'Nothing to do. This file is safe.',
429
+ 'fl.w.next.maybe': 'Nothing to do. If you’d rather Claude Code never opens it, protect it.',
430
+ 'fl.w.next.none': 'Nothing to do.',
431
+ 'fl.w.next.told': 'Nothing to do. If you’d rather Claude Code never opens it, set it to Block in Settings.',
432
+ 'adv.eyebrow': 'Advanced',
433
+ 'adv.title': 'The full record',
434
+ 'adv.lead': 'For developers. Every private file and every helper, with the tools used and the evidence behind it.',
435
+ 'adv.tab.files': 'Private files',
436
+ 'adv.tab.helpers': 'Helpers',
437
+ 'adv.stat.files': 'Private files read',
438
+ 'adv.stat.ais': 'AIs involved',
439
+ 'adv.stat.events': 'Events recorded',
440
+ 'adv.stat.fixed': 'Fixed',
441
+ 'adv.col.file': 'File',
442
+ 'adv.col.readBy': 'Read by',
443
+ 'adv.col.access': 'Access',
444
+ 'adv.col.tools': 'Tools',
445
+ 'adv.col.events': 'Events',
446
+ 'adv.col.firstLast': 'First → last record',
447
+ 'adv.col.helper': 'Helper',
448
+ 'adv.col.asked': 'What it was asked',
449
+ 'adv.col.touched': 'Files touched',
450
+ 'adv.col.actions': 'Actions',
451
+ 'adv.needs': 'Needs action · {n}',
452
+ 'adv.fixed': 'Fixed · {n}',
453
+ 'adv.noFiles': 'No private file’s contents reached an AI.',
454
+ 'adv.hint': 'Click a row to see every event for that file.',
455
+ 'adv.status.read': 'Read private files',
456
+ 'adv.status.sample': 'Sample file only',
457
+ 'adv.status.named': 'Only saw a name',
458
+ 'adv.status.unknown': 'Not recorded',
459
+ 'adv.status.stopped': 'Stopped',
460
+ 'adv.status.none': 'Nothing private',
461
+ 'rp.gap.banner': 'Part of this conversation’s record is missing, so this list may be short.',
462
+ 'rp.gap.link': 'See what’s missing →',
463
+ 'rp.gap.fact': 'Nothing to fix that we can see.',
464
+ 'rp.gap.action': 'But part of the record is missing.',
465
+ 'rp.gap.stopped': 'Your protection worked.',
466
+ 'rp.gap.body': 'Part of this conversation’s record is missing. No evidence here is not the same as nothing happened.',
467
+ 'adv.tab.record': 'Record',
468
+ // 2026-09-27-what-codex-wrote.md X23, X19-X22: what a Codex record cannot show, and what it recorded at the time.
469
+ 'rp.gap.codex.action': 'But Codex doesn’t write down every step.',
470
+ 'rp.gap.codex.legacyAction': 'But Codex didn’t write down its commands.',
471
+ 'rp.gap.codex.lead': 'Codex doesn’t write down every step, so this report may not show everything it opened.',
472
+ 'rp.gap.codex.body': 'It writes down most of what it does. Here’s what it did write down.',
473
+ 'rp.gap.codex.legacy': 'Codex saved this conversation in an older way that doesn’t show which commands it ran. Here’s what it did write down.',
474
+ 'rp.gap.codex.banner': 'Codex doesn’t write down every step, so this list may be missing something.',
475
+ 'rec.recorded': 'What {ai} recorded at the time',
476
+ 'rec.recorded.note': 'These are the settings {ai} had during the conversation. They are not your agentwhy rules: this report checks your private files as they are set now.',
477
+ 'rec.perm.turns.one': '{n} turn',
478
+ 'rec.perm.turns.other': '{n} turns',
479
+ 'rec.perm.approval': 'asks before acting: {value}',
480
+ 'rec.perm.approver': 'answered by: {value}',
481
+ 'rec.perm.sandbox': 'sandbox: {value}',
482
+ 'rec.perm.network': 'network: {value}',
483
+ 'rec.perm.scopes': 'may read in {read} and write in {write} places',
484
+ 'rec.perm.writable': 'May write in',
485
+ 'rec.perm.incomplete': 'Part of it wasn’t understood and is left out.',
486
+ 'rec.who.person': 'you',
487
+ 'rec.who.reviewer': 'the reviewer {ai} runs',
488
+ 'rec.who.unrecognised': 'not known',
489
+ 'rec.who.unrecorded': 'not recorded',
490
+ 'rec.net.allowed': 'on',
491
+ 'rec.net.restricted': 'off',
492
+ 'rec.net.unrecognised': 'not known',
493
+ 'rec.net.unrecorded': 'not recorded',
494
+ 'rec.value.none': 'not recorded',
495
+ 'rec.reviews': 'What the reviewer {ai} runs decided',
496
+ 'rec.review.allowed': 'Allowed an action in a turn ({who}). Which action isn’t recorded.',
497
+ 'rec.review.allowedNoTurn': 'Allowed an action, in no turn the record names.',
498
+ 'rec.review.unrecognised': 'Gave an answer we don’t know. It isn’t read as a refusal.',
499
+ 'rec.review.risk': 'risk: {risk}',
500
+ 'rec.review.why.one': 'its reasons: {n} character, not shown',
501
+ 'rec.review.why.other': 'its reasons: {n} characters, not shown',
502
+ 'rec.q.actions': 'which actions ran',
503
+ 'rec.q.access': 'what an action reached',
504
+ 'rec.q.output-delivery': 'what reached your AI',
505
+ 'rec.q.own-words': 'everything your AI wrote',
506
+ 'rec.q.reasoning': 'what your AI worked out before acting',
507
+ 'rec.q.refusals': 'whether an action was stopped',
508
+ 'rec.q.permissions': 'which permissions were in force',
509
+ 'rec.shapes': 'Key shapes in results',
510
+ 'rec.shapes.none': 'No result carried anything shaped like a key.',
511
+ // The Record tab (report page spec P61), redrawn 2026-09-29: an answer first, then each gap as a row saying what it
512
+ // changes, in the reader's language - never the model's English lines.
513
+ 'rec.gap.title.gaps': 'Part of this conversation isn’t in the record',
514
+ 'rec.gap.lead.gaps': 'Everything this report shows is in the record. But something is missing from it, so the report may not show everything: nothing on a list doesn’t mean nothing happened.',
515
+ 'rec.gap.title.clean': 'The record of this conversation is complete',
516
+ 'rec.gap.lead.clean': 'We found nothing missing from it, so this report is built on the whole conversation.',
517
+ 'rec.gap.tag.gaps': 'Has gaps',
518
+ 'rec.gap.tag.clean': 'Complete',
519
+ 'rec.gap.missing': 'Missing from the record',
520
+ 'rec.gap.times.one': 'once',
521
+ 'rec.gap.times.other': '{n} times',
522
+ 'rec.gap.which': 'Show which',
523
+ 'rec.gap.k.session-missing.t': 'The conversation couldn’t be read',
524
+ 'rec.gap.k.session-missing.d': 'Nothing in this report can be taken as a finding.',
525
+ 'rec.gap.k.source-missing.t': 'A part of the record is missing',
526
+ 'rec.gap.k.source-missing.d': 'A file of this conversation - a helper’s, for example - was gone or couldn’t be read, so what happened in it isn’t here.',
527
+ 'rec.gap.k.record-damaged.t': 'A damaged line',
528
+ 'rec.gap.k.record-damaged.d': 'A line of the record couldn’t be read. It may have been cut off while it was being written.',
529
+ 'rec.gap.k.result-missing.t': 'An action with no result',
530
+ 'rec.gap.k.result-missing.d': 'Your AI started it, but the record holds no answer, so we don’t know if it worked or what it returned.',
531
+ 'rec.gap.k.spilled-result-missing.t': 'A long result is gone',
532
+ 'rec.gap.k.spilled-result-missing.d': 'It was kept in a separate file that isn’t there anymore.',
533
+ 'rec.gap.k.outcome-unrecognised.t': 'An ending we don’t know',
534
+ 'rec.gap.k.outcome-unrecognised.d': 'The record marks how an action ended in a way this version of agentwhy doesn’t know, so we don’t guess.',
535
+ 'rec.gap.k.relation-unresolved.t': 'Actions we couldn’t match up',
536
+ 'rec.gap.k.relation-unresolved.d': 'We couldn’t tell for sure which result belongs to which action, so we don’t say how they ended.',
537
+ 'rec.gap.k.result-incomplete.t': 'A text that may be cut short',
538
+ 'rec.gap.k.result-incomplete.d': 'We can say what is in it, but not what isn’t: the missing part may have held more.',
539
+ 'rec.gap.k.answer-unread.t': 'A helper’s answer couldn’t be read',
540
+ 'rec.gap.k.answer-unread.d': 'So we don’t know what it passed back to your AI.',
541
+ 'rec.gap.k.answer-awaited.t': 'A helper’s answer never arrived',
542
+ 'rec.gap.k.answer-awaited.d': 'It worked in the background, and its answer never reached your AI.',
543
+ 'rec.gap.unknown.t': 'Actions with no known ending',
544
+ 'rec.gap.unknown.d': 'We don’t know if they worked or were stopped.',
545
+ 'rec.gap.unresolved.t': 'Helpers with no known start',
546
+ 'rec.gap.unresolved.d': 'We don’t know who brought them in or what they were asked.',
547
+ 'rec.gap.lost.t': 'Helpers asked for but not in the record',
548
+ 'rec.gap.lost.d': 'Your AI asked for help, but the helper’s own record isn’t here, so what it did isn’t shown.',
549
+ 'rec.cap.h': 'What this record can’t show',
550
+ 'rec.cap.lead': 'Nothing broke: {ai} doesn’t write these down, or we haven’t checked yet whether it does. So the report can neither confirm them nor rule them out.',
551
+ 'rec.cap.tag.absent': 'Not written down',
552
+ 'rec.cap.tag.unmeasured': 'Not checked yet',
553
+ 'rec.cap.shown': '{ai} does write down {list}.',
554
+ 'rec.cap.t.actions': 'Which actions ran',
555
+ 'rec.cap.d.actions': 'There may have been more than the report shows.',
556
+ 'rec.cap.t.access': 'What an action opened',
557
+ 'rec.cap.d.access': 'A command may have opened a file the report doesn’t name.',
558
+ 'rec.cap.t.output-delivery': 'What reached your AI',
559
+ 'rec.cap.d.output-delivery': 'We can’t tell for sure which results your AI actually saw.',
560
+ 'rec.cap.t.own-words': 'Everything your AI wrote',
561
+ 'rec.cap.d.own-words': 'Some of its messages may not be in the record.',
562
+ 'rec.cap.t.reasoning': 'What your AI thought before acting',
563
+ 'rec.cap.d.reasoning': 'We can’t show why it chose a step.',
564
+ 'rec.cap.t.refusals': 'Whether an action was stopped',
565
+ 'rec.cap.d.refusals': 'When an action was stopped, the record may not say so.',
566
+ 'rec.cap.t.permissions': 'Which permissions your AI had',
567
+ 'rec.cap.d.permissions': 'We can’t show what it was allowed to do.',
568
+ 'rec.note': 'Even from a complete record, a report can’t tell why your AI did something, everything it was told, or whether a key it saw actually leaked. A file name in a command counts as reached - sometimes it is only a mention, not an opening.',
569
+ 'rec.how.h': 'How we checked this conversation',
570
+ 'rec.how.rule': 'What counts as a problem',
571
+ 'rec.how.rule.no-read': 'Your AI opening or searching a private file',
572
+ 'rec.how.rule.no-disclose': 'Your AI passing on something from a private file. Reading it is allowed.',
573
+ 'rec.how.rule.other': 'A rule this page doesn’t describe: see the technical details',
574
+ 'rec.how.files': 'Which files are private',
575
+ 'rec.how.files.builtIn': 'agentwhy’s built-in list: {patterns}, {exceptions}',
576
+ 'rec.how.files.own': 'Your own list: {patterns}, {exceptions}',
577
+ 'rec.how.files.note': 'Checked against the list as it is now, not as it was during the conversation. A name that matches is a reason to look, not proof that something leaked.',
578
+ 'rec.how.paths': 'File paths',
579
+ 'rec.how.paths.full': 'Shown in full',
580
+ 'rec.how.paths.shared': 'Shortened for sharing',
581
+ 'rec.how.root.known': 'Relative to your project’s folder.',
582
+ 'rec.how.root.absent': 'Exactly as written: the record doesn’t say which folder the project is in.',
583
+ 'rec.how.root.ambiguous': 'Exactly as written: the conversation worked in {n} folders, so no one of them is the project’s.',
584
+ 'rec.how.session': 'Conversation ID',
585
+ 'rec.how.level': 'Rule',
586
+ 'rec.how.origin': 'Where the rule came from',
587
+ 'rec.runs.none': 'No AI did anything with a private file, so there is no run to show.',
588
+ 'rec.actions.one': 'Every action it took ({n})',
589
+ 'rec.actions.other': 'Every action it took ({n})',
590
+ 'rec.runs.lead': 'Each AI’s steps with private files, in the order of the record.',
591
+ 'rec.runs.key.coral': 'Had the file’s text',
592
+ 'rec.runs.key.blue': 'Only the name',
593
+ 'rec.runs.key.amber': 'Not known',
594
+ 'rec.runs.key.mint': 'Stopped',
595
+ 'rec.cameBack': 'What came back',
596
+ 'st.unknownYn': 'NOT KNOWN',
597
+ 'st.e.inResult.keys': 'Saw the keys in what a command printed',
598
+ 'st.e.inResult.data': 'Saw what\u2019s inside in what a command printed',
599
+ 'st.sub.inResult': 'No command asked for this file. {did} printed it.',
600
+ 'st.sub.lines.one': 'A search printed 1 line of this file, with {did}.',
601
+ 'st.sub.lines.other': 'A search printed {n} lines of this file, with {did}.',
602
+ 'st.sub.inResultLines.one': 'No command asked for this file. {did} printed 1 line of it.',
603
+ 'st.sub.inResultLines.other': 'No command asked for this file. {did} printed {n} lines of it.',
604
+ 'hp.line.empty': 'Its actions were not recorded.',
605
+ 'hp.answer.empty': 'Its actions were not recorded, so this can\u2019t say what it did. That does not mean it did nothing.',
606
+ 'adv.status.empty': 'Not recorded',
607
+ 'rp.when': 'Report from {when}',
608
+ 'st.col.time': 'Time',
609
+ 'st.rec.timesNote': 'Times are when each line was written. The order is the record\u2019s.',
610
+ 'hp.alone.fact': 'Your AI worked alone.',
611
+ 'hp.alone.unsure': 'Your AI has no helpers in the record.',
612
+ 'hp.alone.lead': 'Helpers are extra AIs your AI can bring in to work faster. This time it brought in none. Here’s what it did itself.',
613
+ 'hp.alone.unsure.lead': 'Part of the record is missing, so we can’t say it worked alone. Here’s what your AI did itself.',
614
+ 'hp.alone.empty.lead': 'That doesn’t mean nothing happened. It means this report can’t say what did.',
615
+ 'hp.alone.read.one': 'It read {n} private file.',
616
+ 'hp.alone.read.other': 'It read {n} private files.',
617
+ 'hp.alone.sample.one': 'It only saw a sample file.',
618
+ 'hp.alone.sample.other': 'It only saw sample files.',
619
+ 'hp.alone.named.one': 'It only saw a private file’s name.',
620
+ 'hp.alone.named.other': 'It only saw the names of {n} private files.',
621
+ 'hp.alone.unknown': 'It tried to open a private file. The record doesn’t say what happened.',
622
+ 'hp.alone.stopped': 'It tried to open a private file. It was stopped in time.',
623
+ 'hp.alone.none': 'It didn’t touch anything private.',
624
+ 'hp.alone.empty': 'Its own actions weren’t recorded either.',
625
+ 'rp.clean.seeFiles': 'See every file it opened',
626
+ 'rp.clean.stopped.one': 'It tried to open {n} private file. It was stopped in time.',
627
+ 'rp.clean.stopped.other': 'It tried to open {n} private files. It was stopped in time.',
628
+ 'rp.clean.stoppedLine': 'Your protection worked. Nothing to do.',
629
+ 'rp.clean.unknown.one': 'It tried to open {n} private file.',
630
+ 'rp.clean.unknown.other': 'It tried to open {n} private files.',
631
+ 'rp.clean.unknownLine': 'The record doesn\u2019t say what happened.',
632
+ 'rp.clean.helpers.one': 'It brought in {n} helper.',
633
+ 'rp.clean.helpers.other': 'It brought in {n} helpers.',
634
+ 'rp.clean.helpersClean.one': 'It didn\u2019t read your private files.',
635
+ 'rp.clean.helpersClean.other': 'None of them read your private files.',
636
+ 'rp.clean.helpersUnknown.one': 'Not everything it did was recorded.',
637
+ 'rp.clean.helpersUnknown.other': 'Not everything they did was recorded.',
638
+ 'rp.clean.seeHelpers': 'See how it went',
639
+ 'rp.clean.record': 'See the full record',
640
+ 'rp.nothing.fact': 'All good.',
641
+ 'rp.nothing.action': 'Nothing to fix.',
642
+ 'rp.nothing.back': 'Done — back to conversations',
643
+ 'rp.asked': 'You asked',
644
+ 'rp.clean.heading': 'What happened',
645
+ 'rp.clean.private': 'It didn’t open any private file.',
646
+ 'rp.clean.privateTag': 'None',
647
+ 'rp.clean.privateLine': 'Your passwords, keys and customer data stayed closed.',
648
+ 'rp.clean.privateShape': 'No file marked private was opened. The warning above is about something in a result.',
649
+ 'rp.clean.allowed.one': 'It read {n} private file you let it read.',
650
+ 'rp.clean.allowed.other': 'It read {n} private files you let it read.',
651
+ 'rp.clean.allowedLine.one': 'You chose Track for it, and what it read held no key we recognise. Nothing to do.',
652
+ 'rp.clean.allowedLine.other': 'You chose Track for them, and what it read held no key we recognise. Nothing to do.',
653
+ 'rp.clean.named.one': 'It saw {n} private file name.',
654
+ 'rp.clean.named.other': 'It saw {n} private file names.',
655
+ 'rp.clean.namedLine.one': 'It didn’t see what is inside, so nothing to do.',
656
+ 'rp.clean.namedLine.other': 'It didn’t see what is inside them, so nothing to do.',
657
+ 'rp.clean.namedLineGap.one': 'The record doesn’t show whether it saw what is inside.',
658
+ 'rp.clean.namedLineGap.other': 'The record doesn’t show whether it saw what is inside them.',
659
+ 'rp.clean.noHelpers': 'It worked alone.',
660
+ 'rp.clean.noHelpersTag': 'No helpers',
661
+ 'rp.clean.alone': 'It didn’t start any other AI to help.',
662
+ 'rp.ask.title': 'Questions about this report? Ask me.',
663
+ 'rp.ask.name': 'What does “saw the name” mean?',
664
+ 'rp.ask.nameA': 'Your AI saw the file’s name, not what is in it.\nA name can show up in a list of files, or in a command that didn’t print the file.\nNothing from inside the file reached your AI, so there is nothing to change.',
665
+ 'rp.ask.safe': 'Is my data safe?',
666
+ 'rp.ask.safeA': 'Nothing here shows your AI read a private file.\nIt didn’t open any file marked private in this conversation.\nWe only see what your AI wrote down, not what it was thinking.',
667
+ 'rp.ask.safeAllowedA': 'Your AI read only the private files you let it read. You chose Track for them.\nWhat it read held no key we recognise, so there is nothing to change.\nIf Claude Code should never open one of them, switch it to Block in Settings.',
668
+ 'rp.ask.change': 'Should I change anything?',
669
+ 'rp.ask.changeA': 'No. Nothing here needs fixing.\nIf there is a file your AI should never open, add it to your private files. From then on, every report shows when your AI reaches it.',
670
+ 'rp.dev.title': 'Details for your developer',
671
+ 'rp.shape.next': 'If it is a real key, change it where it was made: until then, anyone with it can use it.',
672
+ 'rp.shape.link': 'See where it appeared \u2192',
673
+ 'fl.noneListed': 'Your AI didn\u2019t open any file we can list.',
674
+ 'fl.names.one': '<strong>{n} file name it only saw</strong> <span class="fold-rest">Nothing shows it was opened, or that it is in your project.</span>',
675
+ 'fl.names.other': '<strong>{n} file names it only saw</strong> <span class="fold-rest">Nothing shows these were opened, or that they are in your project.</span>',
676
+ 'wz.data.askHelp': 'Open the file and look at what\u2019s in it. Pick what fits best, and we\u2019ll show you what to do.',
677
+ 'wz.data.peopleWhat': 'Names, emails, phone numbers or addresses of real people - customers, users, staff.',
678
+ 'wz.data.businessWhat': 'An agreement, an invoice, prices or plans you would only share with some people.',
679
+ 'wz.data.otherWhat': 'Anything else you wouldn\u2019t post in public - notes, exports, logins that aren\u2019t keys.',
680
+ },
681
+ pl: {
682
+ 'rp.title': 'Raport · agentwhy',
683
+ 'rp.nav.todo': 'Twoja lista',
684
+ 'rp.nav.helpers': 'Przebieg',
685
+ 'rp.nav.files': 'Pliki',
686
+ 'rp.nav.advanced': 'Zaawansowane',
687
+ 'rp.nav.back': '← Wszystkie rozmowy',
688
+ 'rp.hero.fact.one': 'Twoje AI otworzyło prywatny plik.',
689
+ 'rp.hero.fact.few': 'Twoje AI otworzyło {n} prywatne pliki.',
690
+ 'rp.hero.fact.many': 'Twoje AI otworzyło {n} prywatnych plików.',
691
+ 'rp.hero.todo.one': 'Zabezpieczmy go.',
692
+ 'rp.hero.todo.few': 'Zabezpieczmy je.',
693
+ 'rp.hero.todo.many': 'Zabezpieczmy je.',
694
+ 'rp.hero.done.one': 'Zabezpieczyłeś go.',
695
+ 'rp.hero.done.few': 'Zabezpieczyłeś je.',
696
+ 'rp.hero.done.many': 'Zabezpieczyłeś je.',
697
+ 'rp.hero.lead': 'Twoje AI przeczytało to, co otworzyło, i teraz ma te informacje. Idź krok po kroku, jeden plik na raz.',
698
+ 'rp.guide.start': 'Nie wiesz, od czego zacząć? Poprowadzę cię.',
699
+ 'rp.guide.startBody': 'Jeden plik na raz. Około 2 minut na każdy.',
700
+ 'rp.guide.go': 'Zaczynamy →',
701
+ 'rp.done.title': 'Gotowe. Dobra robota.',
702
+ 'rp.done.keys': 'Klucze, które widziało AI, już nie działają.',
703
+ 'rp.done.other': 'Zrobiłeś, co się dało, przy każdym pliku.',
704
+ 'rp.todo.heading': 'Twoja lista',
705
+ 'rp.todo.progress': '{done} z {total} zrobione',
706
+ 'rp.col.file': 'Plik',
707
+ 'rp.col.details': 'Szczegóły',
708
+ 'rp.col.action': 'Akcja',
709
+ 'rp.what': 'Co się stało',
710
+ 'rp.fix': 'Napraw →',
711
+ 'rp.fixed': 'Zrobione ✓',
712
+ 'rp.nothing.title': 'Twoje AI nie przeczytało w tej rozmowie nic prywatnego.',
713
+ 'rp.nothing.allowed': 'Twoje AI przeczytało w tej rozmowie tylko prywatne pliki, na które mu pozwoliłeś.',
714
+ 'rp.shape.title': 'W wyniku jest coś, co wygląda na hasło albo klucz.',
715
+ 'rp.shape.fact': 'Coś wygląda na klucz.',
716
+ 'rp.shape.action': 'Sprawdź, czy jest prawdziwy.',
717
+ 'rp.shape.body': 'Nie było w pliku, który chroni ten projekt. Rodzaj: {kinds}.',
718
+ 'rp.item.keys': 'Klucze do {providers}',
719
+ 'rp.item.template': 'Przykładowy plik z kluczami',
720
+ 'rp.item.private': 'Prywatny plik',
721
+ 'rule.env': 'Hasła i klucze',
722
+ 'rule.npmrc': 'Hasła do instalowania aplikacji',
723
+ 'rule.secrets': 'Plik w tajnym folderze',
724
+ 'rule.ssh': 'Klucze logowania do komputerów',
725
+ 'provider.ai': 'Twoje konto AI',
726
+ 'provider.github': 'Twój kod na GitHubie',
727
+ 'provider.gitlab': 'Twój kod na GitLabie',
728
+ 'provider.slack': 'Twoja aplikacja Slack',
729
+ 'provider.cloud': 'Twoje konto w chmurze',
730
+ 'provider.google': 'Usługi Google, z których korzysta aplikacja',
731
+ 'provider.payments': 'Płatności',
732
+ 'provider.supabase': 'Twoje konto Supabase',
733
+ 'provider.npm': 'Instalowanie i publikowanie paczek',
734
+ 'provider.servers': 'Twoje serwery',
735
+ 'provider.email': 'Wysyłanie e-maili',
736
+ 'provider.database': 'Twoja baza danych',
737
+ 'provider.backend': 'Zaplecze twojej aplikacji',
738
+ 'provider.login': 'Logowanie do twojej aplikacji',
739
+ 'provider.hosting': 'Gdzie działa twoja aplikacja',
740
+ 'provider.dev': 'Narzędzia, którymi budujesz aplikację',
741
+ 'provider.monitoring': 'Śledzenie błędów i logi',
742
+ 'provider.analytics': 'Statystyki korzystania z aplikacji',
743
+ 'provider.sms': 'SMS-y i połączenia',
744
+ 'provider.chat': 'Twój bot na czacie',
745
+ 'provider.realtime': 'Powiadomienia na żywo i rozmowy w aplikacji',
746
+ 'provider.files': 'Pliki, zdjęcia i filmy twojej aplikacji',
747
+ 'provider.maps': 'Mapy w twojej aplikacji',
748
+ 'provider.search': 'Wyszukiwarka w twojej aplikacji',
749
+ 'provider.content': 'Treści twojej strony',
750
+ 'provider.shop': 'Twój sklep internetowy',
751
+ 'provider.social': 'Połączenie z mediami społecznościowymi',
752
+ 'provider.workspace': 'Twoje narzędzia do pracy',
753
+ 'wz.keys.guess': 'Tak sądzimy po nazwie: {names}',
754
+ 'wz.keys.textGuess': 'Każda karta to strona, do której są twoje klucze. Wejdź tam, zrób nowy klucz i usuń stary.',
755
+ 'wz.file': 'Plik {n} z {total}',
756
+ 'wz.step.keys': 'Nowe klucze',
757
+ 'wz.step.app': 'Twoja aplikacja',
758
+ 'wz.step.done': 'Gotowe',
759
+ 'wz.step.limit': 'Ogranicz szkody',
760
+ 'wz.step.stop': 'Na przyszłość',
761
+ 'wz.now': 'Teraz naprawiasz',
762
+ 'wz.context.keys.one': 'Twoje AI przeczytało klucze w {name}. Stare klucze działają, dopóki ich nie zmienisz.',
763
+ 'wz.context.keys.few': '{n} AI przeczytały klucze w {name}. Stare klucze działają, dopóki ich nie zmienisz.',
764
+ 'wz.context.keys.many': '{n} AI przeczytało klucze w {name}. Stare klucze działają, dopóki ich nie zmienisz.',
765
+ 'wz.context.data.one': 'Twoje AI przeczytało {name}. Tego nie da się cofnąć, ale możesz ograniczyć szkody.',
766
+ 'wz.context.data.few': '{n} AI przeczytały {name}. Tego nie da się cofnąć, ale możesz ograniczyć szkody.',
767
+ 'wz.context.data.many': '{n} AI przeczytało {name}. Tego nie da się cofnąć, ale możesz ograniczyć szkody.',
768
+ 'wz.stepOf': 'Krok {n} z 2',
769
+ 'wz.keys.title': 'Zróbmy nowe klucze',
770
+ 'wz.keys.text': 'W tym pliku są klucze do {providers}. Otwórz każdy, zrób nowy klucz i usuń stary.',
771
+ 'wz.keys.textUnnamed': 'Otwórz plik. Każda linia zaczyna się od nazwy - STRIPE_… to Stripe. Wejdź tam i zrób nowy klucz.',
772
+ 'wz.keys.unnamed': 'Klucze w tym pliku',
773
+ 'wz.keys.unnamedWhat': 'Zrób nowy dla każdego i usuń stare.',
774
+ 'wz.keys.others': 'Pozostałe klucze w tym pliku',
775
+ 'wz.keys.textLines': 'Nie wiemy, skąd są te klucze. Zrób nowy tam, skąd masz każdy - a jeśli to klucz wymyślony przez ciebie, po prostu go zmień.',
776
+ 'wz.keys.lineWhat': 'Zrób nowy i usuń stary.',
777
+ 'wz.keys.notKey': 'To nie klucz, jak NODE_ENV? Po prostu oznacz jako zrobione.',
778
+ 'wz.context.every.one': 'Otwarcie pliku pokazuje AI każdą linię - tutaj {n} klucz.',
779
+ 'wz.context.every.few': 'Otwarcie pliku pokazuje AI każdą linię - tutaj {n} klucze.',
780
+ 'wz.context.every.many': 'Otwarcie pliku pokazuje AI każdą linię - tutaj {n} kluczy.',
781
+ 'wz.context.every.other': 'Otwarcie pliku pokazuje AI każdą linię - tutaj {n} klucza.',
782
+ 'wz.keys.testNote': 'Po nazwie wygląda na klucz testowy - mniej pilne.',
783
+ 'wz.keys.more.one': 'Pokaż jeszcze 1 klucz',
784
+ 'wz.keys.more.few': 'Pokaż jeszcze {n} klucze',
785
+ 'wz.keys.more.many': 'Pokaż jeszcze {n} kluczy',
786
+ 'wz.keys.more.other': 'Pokaż jeszcze {n} klucza',
787
+ 'wz.keys.open.one': '1 klucz wygląda na publiczny - nic do zmiany',
788
+ 'wz.keys.open.few': '{n} klucze wyglądają na publiczne - nic do zmiany',
789
+ 'wz.keys.open.many': '{n} kluczy wygląda na publiczne - nic do zmiany',
790
+ 'wz.keys.open.other': '{n} klucza wygląda na publiczne - nic do zmiany',
791
+ 'wz.keys.openWhy': 'Po nazwach sądzimy, że aplikacje i tak pokazują je każdemu odwiedzającemu, więc zmiana nic nie da. Jeśli któryś z nich jest sekretem, zmień też jego.',
792
+ 'wz.open': 'Otwórz {provider}',
793
+ 'wz.app.title': 'Wstaw nowe klucze do aplikacji',
794
+ 'wz.app.text': 'Zrób to sam — to zajmie minutę.',
795
+ 'wz.app.warnStrong': 'Nie wklejaj nowych kluczy do swojego AI.',
796
+ 'wz.app.warn': 'Zobaczyłoby je znowu i wrócilibyśmy do punktu wyjścia.',
797
+ 'wz.app.open': 'Otwórz ten plik na swoim komputerze:',
798
+ 'wz.copy': 'Kopiuj ścieżkę',
799
+ 'wz.copied': 'Skopiowano ✓',
800
+ 'wz.app.lines': 'Znajdź te linie. Zastąp wszystko po = nowym kluczem:',
801
+ 'wz.app.placeholder': 'wklej tu nowy klucz',
802
+ 'wz.app.linesGeneric': 'Znajdź linie ze starymi kluczami i zastąp każdy klucz po = nowym.',
803
+ 'wz.app.save': 'Zapisz plik. Jeśli aplikacja działa w internecie, zmień te same klucze także tam, gdzie jest hostowana (np. w ustawieniach Vercel albo Netlify).',
804
+ 'wz.data.title': 'Ogranicz szkody',
805
+ 'wz.data.ask': 'Co jest w tym pliku?',
806
+ 'wz.data.people': 'Dane osób (klientów, użytkowników, pracowników)',
807
+ 'wz.data.business': 'Umowa albo inny dokument firmowy',
808
+ 'wz.data.other': 'Coś innego prywatnego',
809
+ 'wz.data.nothing': 'Nie ma w nim nic prywatnego',
810
+ 'wz.data.text': 'Kopii nie da się odzyskać. Ale te kroki pomagają.',
811
+ 'wz.data.report': 'Sprawdź, czy musisz to zgłosić',
812
+ 'wz.data.reportWhat': 'W UE i Wielkiej Brytanii wyciek danych osób może wymagać zgłoszenia do organu ochrony danych w ciągu 72 godzin od wykrycia, a przy wysokim ryzyku także powiadomienia tych osób.',
813
+ 'wz.data.agreement': 'Sprawdź, co mówi umowa',
814
+ 'wz.data.agreementWhat': 'Może wymagać powiadomienia drugiej strony.',
815
+ 'wz.data.team': 'Powiedz zespołowi bezpieczeństwa albo IT',
816
+ 'wz.data.teamWhat': 'Daj im znać, który plik przeczytało AI. Oni zdecydują, co dalej.',
817
+ 'wz.data.move': 'Przenieś plik poza projekt',
818
+ 'wz.data.moveWhat': 'Twoje AI pracuje w folderze projektu. Poza nim plik jest dla AI dużo trudniej dostępny.',
819
+ 'wz.stop.title': 'Niech to się nie powtórzy',
820
+ 'wz.stop.text': 'Ochroń ten plik. Claude Code będzie musiał zapytać cię, zanim go otworzy.',
821
+ 'wz.protect': 'Chroń →',
822
+ 'wz.stop.honest': 'To zatrzymuje oczywiste próby, nie każdą sztuczkę. Jeśli coś się prześlizgnie, i tak zobaczysz to w raporcie.',
823
+ 'wz.done.keys.title': 'Ten plik jest teraz bezpieczny.',
824
+ 'wz.done.keys.text': 'Klucze, które widziało AI, już nie działają.',
825
+ 'wz.done.data.title': 'Zrobiłeś, co się dało.',
826
+ 'wz.done.data.text': 'Ten plik jest na liście jako zrobiony.',
827
+ 'wz.left.one': 'Został 1.',
828
+ 'wz.left.few': 'Zostały {n}.',
829
+ 'wz.left.many': 'Zostało {n}.',
830
+ 'wz.last': 'To był ostatni!',
831
+ 'wz.back': '← Wstecz',
832
+ 'wz.skip.keys': 'Nie ma tu prawdziwych kluczy',
833
+ 'wz.skip.data': 'Nie ma w nim nic prywatnego',
834
+ 'wz.all': 'Gotowe →',
835
+ 'wz.tickFirst': 'Najpierw oznacz każdą kartę jako zrobioną - wystarczy ją kliknąć.',
836
+ 'wz.pickFirst': 'Najpierw wybierz, co jest w pliku.',
837
+ 'wz.later': 'Pomiń na razie →',
838
+ 'wz.finish': 'Gotowe ✓',
839
+ 'wz.saving': 'Zapisuję…',
840
+ 'wz.copyCommand': 'Kopiuj',
841
+ 'wz.cmd.mark': 'Ta strona nie jest połączona z agentwhy, więc nie może tego zapisać. Żeby plik został na liście jako zrobiony, uruchom to w projekcie:',
842
+ 'wz.stop.outside': 'Ten plik jest poza folderem projektu, więc ta strona nie może go chronić.',
843
+ 'wz.stop.shared': 'To udostępniona kopia raportu, więc nie może niczego zmienić w projekcie.',
844
+ 'wz.stop.told': 'Dla tego pliku wybrałeś Obserwuje, więc twoje AI może go otworzyć, a ty dostajesz o tym wiadomość. Żeby Claude Code go nie otwierał, ustaw Blokuj w Ustawieniach.',
845
+ 'wz.nextFile': 'Następny plik →',
846
+ 'wz.backToList': 'Wróć do listy',
847
+ 'ask.make': 'Jak zrobić nowy klucz {provider}?',
848
+ 'ask.makeAny': 'Jak zrobić nowy klucz?',
849
+ 'ask.makeA': 'Zaloguj się do {provider}. Klucze są zwykle w Ustawieniach, w sekcji API keys albo Tokens. Zrób nowy, potem usuń stary.',
850
+ 'ask.makeAnyA': 'Spójrz na linię klucza w pliku: jego nazwa zwykle mówi, do jakiej usługi jest. Zaloguj się tam; klucze są zwykle w Ustawieniach, w sekcji API keys albo Tokens.',
851
+ 'ask.login': 'Co, jeśli nie mam loginu?',
852
+ 'ask.loginA': 'Zapytaj osobę, która ustawiła tę usługę dla aplikacji — kogoś z zespołu albo programistę. Dopóki klucz nie jest zmieniony, stary działa.',
853
+ 'ask.stop': 'Czy aplikacja przestanie działać?',
854
+ 'ask.stopA': 'Tylko na chwilę. Aplikacja używa starego klucza, dopóki nie wstawisz nowego (krok 2). Zrób oba kroki blisko siebie, a będzie działać.',
855
+ 'ask.tell': 'Czy muszę komuś powiedzieć?',
856
+ 'ask.tellA': 'To zależy od tego, co jest w pliku i gdzie jesteś. Jeśli są w nim dane osób, krok powyżej mówi, czego może wymagać prawo. Jeśli nie wiesz, zapytaj zespół bezpieczeństwa albo IT.',
857
+ 'ask.who': 'Kto może to teraz zobaczyć?',
858
+ 'ask.whoA': 'Twoje AI to przeczytało, więc jest to teraz częścią twojej rozmowy z AI. Co dalej dzieje się z tą rozmową, zależy od twojego AI i ustawień twojego konta.',
859
+ 'ask.next': 'Jak zapobiec temu następnym razem?',
860
+ 'ask.nextA': 'Ochroń plik (krok 2). Wtedy Claude Code będzie musiał zapytać cię, zanim go otworzy, a każdą próbę i tak zobaczysz w raporcie.',
861
+ 'pr.title': 'Chronić ten plik?',
862
+ 'pr.sentence': 'To chroni {path}. Claude Code nie będzie mógł go otworzyć. Jeśli będzie go potrzebował, zatrzyma się i najpierw zapyta. Możesz to w każdej chwili cofnąć.',
863
+ 'pr.option': 'Chroń też każdy plik o nazwie {name}, gdziekolwiek jest w projekcie.',
864
+ 'pr.confirm': 'Tak, chroń',
865
+ 'pr.done': 'Chroniony ✓',
866
+ 'pr.cmd': 'Ta strona nie jest połączona z agentwhy, więc sama nie ochroni pliku. Uruchom to w projekcie:',
867
+ 'mp.title': 'Oznaczyć ten plik jako prywatny?',
868
+ 'mp.sentence': 'To dodaje {path} do twoich plików prywatnych, w ustawieniach. Claude Code nie będzie mógł go otworzyć. Jeśli będzie go potrzebował, zatrzyma się i najpierw zapyta. Możesz to w każdej chwili cofnąć.',
869
+ 'mp.option': 'Oznacz też każdy plik o nazwie {name}, gdziekolwiek jest w projekcie.',
870
+ 'mp.confirm': 'Tak, oznacz jako prywatny',
871
+ 'mp.cmd': 'Ta strona nie jest połączona z agentwhy, więc sama nie zmieni ustawień. Uruchom to w projekcie:',
872
+ 'st.heading': 'Co się stało z tym plikiem',
873
+ 'st.summary.keys.one': 'Twoje AI przeczytało klucze z tego pliku — i teraz je ma.',
874
+ 'st.summary.keys.few': '{n} AI przeczytały klucze z tego pliku — i teraz je mają.',
875
+ 'st.summary.keys.many': '{n} AI przeczytało klucze z tego pliku — i teraz je mają.',
876
+ 'st.summary.keys.other': '{n} AI przeczytało klucze z tego pliku — i teraz je mają.',
877
+ 'st.summary.keysHelper': 'Pomocnik przeczytał klucze z tego pliku — i teraz je ma.',
878
+ 'st.summary.data.one': 'Twoje AI przeczytało ten plik — i teraz ma te informacje.',
879
+ 'st.summary.data.few': '{n} AI przeczytały ten plik — i teraz mają te informacje.',
880
+ 'st.summary.data.many': '{n} AI przeczytało ten plik — i teraz mają te informacje.',
881
+ 'st.summary.data.other': '{n} AI przeczytało ten plik — i teraz mają te informacje.',
882
+ 'st.summary.dataHelper': 'Pomocnik przeczytał ten plik — i teraz ma te informacje.',
883
+ 'st.summary.reached': 'Coś z tego pliku dotarło do twojego AI — i teraz ma te informacje.',
884
+ 'st.tab.story': 'Historia',
885
+ 'st.tab.diagram': 'Diagram',
886
+ 'st.tab.record': 'Pełny zapis',
887
+ 'st.you': 'Ty',
888
+ 'st.main': 'Twoje AI',
889
+ 'st.mainLower': 'twojego AI',
890
+ 'st.helper': 'Pomocnik {ordinal}',
891
+ 'st.company': 'Zostało ujawnione',
892
+ 'st.e.read.keys': 'Otworzyło plik i przeczytało klucze',
893
+ 'st.e.read.data': 'Otworzyło plik i go przeczytało',
894
+ 'st.e.received.keys': 'Przeczytało klucze w tym, co oddał jego program',
895
+ 'st.e.received.data': 'Przeczytało go w tym, co oddał jego program',
896
+ 'st.e.again': 'Przeczytało go ponownie',
897
+ 'st.e.helperRead.keys': 'Pomocnik przeczytał klucze',
898
+ 'st.e.helperRead.data': 'Pomocnik go przeczytał',
899
+ 'st.e.helperReadToo.keys': 'Pomocnik też przeczytał klucze',
900
+ 'st.e.helperReadToo.data': 'Pomocnik też go przeczytał',
901
+ 'st.e.named': 'Zobaczyło jego nazwę',
902
+ 'st.e.unknown': 'Próbowało go otworzyć',
903
+ 'st.e.stopped': 'Próbowało go otworzyć. Zostało zatrzymane.',
904
+ 'st.e.passed': 'Przekazało to, co przeczytało, do {to}',
905
+ 'st.e.saved': 'Zapisało kopię',
906
+ 'st.e.handed': 'Przekazało to pomocnikowi',
907
+ 'st.e.repeated': 'Powtórzyło to w wiadomości',
908
+ 'st.e.used': 'Użyło tego, żeby coś uruchomić',
909
+ 'st.e.company': 'AI ma teraz te informacje',
910
+ 'st.sub.did': 'Przez {did}.',
911
+ 'st.sub.received': 'Mały program, który napisało, oddał mu ten sam tekst, co w tym pliku.',
912
+ 'st.sub.didTimes.one': 'Przez {did}.',
913
+ 'st.sub.didTimes.few': '{n} razy, przez {did}.',
914
+ 'st.sub.didTimes.many': '{n} razy, przez {did}.',
915
+ 'st.sub.didTimes.other': '{n} razy, przez {did}.',
916
+ 'st.sub.asked': 'Poproszono go: „{task}”.',
917
+ 'st.sub.notAsked': 'Zapis nie mówi, o co go poproszono.',
918
+ 'st.sub.unknown': 'Zapis nie mówi, co się stało.',
919
+ 'st.sub.passed': 'To, co odesłało, zawierało coś z tego pliku.',
920
+ 'st.sub.saved': 'W {files}.',
921
+ 'st.sub.savedAny': 'Inny plik dostał coś z tego.',
922
+ 'st.sub.handed': 'Jego polecenie dla pomocnika zawierało coś z tego pliku.',
923
+ 'st.sub.repeated': 'Jego własne słowa zawierały coś z tego pliku.',
924
+ 'st.sub.used': 'W {programs}.',
925
+ 'st.sub.usedAny': 'Polecenie albo narzędzie dostało coś z tego pliku.',
926
+ 'st.sub.company': 'Wszystko powyżej jest teraz w twojej rozmowie z AI.',
927
+ 'st.stat.opened': 'Ile razy otwarty',
928
+ 'st.stat.readers': 'AI, które go przeczytały',
929
+ 'st.stat.stopped': 'Zatrzymane w porę',
930
+ 'st.stat.record': 'Zapis',
931
+ 'st.complete': 'Pełny',
932
+ 'st.gaps': 'Ma luki',
933
+ 'st.rec.every': 'Każde otwarcie',
934
+ 'st.rec.count.one': '{n} zdarzenie · po kolei',
935
+ 'st.rec.count.few': '{n} zdarzenia · po kolei',
936
+ 'st.rec.count.many': '{n} zdarzeń · po kolei',
937
+ 'st.rec.count.other': '{n} zdarzenia · po kolei',
938
+ 'st.col.n': '#',
939
+ 'st.col.who': 'Kto',
940
+ 'st.col.what': 'Co się stało',
941
+ 'st.col.tool': 'Narzędzie',
942
+ 'st.col.result': 'Wynik',
943
+ 'st.col.evidence': 'Dowód',
944
+ 'st.res.succeeded': 'udało się',
945
+ 'st.res.blocked': 'zatrzymane',
946
+ 'st.res.unknown': 'brak zapisu',
947
+ 'st.rec.each': 'Co każde AI z nim zrobiło',
948
+ 'st.rec.yes': 'TAK = to się stało',
949
+ 'st.col.role': 'Rola',
950
+ 'st.col.read': 'Przeczytało',
951
+ 'st.col.passed': 'Przekazało dalej',
952
+ 'st.col.saved': 'Zapisało kopię',
953
+ 'st.col.repeated': 'Powtórzyło',
954
+ 'st.col.used': 'Użyło w poleceniu',
955
+ 'st.col.actions': 'Działania',
956
+ 'st.role.main': 'AI, z którym rozmawiałeś',
957
+ 'st.role.helper': 'Wezwany przez: {who}',
958
+ 'st.role.helperAny': 'Wezwany do pomocy',
959
+ 'st.yes': 'TAK',
960
+ 'st.no': 'NIE',
961
+ 'st.rec.details': 'Szczegóły pliku',
962
+ 'st.fact.path': 'Pełna ścieżka',
963
+ 'st.fact.rule': 'Pasująca reguła',
964
+ 'st.fact.why': 'Dlaczego jest prywatny',
965
+ 'st.fact.session': 'Sesja',
966
+ 'st.fact.complete': 'Pełny zapis?',
967
+ 'st.why.env': 'Takie pliki zwykle zawierają klucze i hasła.',
968
+ 'st.why.npmrc': 'Zwykle zawiera hasło do instalowania pakietów twojej aplikacji.',
969
+ 'st.why.secrets': 'Leży w folderze na sekrety.',
970
+ 'st.why.ssh': 'Takie klucze pozwalają zalogować się do twoich komputerów.',
971
+ 'st.why.other': 'Reguła dla tego projektu oznacza go jako prywatny.',
972
+ 'st.complete.yes': 'Tak — niczego nie brakuje',
973
+ 'st.complete.no': 'Nie — brakuje części zapisu',
974
+ 'st.d.asked': 'poprosiłeś o pomoc',
975
+ 'st.d.hint': 'Najedź na pole, żeby zobaczyć, dokąd prowadzą jego linie.',
976
+ 'st.d.file': 'twój prywatny plik',
977
+ 'st.d.company': 'AI ma te informacje',
978
+ 'st.d.readKeys': 'przeczytało klucze',
979
+ 'st.d.readIt': 'przeczytało go',
980
+ 'st.d.passed': 'przekazało dalej',
981
+ 'st.d.saved': 'zapisało kopię',
982
+ 'st.d.stopped': 'zostało zatrzymane',
983
+ 'st.d.named': 'zobaczyło nazwę',
984
+ 'st.d.times': '{n}×',
985
+ 'st.d.legendRead': 'przeczytało / wysłało kopię',
986
+ 'st.d.legendWork': 'przekazało pracę',
987
+ 'st.foot': 'Widzimy tylko to, co AI zapisało, nie to, co myślało.',
988
+ 'hp.eyebrow': 'Za kulisami',
989
+ 'hp.fact.one': 'Twoje AI skorzystało z pomocy {n} pomocnika.',
990
+ 'hp.fact.few': 'Twoje AI skorzystało z pomocy {n} pomocników.',
991
+ 'hp.fact.many': 'Twoje AI skorzystało z pomocy {n} pomocników.',
992
+ 'hp.fact.other': 'Twoje AI skorzystało z pomocy {n} pomocników.',
993
+ 'hp.some.one': 'Tylko {n} z nich przeczytał twoje prywatne pliki.',
994
+ 'hp.some.few': 'Tylko {n} z nich przeczytało twoje prywatne pliki.',
995
+ 'hp.some.many': 'Tylko {n} z nich przeczytało twoje prywatne pliki.',
996
+ 'hp.some.other': 'Tylko {n} z nich przeczytało twoje prywatne pliki.',
997
+ 'hp.all.one': 'Przeczytał twoje prywatne pliki.',
998
+ 'hp.all.few': 'Wszyscy przeczytali twoje prywatne pliki.',
999
+ 'hp.all.many': 'Wszyscy przeczytali twoje prywatne pliki.',
1000
+ 'hp.all.other': 'Wszyscy przeczytali twoje prywatne pliki.',
1001
+ 'hp.noneRead': 'Żaden z nich nie przeczytał twoich prywatnych plików.',
1002
+ 'hp.lead': 'Pomocnicy to dodatkowe AI, które twoje AI wzywa, żeby pracować szybciej. Oto kto widział twoje prywatne pliki.',
1003
+ 'hp.tab.list': 'Lista',
1004
+ 'hp.tab.diagram': 'Diagram',
1005
+ 'hp.line.read.one': 'Przeczytał {n} prywatny plik',
1006
+ 'hp.line.read.few': 'Przeczytał {n} prywatne pliki',
1007
+ 'hp.line.read.many': 'Przeczytał {n} prywatnych plików',
1008
+ 'hp.line.read.other': 'Przeczytał {n} prywatnego pliku',
1009
+ 'hp.line.sample': 'Widział tylko przykładowy plik.',
1010
+ 'hp.line.named': 'Widział tylko nazwę pliku.',
1011
+ 'hp.line.unknown': 'Próbował otworzyć prywatny plik. Zapis nie mówi, co się stało.',
1012
+ 'hp.line.stopped': 'Próbował otworzyć prywatny plik. Został zatrzymany.',
1013
+ 'hp.line.none': 'Nie dotknął niczego prywatnego.',
1014
+ 'hp.seeWhat': 'Zobacz co →',
1015
+ 'hp.safe.one': '<strong>{n} inny pomocnik</strong> <span class="fold-rest">nie widział niczego prawdziwego.</span>',
1016
+ 'hp.safe.few': '<strong>{n} inni pomocnicy</strong> <span class="fold-rest">nie widzieli niczego prawdziwego.</span>',
1017
+ 'hp.safe.many': '<strong>{n} innych pomocników</strong> <span class="fold-rest">nie widziało niczego prawdziwego.</span>',
1018
+ 'hp.safe.other': '<strong>{n} innego pomocnika</strong> <span class="fold-rest">nie widziało niczego prawdziwego.</span>',
1019
+ 'hp.col.start': 'Start',
1020
+ 'hp.col.main': 'Twoje AI',
1021
+ 'hp.col.helpers': 'Pomocnicy',
1022
+ 'hp.col.files': 'Pliki',
1023
+ 'hp.key.read': 'Przeczytał',
1024
+ 'hp.key.named': 'Widział tylko nazwę',
1025
+ 'hp.key.stopped': 'Zatrzymany',
1026
+ 'hp.key.work': 'Dał pracę',
1027
+ 'hp.you.sub': 'Zleciłeś pracę',
1028
+ 'hp.file.named': 'Widziano tylko nazwę',
1029
+ 'hp.file.unknown': 'Brak zapisu, co się stało',
1030
+ 'hp.file.stopped': 'Zatrzymano w porę',
1031
+ 'hp.hint': 'Najedź na pole, żeby zobaczyć jego linie. Kliknij, żeby otworzyć szczegóły.',
1032
+ 'hp.job': 'Jego zadanie',
1033
+ 'hp.mainJob': 'Praca, o którą prosiłeś w tej rozmowie.',
1034
+ 'hp.opened': 'Czy otworzył prywatny plik?',
1035
+ 'hp.yes': 'Tak',
1036
+ 'hp.no': 'Nie',
1037
+ 'hp.answer.read': 'Przeczytał zawartość tych plików:',
1038
+ 'hp.answer.sample': 'Widział nazwę przykładowego pliku, ale nic nie wskazuje, że zajrzał do środka.',
1039
+ 'hp.answer.named': 'Widział nazwę prywatnego pliku, ale nic nie wskazuje, że zajrzał do środka.',
1040
+ 'hp.answer.unknown': 'Próbował otworzyć prywatny plik, a zapis nie mówi, co się stało.',
1041
+ 'hp.answer.stopped': 'Próbował otworzyć prywatny plik. Został zatrzymany w porę.',
1042
+ 'hp.answer.none': 'Trzymał się z dala od twoich prywatnych plików.',
1043
+ 'hp.next': 'Co zrobił potem',
1044
+ 'hp.next.passed': 'Przekazał to innemu AI',
1045
+ 'hp.next.saved': 'Zapisał kopię',
1046
+ 'hp.next.repeated': 'Powtórzył to w wiadomości',
1047
+ 'hp.next.used': 'Użył tego, żeby coś uruchomić',
1048
+ 'hp.explain': '✦ Wyjaśnij to prostymi słowami',
1049
+ 'hp.ex.brought': '{who} wezwało go do pomocy.',
1050
+ 'hp.ex.read': 'Przeczytał {files}.',
1051
+ 'hp.ex.passed': 'Coś z nich trafiło dalej, do innego AI.',
1052
+ 'hp.ex.saved': 'Zapisał coś z nich w innym pliku.',
1053
+ 'hp.ex.repeated': 'Powtórzył coś z nich własnymi słowami.',
1054
+ 'hp.ex.used': 'Użył czegoś z nich, żeby uruchomić polecenie.',
1055
+ 'hp.ex.company': 'Wszystko, co przeczytał, jest teraz w twojej rozmowie z AI.',
1056
+ 'hp.fix': 'Napraw te pliki →',
1057
+ 'fl.eyebrow': 'Wszystko, co otworzyło',
1058
+ 'fl.fact.one': 'Twoje AI otworzyło {n} plik.',
1059
+ 'fl.fact.few': 'Twoje AI otworzyło {n} pliki.',
1060
+ 'fl.fact.many': 'Twoje AI otworzyło {n} plików.',
1061
+ 'fl.fact.other': 'Twoje AI otworzyło {n} pliku.',
1062
+ 'fl.some.one': 'Tylko {n} był prywatny.',
1063
+ 'fl.some.few': 'Tylko {n} były prywatne.',
1064
+ 'fl.some.many': 'Tylko {n} było prywatnych.',
1065
+ 'fl.some.other': 'Tylko {n} było prywatnych.',
1066
+ 'fl.all.one': 'Był prywatny.',
1067
+ 'fl.all.few': 'Wszystkie były prywatne.',
1068
+ 'fl.all.many': 'Wszystkie były prywatne.',
1069
+ 'fl.all.other': 'Wszystkie były prywatne.',
1070
+ 'fl.noneRead': 'Żaden nie był prywatny.',
1071
+ 'fl.lead': 'Reszta to zwykłe pliki robocze. Nie ma tam nic do zrobienia.',
1072
+ 'fl.leadAll': 'Każdy jest poniżej, z tym, co z nim zrobić.',
1073
+ 'fl.leadNone': 'To były zwykłe pliki robocze. Nie ma tam nic do zrobienia.',
1074
+ 'fl.search': 'Znajdź plik',
1075
+ 'fl.group.all': 'Wszystkie pliki',
1076
+ 'fl.group.fix': 'Do naprawy',
1077
+ 'fl.group.fixed': 'Już naprawione',
1078
+ 'fl.did.q': 'Co zrobiło AI:',
1079
+ 'fl.did.any': 'Cokolwiek',
1080
+ 'fl.did.read': 'Otworzyło i przeczytało',
1081
+ 'fl.did.name': 'Widziało tylko nazwę',
1082
+ 'fl.did.stopped': 'Zostało zatrzymane',
1083
+ 'fl.prot.q': 'Plik prywatny:',
1084
+ 'fl.prot.any': 'Dowolnie',
1085
+ 'fl.prot.no': 'Niezablokowany',
1086
+ 'fl.prot.yes': 'Zablokowany',
1087
+ 'fl.prot.na': 'Nie prywatny',
1088
+ 'fl.prot.told': 'Obserwuje',
1089
+ 'fl.clear': 'Wyczyść filtry',
1090
+ 'fl.col.file': 'Plik',
1091
+ 'fl.col.ai': 'AI',
1092
+ 'fl.col.prot': 'Plik prywatny',
1093
+ 'fl.col.mode': 'Gdy Twoje AI po niego sięgnie',
1094
+ 'fl.col.action': 'Działanie',
1095
+ 'fl.acc.read': 'Przeczytało',
1096
+ 'fl.acc.name': 'Tylko nazwa',
1097
+ 'fl.acc.unknown': 'Brak zapisu',
1098
+ 'fl.acc.stopped': 'Zatrzymane',
1099
+ 'fl.acc.changed': 'Zmieniło',
1100
+ 'fl.tag.private': 'Prywatny',
1101
+ 'fl.tag.na': 'Nie prywatny',
1102
+ 'fl.mode.yes': 'Zablokowany',
1103
+ 'fl.mode.told': 'Obserwuje',
1104
+ 'fl.mode.no': 'Niezablokowany',
1105
+ 'fl.mode.unknown': 'Nie wiadomo',
1106
+ 'fl.mode.na': 'Niepotrzebne',
1107
+ 'fl.act.fix': 'Napraw →',
1108
+ 'fl.act.fixed': 'Naprawione ✓',
1109
+ 'fl.act.none': 'Nic do zrobienia',
1110
+ 'fl.protect': 'Chroń →',
1111
+ 'fl.makePrivate': 'Oznacz jako prywatny →',
1112
+ 'fl.tier.read': 'Prywatne pliki, które przeczytało twoje AI',
1113
+ 'fl.tier.name': 'Prywatne pliki, których widziało tylko nazwę',
1114
+ 'fl.tier.rest': 'Cała reszta',
1115
+ 'fl.shown': 'Pokazano {shown} z {n} plików.',
1116
+ 'fl.commands': 'Pliki, do których AI dotarło tylko przez polecenie, są na liście, gdy są prywatne.',
1117
+ 'fl.noMatch': 'Żaden plik nie pasuje.',
1118
+ 'fl.kind.aiNotes': 'Notatki dla AI',
1119
+ 'fl.kind.notes': 'Notatki o twojej aplikacji',
1120
+ 'fl.kind.settings': 'Ustawienia aplikacji',
1121
+ 'fl.kind.code': 'Część twojej aplikacji',
1122
+ 'fl.kind.file': 'Plik',
1123
+ 'fl.w.did': 'Co zrobiło AI',
1124
+ 'fl.w.prot': 'Chroniony?',
1125
+ 'fl.w.next': 'Co zrobić',
1126
+ 'fl.w.did.read': 'Twoje AI otworzyło ten plik i przeczytało jego zawartość.',
1127
+ 'fl.w.did.name': 'Twoje AI widziało nazwę tego pliku, ale nic nie wskazuje, że przeczytało zawartość.',
1128
+ 'fl.w.did.unknown': 'Twoje AI próbowało otworzyć ten plik, a zapis nie mówi, co się stało.',
1129
+ 'fl.w.did.stopped': 'Twoje AI próbowało otworzyć ten plik. Zostało zatrzymane w porę.',
1130
+ 'fl.w.did.everydayRead': 'Twoje AI otworzyło ten plik i go przeczytało.',
1131
+ 'fl.w.did.changed': 'Twoje AI zmieniło ten plik.',
1132
+ 'fl.w.did.everydayStopped': 'Twoje AI próbowało pracować na tym pliku i każda próba została odrzucona.',
1133
+ 'fl.w.prot.yes': 'Chroniony. Claude Code nie otworzy go bez pytania cię najpierw.',
1134
+ 'fl.w.prot.no': 'Niechroniony. Claude Code może go otworzyć w każdej chwili.',
1135
+ 'fl.w.prot.unknown': 'Nie udało się odczytać ustawień projektu, więc nie wiadomo.',
1136
+ 'fl.w.prot.na': 'Zwykły plik roboczy. Żadna reguła nie oznacza go jako prywatny, więc nie potrzebuje ochrony.',
1137
+ 'fl.w.prot.told': 'Wybrałeś Obserwuje: twoje AI może go otworzyć, a ty dostajesz o tym wiadomość.',
1138
+ 'fl.w.next.safe': 'Nic do zrobienia. Ten plik jest bezpieczny.',
1139
+ 'fl.w.next.maybe': 'Nic do zrobienia. Jeśli wolisz, żeby Claude Code nigdy go nie otwierał, chroń go.',
1140
+ 'fl.w.next.none': 'Nic do zrobienia.',
1141
+ 'fl.w.next.told': 'Nic do zrobienia. Jeśli wolisz, żeby Claude Code nigdy go nie otwierał, ustaw Blokuj w Ustawieniach.',
1142
+ 'adv.eyebrow': 'Zaawansowane',
1143
+ 'adv.title': 'Pełny zapis',
1144
+ 'adv.lead': 'Dla programistów. Każdy prywatny plik i każdy pomocnik, z użytymi narzędziami i dowodami.',
1145
+ 'adv.tab.files': 'Prywatne pliki',
1146
+ 'adv.tab.helpers': 'Pomocnicy',
1147
+ 'adv.stat.files': 'Przeczytane prywatne pliki',
1148
+ 'adv.stat.ais': 'Zaangażowane AI',
1149
+ 'adv.stat.events': 'Zapisane zdarzenia',
1150
+ 'adv.stat.fixed': 'Naprawione',
1151
+ 'adv.col.file': 'Plik',
1152
+ 'adv.col.readBy': 'Czytał',
1153
+ 'adv.col.access': 'Dostęp',
1154
+ 'adv.col.tools': 'Narzędzia',
1155
+ 'adv.col.events': 'Zdarzenia',
1156
+ 'adv.col.firstLast': 'Pierwszy → ostatni zapis',
1157
+ 'adv.col.helper': 'Pomocnik',
1158
+ 'adv.col.asked': 'O co go poproszono',
1159
+ 'adv.col.touched': 'Dotknięte pliki',
1160
+ 'adv.col.actions': 'Działania',
1161
+ 'adv.needs': 'Do zrobienia · {n}',
1162
+ 'adv.fixed': 'Naprawione · {n}',
1163
+ 'adv.noFiles': 'Zawartość żadnego prywatnego pliku nie dotarła do AI.',
1164
+ 'adv.hint': 'Kliknij wiersz, żeby zobaczyć każde zdarzenie dla tego pliku.',
1165
+ 'adv.status.read': 'Przeczytał prywatne pliki',
1166
+ 'adv.status.sample': 'Tylko przykładowy plik',
1167
+ 'adv.status.named': 'Widział tylko nazwę',
1168
+ 'adv.status.unknown': 'Brak zapisu',
1169
+ 'adv.status.stopped': 'Zatrzymany',
1170
+ 'adv.status.none': 'Nic prywatnego',
1171
+ 'rp.gap.banner': 'Brakuje części zapisu tej rozmowy, więc ta lista może być niepełna.',
1172
+ 'rp.gap.link': 'Zobacz, czego brakuje →',
1173
+ 'rp.gap.fact': 'Nie widzimy nic do naprawy.',
1174
+ 'rp.gap.action': 'Ale brakuje części zapisu.',
1175
+ 'rp.gap.stopped': 'Twoja ochrona zadziałała.',
1176
+ 'rp.gap.body': 'Brakuje części zapisu tej rozmowy. Brak dowodów to nie to samo, co brak zdarzeń.',
1177
+ 'adv.tab.record': 'Zapis',
1178
+ // 2026-09-27-what-codex-wrote.md X23, X19-X22: czego zapis Codexa nie pokaże i co wtedy zapisał.
1179
+ 'rp.gap.codex.action': 'Ale Codex nie zapisuje każdego kroku.',
1180
+ 'rp.gap.codex.legacyAction': 'Ale Codex nie zapisał swoich poleceń.',
1181
+ 'rp.gap.codex.lead': 'Codex nie zapisuje każdego kroku, więc ten raport może nie pokazywać wszystkiego, co otworzył.',
1182
+ 'rp.gap.codex.body': 'Zapisuje większość tego, co robi. Oto, co zapisał.',
1183
+ 'rp.gap.codex.legacy': 'Codex zapisał tę rozmowę w starszy sposób, który nie pokazuje, jakie polecenia uruchomił. Oto, co zapisał.',
1184
+ 'rp.gap.codex.banner': 'Codex nie zapisuje każdego kroku, więc na tej liście może czegoś brakować.',
1185
+ 'rec.recorded': 'Co {ai} zapisał w trakcie',
1186
+ 'rec.recorded.note': 'To ustawienia, które {ai} miał podczas rozmowy. To nie są Twoje zasady agentwhy: ten raport sprawdza Twoje prywatne pliki według ustawień z teraz.',
1187
+ 'rec.perm.turns.one': '{n} tura',
1188
+ 'rec.perm.turns.few': '{n} tury',
1189
+ 'rec.perm.turns.many': '{n} tur',
1190
+ 'rec.perm.approval': 'pyta przed działaniem: {value}',
1191
+ 'rec.perm.approver': 'odpowiada: {value}',
1192
+ 'rec.perm.sandbox': 'piaskownica: {value}',
1193
+ 'rec.perm.network': 'sieć: {value}',
1194
+ 'rec.perm.scopes': 'może czytać w {read} i pisać w {write} miejscach',
1195
+ 'rec.perm.writable': 'Może pisać w',
1196
+ 'rec.perm.incomplete': 'Części nie zrozumieliśmy, więc ją pominięto.',
1197
+ 'rec.who.person': 'Ty',
1198
+ 'rec.who.reviewer': 'recenzent, którego uruchamia {ai}',
1199
+ 'rec.who.unrecognised': 'nie wiadomo',
1200
+ 'rec.who.unrecorded': 'nie zapisano',
1201
+ 'rec.net.allowed': 'włączona',
1202
+ 'rec.net.restricted': 'wyłączona',
1203
+ 'rec.net.unrecognised': 'nie wiadomo',
1204
+ 'rec.net.unrecorded': 'nie zapisano',
1205
+ 'rec.value.none': 'nie zapisano',
1206
+ 'rec.reviews': 'Co zdecydował recenzent, którego uruchamia {ai}',
1207
+ 'rec.review.allowed': 'Zezwolił na działanie w jednej z tur ({who}). Nie zapisano, na które działanie.',
1208
+ 'rec.review.allowedNoTurn': 'Zezwolił na działanie, w żadnej turze, którą wskazuje zapis.',
1209
+ 'rec.review.unrecognised': 'Dał odpowiedź, której nie znamy. Nie traktujemy jej jako odmowy.',
1210
+ 'rec.review.risk': 'ryzyko: {risk}',
1211
+ 'rec.review.why.one': 'uzasadnienie: {n} znak, niepokazane',
1212
+ 'rec.review.why.few': 'uzasadnienie: {n} znaki, niepokazane',
1213
+ 'rec.review.why.many': 'uzasadnienie: {n} znaków, niepokazane',
1214
+ 'rec.q.actions': 'jakie działania się odbyły',
1215
+ 'rec.q.access': 'do czego dotarło działanie',
1216
+ 'rec.q.output-delivery': 'co dotarło do Twojego AI',
1217
+ 'rec.q.own-words': 'wszystko, co napisało Twoje AI',
1218
+ 'rec.q.reasoning': 'co Twoje AI ustaliło przed działaniem',
1219
+ 'rec.q.refusals': 'czy działanie zostało zatrzymane',
1220
+ 'rec.q.permissions': 'jakie uprawnienia obowiązywały',
1221
+ 'rec.shapes': 'Kształty kluczy w wynikach',
1222
+ 'rec.shapes.none': 'Żaden wynik nie zawierał niczego w kształcie klucza.',
1223
+ 'rec.gap.title.gaps': 'Części tej rozmowy nie ma w zapisie',
1224
+ 'rec.gap.lead.gaps': 'Wszystko, co pokazuje raport, jest w zapisie. Ale czegoś w nim brakuje, więc raport może nie pokazywać wszystkiego: pusta lista nie znaczy, że nic się nie stało.',
1225
+ 'rec.gap.title.clean': 'Zapis tej rozmowy jest pełny',
1226
+ 'rec.gap.lead.clean': 'Nie znaleźliśmy w nim braków, więc ten raport opiera się na całej rozmowie.',
1227
+ 'rec.gap.tag.gaps': 'Ma luki',
1228
+ 'rec.gap.tag.clean': 'Pełny',
1229
+ 'rec.gap.missing': 'Czego brakuje w zapisie',
1230
+ 'rec.gap.times.one': 'raz',
1231
+ 'rec.gap.times.few': '{n} razy',
1232
+ 'rec.gap.times.many': '{n} razy',
1233
+ 'rec.gap.times.other': '{n} razy',
1234
+ 'rec.gap.which': 'Pokaż które',
1235
+ 'rec.gap.k.session-missing.t': 'Nie udało się odczytać rozmowy',
1236
+ 'rec.gap.k.session-missing.d': 'Niczego w tym raporcie nie można traktować jako ustalenia.',
1237
+ 'rec.gap.k.source-missing.t': 'Brakuje części zapisu',
1238
+ 'rec.gap.k.source-missing.d': 'Jakiegoś pliku tej rozmowy - na przykład pomocnika - nie było albo nie dało się go odczytać, więc tego, co się w nim stało, tu nie ma.',
1239
+ 'rec.gap.k.record-damaged.t': 'Uszkodzona linia',
1240
+ 'rec.gap.k.record-damaged.d': 'Jednej linii zapisu nie dało się odczytać. Mogła zostać ucięta w trakcie zapisywania.',
1241
+ 'rec.gap.k.result-missing.t': 'Działanie bez wyniku',
1242
+ 'rec.gap.k.result-missing.d': 'Twoje AI je rozpoczęło, ale w zapisie nie ma odpowiedzi, więc nie wiemy, czy się udało ani co zwróciło.',
1243
+ 'rec.gap.k.spilled-result-missing.t': 'Zaginął długi wynik',
1244
+ 'rec.gap.k.spilled-result-missing.d': 'Był zapisany w osobnym pliku, którego już nie ma.',
1245
+ 'rec.gap.k.outcome-unrecognised.t': 'Zakończenie, którego nie znamy',
1246
+ 'rec.gap.k.outcome-unrecognised.d': 'Zapis oznacza koniec działania w sposób, którego ta wersja agentwhy nie zna, więc nie zgadujemy.',
1247
+ 'rec.gap.k.relation-unresolved.t': 'Działania, których nie dało się powiązać',
1248
+ 'rec.gap.k.relation-unresolved.d': 'Nie dało się pewnie ustalić, który wynik należy do którego działania, więc nie mówimy, jak się skończyły.',
1249
+ 'rec.gap.k.result-incomplete.t': 'Tekst, który mógł zostać ucięty',
1250
+ 'rec.gap.k.result-incomplete.d': 'Możemy powiedzieć, co w nim jest, ale nie, czego w nim nie ma: brakująca część mogła zawierać więcej.',
1251
+ 'rec.gap.k.answer-unread.t': 'Nie udało się odczytać odpowiedzi pomocnika',
1252
+ 'rec.gap.k.answer-unread.d': 'Więc nie wiemy, co przekazał z powrotem Twojemu AI.',
1253
+ 'rec.gap.k.answer-awaited.t': 'Odpowiedź pomocnika nie dotarła',
1254
+ 'rec.gap.k.answer-awaited.d': 'Pracował w tle, a jego odpowiedź nigdy nie dotarła do Twojego AI.',
1255
+ 'rec.gap.unknown.t': 'Działania o nieznanym zakończeniu',
1256
+ 'rec.gap.unknown.d': 'Nie wiemy, czy się udały, czy zostały zatrzymane.',
1257
+ 'rec.gap.unresolved.t': 'Pomocnicy bez znanego zlecenia',
1258
+ 'rec.gap.unresolved.d': 'Nie wiemy, kto ich uruchomił ani o co zostali poproszeni.',
1259
+ 'rec.gap.lost.t': 'Pomocnicy, o których prosiło AI, a których nie ma w zapisie',
1260
+ 'rec.gap.lost.d': 'Twoje AI poprosiło o pomoc, ale zapisu pomocnika tu nie ma, więc nie widać, co zrobił.',
1261
+ 'rec.cap.h': 'Czego ten zapis nie pokazuje',
1262
+ 'rec.cap.lead': 'Nic się nie zepsuło: {ai} tego nie zapisuje albo jeszcze nie sprawdziliśmy, czy zapisuje. Dlatego raport nie może tego ani potwierdzić, ani wykluczyć.',
1263
+ 'rec.cap.tag.absent': 'Nie zapisuje',
1264
+ 'rec.cap.tag.unmeasured': 'Jeszcze nie sprawdzone',
1265
+ 'rec.cap.shown': '{ai} zapisuje za to: {list}.',
1266
+ 'rec.cap.t.actions': 'Jakie działania się odbyły',
1267
+ 'rec.cap.d.actions': 'Mogło ich być więcej, niż pokazuje raport.',
1268
+ 'rec.cap.t.access': 'Co otworzyło działanie',
1269
+ 'rec.cap.d.access': 'Polecenie mogło otworzyć plik, którego raport nie wymienia.',
1270
+ 'rec.cap.t.output-delivery': 'Co dotarło do Twojego AI',
1271
+ 'rec.cap.d.output-delivery': 'Nie wiemy na pewno, które wyniki Twoje AI naprawdę zobaczyło.',
1272
+ 'rec.cap.t.own-words': 'Wszystko, co napisało Twoje AI',
1273
+ 'rec.cap.d.own-words': 'Część jego wiadomości mogła nie trafić do zapisu.',
1274
+ 'rec.cap.t.reasoning': 'Co Twoje AI rozważało przed działaniem',
1275
+ 'rec.cap.d.reasoning': 'Nie pokażemy, dlaczego wybrało dany krok.',
1276
+ 'rec.cap.t.refusals': 'Czy działanie zostało zatrzymane',
1277
+ 'rec.cap.d.refusals': 'Gdy działanie zostało zatrzymane, zapis może tego nie mówić.',
1278
+ 'rec.cap.t.permissions': 'Jakie uprawnienia miało Twoje AI',
1279
+ 'rec.cap.d.permissions': 'Nie pokażemy, na co mu pozwolono.',
1280
+ 'rec.note': 'Nawet z pełnego zapisu raport nie powie, dlaczego Twoje AI coś zrobiło, co dokładnie mu polecono ani czy klucz, który zobaczyło, naprawdę wyciekł. Nazwa pliku w poleceniu liczy się jako dotknięcie - czasem to tylko wzmianka, a nie otwarcie.',
1281
+ 'rec.how.h': 'Jak sprawdziliśmy tę rozmowę',
1282
+ 'rec.how.rule': 'Co uznajemy za problem',
1283
+ 'rec.how.rule.no-read': 'Otwarcie lub przeszukanie prywatnego pliku przez Twoje AI',
1284
+ 'rec.how.rule.no-disclose': 'Przekazanie dalej czegoś z prywatnego pliku. Samo czytanie jest dozwolone.',
1285
+ 'rec.how.rule.other': 'Zasada, której ta strona nie opisuje: zobacz szczegóły techniczne',
1286
+ 'rec.how.files': 'Które pliki są prywatne',
1287
+ 'rec.how.files.builtIn': 'Wbudowana lista agentwhy: {patterns}, {exceptions}',
1288
+ 'rec.how.files.own': 'Twoja własna lista: {patterns}, {exceptions}',
1289
+ 'rec.how.files.note': 'Sprawdzone według listy z teraz, nie z chwili rozmowy. Pasująca nazwa to powód, żeby się przyjrzeć, a nie dowód, że coś wyciekło.',
1290
+ 'rec.how.paths': 'Ścieżki plików',
1291
+ 'rec.how.paths.full': 'Pokazane w całości',
1292
+ 'rec.how.paths.shared': 'Skrócone do udostępnienia',
1293
+ 'rec.how.root.known': 'Względem folderu Twojego projektu.',
1294
+ 'rec.how.root.absent': 'Dokładnie tak, jak je zapisano: zapis nie mówi, w jakim folderze jest projekt.',
1295
+ 'rec.how.root.ambiguous': 'Dokładnie tak, jak je zapisano: rozmowa pracowała w {n} folderach, więc żaden z nich nie jest jedynym folderem projektu.',
1296
+ 'rec.how.session': 'Identyfikator rozmowy',
1297
+ 'rec.how.level': 'Zasada',
1298
+ 'rec.how.origin': 'Skąd zasada',
1299
+ 'rec.runs.none': 'Żadne AI nie zrobiło nic z prywatnym plikiem, więc nie ma przebiegu do pokazania.',
1300
+ 'rec.actions.one': 'Wszystkie jego działania ({n})',
1301
+ 'rec.actions.few': 'Wszystkie jego działania ({n})',
1302
+ 'rec.actions.many': 'Wszystkie jego działania ({n})',
1303
+ 'rec.actions.other': 'Wszystkie jego działania ({n})',
1304
+ 'rec.runs.lead': 'Kroki każdego AI z prywatnymi plikami, w kolejności z zapisu.',
1305
+ 'rec.runs.key.coral': 'Miało tekst pliku',
1306
+ 'rec.runs.key.blue': 'Tylko nazwa',
1307
+ 'rec.runs.key.amber': 'Nie wiadomo',
1308
+ 'rec.runs.key.mint': 'Zatrzymane',
1309
+ 'rec.cameBack': 'Co wróciło',
1310
+ 'st.unknownYn': 'NIE WIADOMO',
1311
+ 'st.e.inResult.keys': 'Zobaczyło klucze w tym, co wypisało polecenie',
1312
+ 'st.e.inResult.data': 'Zobaczyło zawartość w tym, co wypisało polecenie',
1313
+ 'st.sub.inResult': 'Żadne polecenie nie prosiło o ten plik. Wypisało go {did}.',
1314
+ 'st.sub.lines.one': 'Wyszukiwanie wypisało 1 wiersz tego pliku, przez {did}.',
1315
+ 'st.sub.lines.few': 'Wyszukiwanie wypisało {n} wiersze tego pliku, przez {did}.',
1316
+ 'st.sub.lines.many': 'Wyszukiwanie wypisało {n} wierszy tego pliku, przez {did}.',
1317
+ 'st.sub.lines.other': 'Wyszukiwanie wypisało {n} wiersza tego pliku, przez {did}.',
1318
+ 'st.sub.inResultLines.one': 'Żadne polecenie nie prosiło o ten plik. {did} wypisało z niego 1 wiersz.',
1319
+ 'st.sub.inResultLines.few': 'Żadne polecenie nie prosiło o ten plik. {did} wypisało z niego {n} wiersze.',
1320
+ 'st.sub.inResultLines.many': 'Żadne polecenie nie prosiło o ten plik. {did} wypisało z niego {n} wierszy.',
1321
+ 'st.sub.inResultLines.other': 'Żadne polecenie nie prosiło o ten plik. {did} wypisało z niego {n} wiersza.',
1322
+ 'hp.line.empty': 'Jego działania nie zostały zapisane.',
1323
+ 'hp.answer.empty': 'Jego działania nie zostały zapisane, więc nie da się powiedzieć, co zrobił. To nie znaczy, że nic nie zrobił.',
1324
+ 'adv.status.empty': 'Brak zapisu',
1325
+ 'rp.when': 'Raport z {when}',
1326
+ 'st.col.time': 'Czas',
1327
+ 'st.rec.timesNote': 'Czas to moment zapisania każdej linii. Kolejność jest kolejnością zapisu.',
1328
+ 'hp.alone.fact': 'Twoje AI pracowało samo.',
1329
+ 'hp.alone.unsure': 'W zapisie twoje AI nie ma pomocników.',
1330
+ 'hp.alone.lead': 'Pomocnicy to dodatkowe AI, które twoje AI może wezwać, żeby pracować szybciej. Tym razem nie wezwało żadnego. Oto, co zrobiło samo.',
1331
+ 'hp.alone.unsure.lead': 'Brakuje części zapisu, więc nie możemy powiedzieć, że pracowało samo. Oto, co twoje AI zrobiło samo.',
1332
+ 'hp.alone.empty.lead': 'To nie znaczy, że nic się nie stało. To znaczy, że ten raport nie może powiedzieć, co się stało.',
1333
+ 'hp.alone.read.one': 'Przeczytało {n} prywatny plik.',
1334
+ 'hp.alone.read.few': 'Przeczytało {n} prywatne pliki.',
1335
+ 'hp.alone.read.many': 'Przeczytało {n} prywatnych plików.',
1336
+ 'hp.alone.read.other': 'Przeczytało {n} prywatnego pliku.',
1337
+ 'hp.alone.sample.one': 'Widziało tylko przykładowy plik.',
1338
+ 'hp.alone.sample.few': 'Widziało tylko przykładowe pliki.',
1339
+ 'hp.alone.sample.many': 'Widziało tylko przykładowe pliki.',
1340
+ 'hp.alone.sample.other': 'Widziało tylko przykładowe pliki.',
1341
+ 'hp.alone.named.one': 'Widziało tylko nazwę prywatnego pliku.',
1342
+ 'hp.alone.named.few': 'Widziało tylko nazwy {n} prywatnych plików.',
1343
+ 'hp.alone.named.many': 'Widziało tylko nazwy {n} prywatnych plików.',
1344
+ 'hp.alone.named.other': 'Widziało tylko nazwy {n} prywatnych plików.',
1345
+ 'hp.alone.unknown': 'Próbowało otworzyć prywatny plik. Zapis nie mówi, co się stało.',
1346
+ 'hp.alone.stopped': 'Próbowało otworzyć prywatny plik. Zostało zatrzymane w porę.',
1347
+ 'hp.alone.none': 'Nie dotknęło niczego prywatnego.',
1348
+ 'hp.alone.empty': 'Jego własne działania też nie zostały zapisane.',
1349
+ 'rp.clean.seeFiles': 'Zobacz każdy plik, który otworzyło',
1350
+ 'rp.clean.stopped.one': 'Próbowało otworzyć {n} prywatny plik. Zostało zatrzymane w porę.',
1351
+ 'rp.clean.stopped.few': 'Próbowało otworzyć {n} prywatne pliki. Zostało zatrzymane w porę.',
1352
+ 'rp.clean.stopped.many': 'Próbowało otworzyć {n} prywatnych plików. Zostało zatrzymane w porę.',
1353
+ 'rp.clean.stopped.other': 'Próbowało otworzyć {n} prywatnego pliku. Zostało zatrzymane w porę.',
1354
+ 'rp.clean.stoppedLine': 'Twoja ochrona zadziałała. Nie ma nic do zrobienia.',
1355
+ 'rp.clean.unknown.one': 'Próbowało otworzyć {n} prywatny plik.',
1356
+ 'rp.clean.unknown.few': 'Próbowało otworzyć {n} prywatne pliki.',
1357
+ 'rp.clean.unknown.many': 'Próbowało otworzyć {n} prywatnych plików.',
1358
+ 'rp.clean.unknown.other': 'Próbowało otworzyć {n} prywatnego pliku.',
1359
+ 'rp.clean.unknownLine': 'Zapis nie mówi, co się stało.',
1360
+ 'rp.clean.helpers.one': 'Skorzystało z {n} pomocnika.',
1361
+ 'rp.clean.helpers.few': 'Skorzystało z {n} pomocników.',
1362
+ 'rp.clean.helpers.many': 'Skorzystało z {n} pomocników.',
1363
+ 'rp.clean.helpers.other': 'Skorzystało z {n} pomocnika.',
1364
+ 'rp.clean.helpersClean.one': 'Nie przeczytał twoich prywatnych plików.',
1365
+ 'rp.clean.helpersClean.few': 'Żaden z nich nie przeczytał twoich prywatnych plików.',
1366
+ 'rp.clean.helpersClean.many': 'Żaden z nich nie przeczytał twoich prywatnych plików.',
1367
+ 'rp.clean.helpersClean.other': 'Żaden z nich nie przeczytał twoich prywatnych plików.',
1368
+ 'rp.clean.helpersUnknown.one': 'Nie wszystko, co zrobił, zostało zapisane.',
1369
+ 'rp.clean.helpersUnknown.few': 'Nie wszystko, co zrobili, zostało zapisane.',
1370
+ 'rp.clean.helpersUnknown.many': 'Nie wszystko, co zrobili, zostało zapisane.',
1371
+ 'rp.clean.helpersUnknown.other': 'Nie wszystko, co zrobili, zostało zapisane.',
1372
+ 'rp.clean.seeHelpers': 'Zobacz przebieg',
1373
+ 'rp.clean.record': 'Zobacz pełny zapis',
1374
+ 'rp.nothing.fact': 'Wszystko w porządku.',
1375
+ 'rp.nothing.action': 'Nie ma nic do naprawy.',
1376
+ 'rp.nothing.back': 'Gotowe — wróć do rozmów',
1377
+ 'rp.asked': 'O co prosiłeś',
1378
+ 'rp.clean.heading': 'Co się stało',
1379
+ 'rp.clean.private': 'Nie otworzyło żadnego prywatnego pliku.',
1380
+ 'rp.clean.privateTag': 'Żadnego',
1381
+ 'rp.clean.privateLine': 'Twoje hasła, klucze i dane klientów pozostały zamknięte.',
1382
+ 'rp.clean.privateShape': 'Żaden plik oznaczony jako prywatny nie został otwarty. Ostrzeżenie powyżej dotyczy czegoś w wyniku.',
1383
+ 'rp.clean.allowed.one': 'Przeczytało {n} prywatny plik, na który mu pozwoliłeś.',
1384
+ 'rp.clean.allowed.few': 'Przeczytało {n} prywatne pliki, na które mu pozwoliłeś.',
1385
+ 'rp.clean.allowed.many': 'Przeczytało {n} prywatnych plików, na które mu pozwoliłeś.',
1386
+ 'rp.clean.allowed.other': 'Przeczytało {n} prywatnego pliku, na który mu pozwoliłeś.',
1387
+ 'rp.clean.allowedLine.one': 'Wybrałeś dla niego Obserwuje, a w tym, co przeczytało, nie było klucza, który rozpoznajemy. Nie ma nic do zrobienia.',
1388
+ 'rp.clean.allowedLine.few': 'Wybrałeś dla nich Obserwuje, a w tym, co przeczytało, nie było klucza, który rozpoznajemy. Nie ma nic do zrobienia.',
1389
+ 'rp.clean.allowedLine.many': 'Wybrałeś dla nich Obserwuje, a w tym, co przeczytało, nie było klucza, który rozpoznajemy. Nie ma nic do zrobienia.',
1390
+ 'rp.clean.allowedLine.other': 'Wybrałeś dla niego Obserwuje, a w tym, co przeczytało, nie było klucza, który rozpoznajemy. Nie ma nic do zrobienia.',
1391
+ 'rp.clean.named.one': 'Widziało nazwę {n} prywatnego pliku.',
1392
+ 'rp.clean.named.few': 'Widziało nazwy {n} prywatnych plików.',
1393
+ 'rp.clean.named.many': 'Widziało nazwy {n} prywatnych plików.',
1394
+ 'rp.clean.named.other': 'Widziało nazwy {n} prywatnego pliku.',
1395
+ 'rp.clean.namedLine.one': 'Nie widziało, co jest w środku, więc nie ma nic do zrobienia.',
1396
+ 'rp.clean.namedLine.few': 'Nie widziało, co jest w środku, więc nie ma nic do zrobienia.',
1397
+ 'rp.clean.namedLine.many': 'Nie widziało, co jest w środku, więc nie ma nic do zrobienia.',
1398
+ 'rp.clean.namedLine.other': 'Nie widziało, co jest w środku, więc nie ma nic do zrobienia.',
1399
+ 'rp.clean.namedLineGap.one': 'Zapis nie pokazuje, czy widziało, co jest w środku.',
1400
+ 'rp.clean.namedLineGap.few': 'Zapis nie pokazuje, czy widziało, co jest w środku.',
1401
+ 'rp.clean.namedLineGap.many': 'Zapis nie pokazuje, czy widziało, co jest w środku.',
1402
+ 'rp.clean.namedLineGap.other': 'Zapis nie pokazuje, czy widziało, co jest w środku.',
1403
+ 'rp.clean.noHelpers': 'Pracowało samo.',
1404
+ 'rp.clean.noHelpersTag': 'Bez pomocników',
1405
+ 'rp.clean.alone': 'Nie uruchomiło żadnego innego AI do pomocy.',
1406
+ 'rp.ask.title': 'Pytania o ten raport? Zapytaj mnie.',
1407
+ 'rp.ask.name': 'Co znaczy „widziało nazwę”?',
1408
+ 'rp.ask.nameA': 'Twoje AI widziało nazwę pliku, nie to, co jest w środku.\nNazwa może pojawić się na liście plików albo w poleceniu, które nie wypisało pliku.\nNic ze środka pliku nie dotarło do twojego AI, więc nie ma nic do zmiany.',
1409
+ 'rp.ask.safe': 'Czy moje dane są bezpieczne?',
1410
+ 'rp.ask.safeA': 'Nic tu nie wskazuje, że twoje AI przeczytało prywatny plik.\nW tej rozmowie nie otworzyło żadnego pliku oznaczonego jako prywatny.\nWidzimy tylko to, co AI zapisało, nie to, co myślało.',
1411
+ 'rp.ask.safeAllowedA': 'Twoje AI przeczytało tylko prywatne pliki, na które mu pozwoliłeś. Wybrałeś dla nich Obserwuje.\nW tym, co przeczytało, nie było klucza, który rozpoznajemy, więc nie ma nic do zmiany.\nJeśli Claude Code nie powinien otwierać któregoś z nich, przełącz go na Blokuj w Ustawieniach.',
1412
+ 'rp.ask.change': 'Czy muszę coś zmienić?',
1413
+ 'rp.ask.changeA': 'Nie. Nie ma tu nic do naprawy.\nJeśli jest plik, którego twoje AI nigdy nie powinno otwierać, dodaj go do prywatnych plików. Od tej chwili każdy raport pokaże, kiedy AI do niego sięgnie.',
1414
+ 'rp.dev.title': 'Szczegóły dla programisty',
1415
+ 'rp.shape.next': 'Jeśli to prawdziwy klucz, zmień go tam, gdzie został utworzony: do tego czasu każdy, kto go ma, może go użyć.',
1416
+ 'rp.shape.link': 'Zobacz, gdzie się pojawił \u2192',
1417
+ 'fl.noneListed': 'Twoje AI nie otworzyło żadnego pliku, który umiemy wymienić.',
1418
+ 'fl.names.one': '<strong>{n} nazwa pliku, którą tylko widziało</strong> <span class="fold-rest">Nic nie wskazuje, że został otwarty albo że jest w twoim projekcie.</span>',
1419
+ 'fl.names.few': '<strong>{n} nazwy plików, które tylko widziało</strong> <span class="fold-rest">Nic nie wskazuje, że zostały otwarte albo że są w twoim projekcie.</span>',
1420
+ 'fl.names.many': '<strong>{n} nazw plików, które tylko widziało</strong> <span class="fold-rest">Nic nie wskazuje, że zostały otwarte albo że są w twoim projekcie.</span>',
1421
+ 'fl.names.other': '<strong>{n} nazwy plików, które tylko widziało</strong> <span class="fold-rest">Nic nie wskazuje, że zostały otwarte albo że są w twoim projekcie.</span>',
1422
+ 'wz.data.askHelp': 'Otwórz plik i zobacz, co w nim jest. Wybierz, co najlepiej pasuje, a pokażemy, co zrobić.',
1423
+ 'wz.data.peopleWhat': 'Imiona, e-maile, numery telefonów albo adresy prawdziwych osób - klientów, użytkowników, pracowników.',
1424
+ 'wz.data.businessWhat': 'Umowa, faktura, ceny albo plany, którymi dzielisz się tylko z niektórymi.',
1425
+ 'wz.data.otherWhat': 'Cokolwiek innego, czego nie pokazałbyś publicznie - notatki, eksporty, dane logowania, które nie są kluczami.',
1426
+ },
1427
+ de: {
1428
+ 'rp.title': 'Bericht · agentwhy',
1429
+ 'rp.nav.todo': 'Deine Aufgaben',
1430
+ 'rp.nav.helpers': 'Ablauf',
1431
+ 'rp.nav.files': 'Dateien',
1432
+ 'rp.nav.advanced': 'Erweitert',
1433
+ 'rp.nav.back': '← Alle Unterhaltungen',
1434
+ 'rp.hero.fact.one': 'Deine KI hat eine private Datei geöffnet.',
1435
+ 'rp.hero.fact.other': 'Deine KI hat {n} private Dateien geöffnet.',
1436
+ 'rp.hero.todo.one': 'Machen wir sie sicher.',
1437
+ 'rp.hero.todo.other': 'Machen wir sie sicher.',
1438
+ 'rp.hero.done.one': 'Du hast sie sicher gemacht.',
1439
+ 'rp.hero.done.other': 'Du hast sie sicher gemacht.',
1440
+ 'rp.hero.lead': 'Deine KI hat gelesen, was sie geöffnet hat, und hat jetzt diese Informationen. Folge den Schritten unten, eine Datei nach der anderen.',
1441
+ 'rp.guide.start': 'Nicht sicher, wo du anfangen sollst? Ich führe dich.',
1442
+ 'rp.guide.startBody': 'Eine Datei nach der anderen. Etwa 2 Minuten pro Datei.',
1443
+ 'rp.guide.go': 'Los →',
1444
+ 'rp.done.title': 'Fertig. Gut gemacht.',
1445
+ 'rp.done.keys': 'Die Schlüssel, die die KI gesehen hat, funktionieren nicht mehr.',
1446
+ 'rp.done.other': 'Du hast für jede Datei getan, was ging.',
1447
+ 'rp.todo.heading': 'Deine Aufgaben',
1448
+ 'rp.todo.progress': '{done} von {total} erledigt',
1449
+ 'rp.col.file': 'Datei',
1450
+ 'rp.col.details': 'Details',
1451
+ 'rp.col.action': 'Aktion',
1452
+ 'rp.what': 'Was passiert ist',
1453
+ 'rp.fix': 'Beheben →',
1454
+ 'rp.fixed': 'Erledigt ✓',
1455
+ 'rp.nothing.title': 'Deine KI hat in dieser Unterhaltung nichts Privates gelesen.',
1456
+ 'rp.nothing.allowed': 'Deine KI hat in dieser Unterhaltung nur private Dateien gelesen, die du ihr erlaubt hast.',
1457
+ 'rp.shape.title': 'Ein Ergebnis enthält etwas, das wie ein Passwort oder Schlüssel aussieht.',
1458
+ 'rp.shape.fact': 'Etwas sieht wie ein Schlüssel aus.',
1459
+ 'rp.shape.action': 'Prüfe, ob er echt ist.',
1460
+ 'rp.shape.body': 'Es stand in keiner Datei, die dieses Projekt schützt. Art: {kinds}.',
1461
+ 'rp.item.keys': 'Schlüssel für {providers}',
1462
+ 'rp.item.template': 'Eine Beispieldatei mit Schlüsseln',
1463
+ 'rp.item.private': 'Eine private Datei',
1464
+ 'rule.env': 'Passwörter und Schlüssel',
1465
+ 'rule.npmrc': 'Passwörter zum Installieren',
1466
+ 'rule.secrets': 'Eine Datei in einem geheimen Ordner',
1467
+ 'rule.ssh': 'Anmeldeschlüssel für Computer',
1468
+ 'provider.ai': 'Dein KI-Konto',
1469
+ 'provider.github': 'Dein Code auf GitHub',
1470
+ 'provider.gitlab': 'Dein Code auf GitLab',
1471
+ 'provider.slack': 'Deine Slack-App',
1472
+ 'provider.cloud': 'Dein Cloud-Konto',
1473
+ 'provider.google': 'Google-Dienste, die deine App nutzt',
1474
+ 'provider.payments': 'Zahlungen',
1475
+ 'provider.supabase': 'Dein Supabase-Konto',
1476
+ 'provider.npm': 'Pakete installieren und veröffentlichen',
1477
+ 'provider.servers': 'Deine Server',
1478
+ 'provider.email': 'E-Mails senden',
1479
+ 'provider.database': 'Deine Datenbank',
1480
+ 'provider.backend': 'Das Backend deiner App',
1481
+ 'provider.login': 'Die Anmeldung in deiner App',
1482
+ 'provider.hosting': 'Wo deine App online läuft',
1483
+ 'provider.dev': 'Werkzeuge, mit denen du deine App baust',
1484
+ 'provider.monitoring': 'Fehlerverfolgung und Logs',
1485
+ 'provider.analytics': 'Wie Menschen deine App nutzen',
1486
+ 'provider.sms': 'SMS und Anrufe',
1487
+ 'provider.chat': 'Dein Chatbot',
1488
+ 'provider.realtime': 'Live-Updates und Anrufe in deiner App',
1489
+ 'provider.files': 'Dateien, Bilder und Videos deiner App',
1490
+ 'provider.maps': 'Karten in deiner App',
1491
+ 'provider.search': 'Die Suche in deiner App',
1492
+ 'provider.content': 'Die Inhalte deiner Website',
1493
+ 'provider.shop': 'Dein Onlineshop',
1494
+ 'provider.social': 'Die Verbindung zu sozialen Netzwerken',
1495
+ 'provider.workspace': 'Deine Arbeitswerkzeuge',
1496
+ 'wz.keys.guess': 'Das vermuten wir nach dem Namen: {names}',
1497
+ 'wz.keys.textGuess': 'Jede Karte ist eine Website, zu der deine Schlüssel gehören. Geh dorthin, erstelle einen neuen Schlüssel und lösche den alten.',
1498
+ 'wz.file': 'Datei {n} von {total}',
1499
+ 'wz.step.keys': 'Neue Schlüssel',
1500
+ 'wz.step.app': 'Deine App',
1501
+ 'wz.step.done': 'Fertig',
1502
+ 'wz.step.limit': 'Schaden begrenzen',
1503
+ 'wz.step.stop': 'Beim nächsten Mal',
1504
+ 'wz.now': 'Jetzt behebst du',
1505
+ 'wz.context.keys.one': 'Deine KI hat die Schlüssel in {name} gelesen. Die alten Schlüssel funktionieren, bis du sie änderst.',
1506
+ 'wz.context.keys.other': '{n} KIs haben die Schlüssel in {name} gelesen. Die alten Schlüssel funktionieren, bis du sie änderst.',
1507
+ 'wz.context.data.one': 'Deine KI hat {name} gelesen. Das lässt sich nicht zurücknehmen, aber du kannst den Schaden begrenzen.',
1508
+ 'wz.context.data.other': '{n} KIs haben {name} gelesen. Das lässt sich nicht zurücknehmen, aber du kannst den Schaden begrenzen.',
1509
+ 'wz.stepOf': 'Schritt {n} von 2',
1510
+ 'wz.keys.title': 'Machen wir neue Schlüssel',
1511
+ 'wz.keys.text': 'Diese Datei hat Schlüssel für {providers}. Öffne jeden, erstelle einen neuen Schlüssel und lösche den alten.',
1512
+ 'wz.keys.textUnnamed': 'Öffne die Datei. Jede Zeile beginnt mit einem Namen - STRIPE_… ist Stripe. Geh dorthin und erstelle einen neuen Schlüssel.',
1513
+ 'wz.keys.unnamed': 'Die Schlüssel in dieser Datei',
1514
+ 'wz.keys.unnamedWhat': 'Für jeden einen neuen erstellen und die alten löschen.',
1515
+ 'wz.keys.others': 'Weitere Schlüssel in dieser Datei',
1516
+ 'wz.keys.textLines': 'Wir wissen nicht, woher diese Schlüssel stammen. Erstelle dort, woher du jeden hast, einen neuen - oder, wenn du ihn dir selbst ausgedacht hast, ändere ihn einfach.',
1517
+ 'wz.keys.lineWhat': 'Einen neuen erstellen und den alten löschen.',
1518
+ 'wz.keys.notKey': 'Kein Schlüssel, wie NODE_ENV? Einfach als erledigt markieren.',
1519
+ 'wz.context.every.one': 'Beim Öffnen einer Datei sieht deine KI jede Zeile - hier {n} Schlüssel.',
1520
+ 'wz.context.every.other': 'Beim Öffnen einer Datei sieht deine KI jede Zeile - hier {n} Schlüssel.',
1521
+ 'wz.keys.testNote': 'Dem Namen nach ein Testschlüssel - weniger dringend.',
1522
+ 'wz.keys.more.one': '1 weiteren Schlüssel zeigen',
1523
+ 'wz.keys.more.other': '{n} weitere Schlüssel zeigen',
1524
+ 'wz.keys.open.one': '1 Schlüssel wirkt öffentlich - nichts zu ändern',
1525
+ 'wz.keys.open.other': '{n} Schlüssel wirken öffentlich - nichts zu ändern',
1526
+ 'wz.keys.openWhy': 'Nach den Namen zeigen Apps diese ohnehin jedem Besucher, ein Wechsel bringt also nichts. Ist einer davon geheim, ändere ihn trotzdem.',
1527
+ 'wz.open': '{provider} öffnen',
1528
+ 'wz.app.title': 'Neue Schlüssel in deine App eintragen',
1529
+ 'wz.app.text': 'Mach das selbst — es dauert eine Minute.',
1530
+ 'wz.app.warnStrong': 'Füge die neuen Schlüssel nicht in deine KI ein.',
1531
+ 'wz.app.warn': 'Sie würde sie wieder sehen, und wir wären wieder am Anfang.',
1532
+ 'wz.app.open': 'Öffne diese Datei auf deinem Computer:',
1533
+ 'wz.copy': 'Pfad kopieren',
1534
+ 'wz.copied': 'Kopiert ✓',
1535
+ 'wz.app.lines': 'Finde diese Zeilen. Ersetze alles nach = durch deinen neuen Schlüssel:',
1536
+ 'wz.app.placeholder': 'neuen Schlüssel hier einfügen',
1537
+ 'wz.app.linesGeneric': 'Finde die Zeilen mit deinen alten Schlüsseln und ersetze jeden Schlüssel nach = durch den neuen.',
1538
+ 'wz.app.save': 'Speichere die Datei. Wenn deine App online ist, ändere dieselben Schlüssel auch dort, wo sie gehostet wird (zum Beispiel in den Einstellungen von Vercel oder Netlify).',
1539
+ 'wz.data.title': 'Schaden begrenzen',
1540
+ 'wz.data.ask': 'Was steht in dieser Datei?',
1541
+ 'wz.data.people': 'Daten von Personen (Kunden, Nutzer, Mitarbeiter)',
1542
+ 'wz.data.business': 'Ein Vertrag oder anderes Geschäftsdokument',
1543
+ 'wz.data.other': 'Etwas anderes Privates',
1544
+ 'wz.data.nothing': 'Nichts Privates darin',
1545
+ 'wz.data.text': 'Die Kopie lässt sich nicht zurückholen. Aber diese Schritte helfen.',
1546
+ 'wz.data.report': 'Prüfe, ob du es melden musst',
1547
+ 'wz.data.reportWhat': 'In der EU und im Vereinigten Königreich muss ein Datenleck mit Personendaten unter Umständen innerhalb von 72 Stunden nach Bekanntwerden der Datenschutzbehörde gemeldet werden, und die Betroffenen sind bei hohem Risiko zu informieren.',
1548
+ 'wz.data.agreement': 'Prüfe, was dein Vertrag sagt',
1549
+ 'wz.data.agreementWhat': 'Er kann verlangen, dass du die andere Seite informierst.',
1550
+ 'wz.data.team': 'Sag deinem Sicherheits- oder IT-Team Bescheid',
1551
+ 'wz.data.teamWhat': 'Sag ihnen, welche Datei deine KI gelesen hat. Sie entscheiden, was als Nächstes passiert.',
1552
+ 'wz.data.move': 'Verschiebe die Datei aus deinem Projekt',
1553
+ 'wz.data.moveWhat': 'Deine KI arbeitet in deinem Projektordner. Außerhalb davon ist die Datei für sie viel schwerer zu erreichen.',
1554
+ 'wz.stop.title': 'Damit es nicht wieder passiert',
1555
+ 'wz.stop.text': 'Schütze diese Datei. Claude Code muss dich dann fragen, bevor es sie öffnet.',
1556
+ 'wz.protect': 'Schützen →',
1557
+ 'wz.stop.honest': 'Das stoppt die offensichtlichen Versuche, nicht jeden Trick. Wenn etwas durchrutscht, siehst du es trotzdem in deinem Bericht.',
1558
+ 'wz.done.keys.title': 'Diese Datei ist jetzt sicher.',
1559
+ 'wz.done.keys.text': 'Die Schlüssel, die die KI gesehen hat, funktionieren nicht mehr.',
1560
+ 'wz.done.data.title': 'Du hast getan, was ging.',
1561
+ 'wz.done.data.text': 'Diese Datei steht auf deiner Liste als erledigt.',
1562
+ 'wz.left.one': 'Noch 1.',
1563
+ 'wz.left.other': 'Noch {n}.',
1564
+ 'wz.last': 'Das war die letzte!',
1565
+ 'wz.back': '← Zurück',
1566
+ 'wz.skip.keys': 'Keine echten Schlüssel hier',
1567
+ 'wz.skip.data': 'Nichts Privates darin',
1568
+ 'wz.all': 'Fertig →',
1569
+ 'wz.tickFirst': 'Markiere zuerst jede Karte als erledigt - einfach anklicken.',
1570
+ 'wz.pickFirst': 'Wähle zuerst, was in der Datei ist.',
1571
+ 'wz.later': 'Erst mal überspringen →',
1572
+ 'wz.finish': 'Fertig ✓',
1573
+ 'wz.saving': 'Wird gespeichert…',
1574
+ 'wz.copyCommand': 'Kopieren',
1575
+ 'wz.cmd.mark': 'Diese Seite ist nicht mit agentwhy verbunden und kann das nicht speichern. Damit die Datei auf deiner Liste als erledigt bleibt, führe das in deinem Projekt aus:',
1576
+ 'wz.stop.outside': 'Diese Datei liegt außerhalb deines Projektordners, darum kann diese Seite sie nicht schützen.',
1577
+ 'wz.stop.shared': 'Das ist eine geteilte Kopie des Berichts, darum kann sie im Projekt nichts ändern.',
1578
+ 'wz.stop.told': 'Für diese Datei hast du Beobachten gewählt, also darf deine KI sie öffnen, und du wirst informiert. Soll Claude Code das nicht, stell sie in den Einstellungen auf Blockieren.',
1579
+ 'wz.nextFile': 'Nächste Datei →',
1580
+ 'wz.backToList': 'Zurück zur Liste',
1581
+ 'ask.make': 'Wie erstelle ich einen neuen {provider}-Schlüssel?',
1582
+ 'ask.makeAny': 'Wie erstelle ich einen neuen Schlüssel?',
1583
+ 'ask.makeA': 'Melde dich bei {provider} an. Schlüssel liegen meist unter Einstellungen, im Bereich API keys oder Tokens. Erstelle einen neuen und lösche dann den alten.',
1584
+ 'ask.makeAnyA': 'Sieh dir die Zeile des Schlüssels in der Datei an: Sein Name sagt meist, zu welchem Dienst er gehört. Melde dich dort an; Schlüssel liegen meist unter Einstellungen, im Bereich API keys oder Tokens.',
1585
+ 'ask.login': 'Was, wenn ich keinen Zugang habe?',
1586
+ 'ask.loginA': 'Frag die Person, die diesen Dienst für deine App eingerichtet hat — jemanden aus dem Team oder die Entwicklerin. Bis der Schlüssel geändert ist, funktioniert der alte.',
1587
+ 'ask.stop': 'Hört meine App auf zu funktionieren?',
1588
+ 'ask.stopA': 'Nur kurz. Deine App nutzt den alten Schlüssel, bis du den neuen einträgst (Schritt 2). Mach beide Schritte kurz nacheinander, dann läuft sie weiter.',
1589
+ 'ask.tell': 'Muss ich es jemandem sagen?',
1590
+ 'ask.tellA': 'Das hängt davon ab, was in der Datei steht und wo du bist. Enthält sie Personendaten, sagt der Schritt oben, was das Gesetz verlangen kann. Wenn du unsicher bist, frag dein Sicherheits- oder IT-Team.',
1591
+ 'ask.who': 'Wer kann das jetzt sehen?',
1592
+ 'ask.whoA': 'Deine KI hat es gelesen, also ist es jetzt Teil deiner Unterhaltung mit der KI. Was mit dieser Unterhaltung geschieht, hängt von deiner KI und deinen Kontoeinstellungen ab.',
1593
+ 'ask.next': 'Wie verhindere ich das beim nächsten Mal?',
1594
+ 'ask.nextA': 'Schütze die Datei (Schritt 2). Dann muss Claude Code dich fragen, bevor es sie öffnet, und jeden Versuch siehst du trotzdem in deinem Bericht.',
1595
+ 'pr.title': 'Diese Datei schützen?',
1596
+ 'pr.sentence': 'Das schützt {path}. Claude Code kann sie nicht mehr öffnen. Braucht es sie für eine Aufgabe, hält es an und fragt dich zuerst. Du kannst das jederzeit rückgängig machen.',
1597
+ 'pr.option': 'Auch jede Datei namens {name} schützen, egal wo sie im Projekt liegt.',
1598
+ 'pr.confirm': 'Ja, schützen',
1599
+ 'pr.done': 'Geschützt ✓',
1600
+ 'pr.cmd': 'Diese Seite ist nicht mit agentwhy verbunden und kann die Datei nicht selbst schützen. Führe das in deinem Projekt aus:',
1601
+ 'mp.title': 'Diese Datei als privat markieren?',
1602
+ 'mp.sentence': 'Das fügt {path} deinen privaten Dateien hinzu, in deinen Einstellungen. Claude Code kann sie nicht mehr öffnen. Braucht es sie für eine Aufgabe, hält es an und fragt dich zuerst. Du kannst das jederzeit rückgängig machen.',
1603
+ 'mp.option': 'Auch jede Datei namens {name} als privat markieren, egal wo sie im Projekt liegt.',
1604
+ 'mp.confirm': 'Ja, als privat markieren',
1605
+ 'mp.cmd': 'Diese Seite ist nicht mit agentwhy verbunden und kann deine Einstellungen nicht selbst ändern. Führe das in deinem Projekt aus:',
1606
+ 'st.heading': 'Was mit dieser Datei passiert ist',
1607
+ 'st.summary.keys.one': 'Deine KI hat die Schlüssel in dieser Datei gelesen — und hat sie jetzt.',
1608
+ 'st.summary.keys.other': '{n} KIs haben die Schlüssel in dieser Datei gelesen — und haben sie jetzt.',
1609
+ 'st.summary.keysHelper': 'Ein Helfer hat die Schlüssel in dieser Datei gelesen — und hat sie jetzt.',
1610
+ 'st.summary.data.one': 'Deine KI hat diese Datei gelesen — und hat jetzt diese Informationen.',
1611
+ 'st.summary.data.other': '{n} KIs haben diese Datei gelesen — und haben jetzt diese Informationen.',
1612
+ 'st.summary.dataHelper': 'Ein Helfer hat diese Datei gelesen — und hat jetzt diese Informationen.',
1613
+ 'st.summary.reached': 'Etwas aus dieser Datei hat deine KI erreicht — und sie hat jetzt diese Informationen.',
1614
+ 'st.tab.story': 'Der Ablauf',
1615
+ 'st.tab.diagram': 'Diagramm',
1616
+ 'st.tab.record': 'Vollständiges Protokoll',
1617
+ 'st.you': 'Du',
1618
+ 'st.main': 'Deine KI',
1619
+ 'st.mainLower': 'deine KI',
1620
+ 'st.helper': 'Helfer {ordinal}',
1621
+ 'st.company': 'Es wurde offengelegt',
1622
+ 'st.e.read.keys': 'Hat die Datei geöffnet und die Schlüssel gelesen',
1623
+ 'st.e.read.data': 'Hat die Datei geöffnet und gelesen',
1624
+ 'st.e.received.keys': 'Hat die Schlüssel in dem gelesen, was ihr Programm zurückgab',
1625
+ 'st.e.received.data': 'Hat sie in dem gelesen, was ihr Programm zurückgab',
1626
+ 'st.e.again': 'Hat sie noch einmal gelesen',
1627
+ 'st.e.helperRead.keys': 'Ein Helfer hat die Schlüssel gelesen',
1628
+ 'st.e.helperRead.data': 'Ein Helfer hat sie gelesen',
1629
+ 'st.e.helperReadToo.keys': 'Auch ein Helfer hat die Schlüssel gelesen',
1630
+ 'st.e.helperReadToo.data': 'Auch ein Helfer hat sie gelesen',
1631
+ 'st.e.named': 'Hat ihren Namen gesehen',
1632
+ 'st.e.unknown': 'Hat versucht, sie zu öffnen',
1633
+ 'st.e.stopped': 'Hat versucht, sie zu öffnen. Es wurde gestoppt.',
1634
+ 'st.e.passed': 'Hat das Gelesene an {to} zurückgegeben',
1635
+ 'st.e.saved': 'Hat eine Kopie gespeichert',
1636
+ 'st.e.handed': 'Hat es an einen Helfer weitergegeben',
1637
+ 'st.e.repeated': 'Hat es in einer Nachricht wiederholt',
1638
+ 'st.e.used': 'Hat es benutzt, um etwas auszuführen',
1639
+ 'st.e.company': 'Die KI hat jetzt diese Informationen',
1640
+ 'st.sub.did': 'Mit {did}.',
1641
+ 'st.sub.received': 'Ein kleines Programm, das sie geschrieben hat, gab ihr denselben Text wie in dieser Datei zurück.',
1642
+ 'st.sub.didTimes.one': 'Mit {did}.',
1643
+ 'st.sub.didTimes.other': '{n}-mal, mit {did}.',
1644
+ 'st.sub.asked': 'Es sollte „{task}“.',
1645
+ 'st.sub.notAsked': 'Das Protokoll sagt nicht, worum es gebeten wurde.',
1646
+ 'st.sub.unknown': 'Das Protokoll sagt nicht, was passiert ist.',
1647
+ 'st.sub.passed': 'Was es zurückgeschickt hat, enthielt etwas aus dieser Datei.',
1648
+ 'st.sub.saved': 'In {files}.',
1649
+ 'st.sub.savedAny': 'Eine andere Datei hat etwas aus dieser bekommen.',
1650
+ 'st.sub.handed': 'Seine Anweisungen an einen Helfer enthielten etwas aus dieser Datei.',
1651
+ 'st.sub.repeated': 'Seine eigenen Worte enthielten etwas aus dieser Datei.',
1652
+ 'st.sub.used': 'In {programs}.',
1653
+ 'st.sub.usedAny': 'Ein Befehl oder ein Werkzeug hat etwas aus dieser Datei bekommen.',
1654
+ 'st.sub.company': 'Alles oben ist jetzt in deiner Unterhaltung mit der KI.',
1655
+ 'st.stat.opened': 'Wie oft geöffnet',
1656
+ 'st.stat.readers': 'KIs, die sie gelesen haben',
1657
+ 'st.stat.stopped': 'Rechtzeitig gestoppt',
1658
+ 'st.stat.record': 'Protokoll',
1659
+ 'st.complete': 'Vollständig',
1660
+ 'st.gaps': 'Hat Lücken',
1661
+ 'st.rec.every': 'Jedes Mal, wenn sie geöffnet wurde',
1662
+ 'st.rec.count.one': '{n} Ereignis · der Reihe nach',
1663
+ 'st.rec.count.other': '{n} Ereignisse · der Reihe nach',
1664
+ 'st.col.n': '#',
1665
+ 'st.col.who': 'Wer',
1666
+ 'st.col.what': 'Was passiert ist',
1667
+ 'st.col.tool': 'Werkzeug',
1668
+ 'st.col.result': 'Ergebnis',
1669
+ 'st.col.evidence': 'Beleg',
1670
+ 'st.res.succeeded': 'erfolgreich',
1671
+ 'st.res.blocked': 'gestoppt',
1672
+ 'st.res.unknown': 'nicht protokolliert',
1673
+ 'st.rec.each': 'Was jede KI damit gemacht hat',
1674
+ 'st.rec.yes': 'JA = ist passiert',
1675
+ 'st.col.role': 'Rolle',
1676
+ 'st.col.read': 'Gelesen',
1677
+ 'st.col.passed': 'Weitergegeben',
1678
+ 'st.col.saved': 'Kopie gespeichert',
1679
+ 'st.col.repeated': 'Wiederholt',
1680
+ 'st.col.used': 'In einem Befehl benutzt',
1681
+ 'st.col.actions': 'Aktionen',
1682
+ 'st.role.main': 'Die KI, mit der du gesprochen hast',
1683
+ 'st.role.helper': 'Hinzugeholt von: {who}',
1684
+ 'st.role.helperAny': 'Zur Hilfe hinzugeholt',
1685
+ 'st.yes': 'JA',
1686
+ 'st.no': 'NEIN',
1687
+ 'st.rec.details': 'Details zur Datei',
1688
+ 'st.fact.path': 'Vollständiger Pfad',
1689
+ 'st.fact.rule': 'Passende Regel',
1690
+ 'st.fact.why': 'Warum sie privat ist',
1691
+ 'st.fact.session': 'Sitzung',
1692
+ 'st.fact.complete': 'Protokoll vollständig?',
1693
+ 'st.why.env': 'Solche Dateien enthalten meist Schlüssel und Passwörter.',
1694
+ 'st.why.npmrc': 'Sie enthält meist das Passwort zum Installieren der Pakete deiner App.',
1695
+ 'st.why.secrets': 'Sie liegt in einem Ordner für Geheimnisse.',
1696
+ 'st.why.ssh': 'Mit solchen Schlüsseln kann sich jemand an deinen Computern anmelden.',
1697
+ 'st.why.other': 'Eine Regel für dieses Projekt markiert sie als privat.',
1698
+ 'st.complete.yes': 'Ja — nichts fehlt',
1699
+ 'st.complete.no': 'Nein — ein Teil des Protokolls fehlt',
1700
+ 'st.d.asked': 'um Hilfe gebeten',
1701
+ 'st.d.hint': 'Fahre über ein Feld, um zu sehen, wohin seine Linien führen.',
1702
+ 'st.d.file': 'deine private Datei',
1703
+ 'st.d.company': 'die KI hat diese Informationen',
1704
+ 'st.d.readKeys': 'hat die Schlüssel gelesen',
1705
+ 'st.d.readIt': 'hat sie gelesen',
1706
+ 'st.d.passed': 'hat es zurückgegeben',
1707
+ 'st.d.saved': 'hat eine Kopie gespeichert',
1708
+ 'st.d.stopped': 'wurde gestoppt',
1709
+ 'st.d.named': 'hat den Namen gesehen',
1710
+ 'st.d.times': '{n}×',
1711
+ 'st.d.legendRead': 'gelesen / Kopie gesendet',
1712
+ 'st.d.legendWork': 'Arbeit übergeben',
1713
+ 'st.foot': 'Wir sehen nur, was die KI aufgeschrieben hat, nicht was sie gedacht hat.',
1714
+ 'hp.eyebrow': 'Hinter den Kulissen',
1715
+ 'hp.fact.one': 'Deine KI hat sich von {n} Helfer helfen lassen.',
1716
+ 'hp.fact.other': 'Deine KI hat sich von {n} Helfern helfen lassen.',
1717
+ 'hp.some.one': 'Nur {n} davon hat deine privaten Dateien gelesen.',
1718
+ 'hp.some.other': 'Nur {n} davon haben deine privaten Dateien gelesen.',
1719
+ 'hp.all.one': 'Er hat deine privaten Dateien gelesen.',
1720
+ 'hp.all.other': 'Alle haben deine privaten Dateien gelesen.',
1721
+ 'hp.noneRead': 'Keiner davon hat deine privaten Dateien gelesen.',
1722
+ 'hp.lead': 'Helfer sind zusätzliche KIs, die deine KI hinzuholt, um schneller zu arbeiten. Hier siehst du, wer deine privaten Dateien gesehen hat.',
1723
+ 'hp.tab.list': 'Liste',
1724
+ 'hp.tab.diagram': 'Diagramm',
1725
+ 'hp.line.read.one': 'Hat {n} private Datei gelesen',
1726
+ 'hp.line.read.other': 'Hat {n} private Dateien gelesen',
1727
+ 'hp.line.sample': 'Hat nur eine Beispieldatei gesehen.',
1728
+ 'hp.line.named': 'Hat nur den Namen einer Datei gesehen.',
1729
+ 'hp.line.unknown': 'Hat versucht, eine private Datei zu öffnen. Das Protokoll sagt nicht, was passiert ist.',
1730
+ 'hp.line.stopped': 'Hat versucht, eine private Datei zu öffnen. Es wurde gestoppt.',
1731
+ 'hp.line.none': 'Hat nichts Privates angefasst.',
1732
+ 'hp.seeWhat': 'Was genau →',
1733
+ 'hp.safe.one': '<strong>{n} weiterer Helfer</strong> <span class="fold-rest">hat nichts Echtes gesehen.</span>',
1734
+ 'hp.safe.other': '<strong>{n} weitere Helfer</strong> <span class="fold-rest">haben nichts Echtes gesehen.</span>',
1735
+ 'hp.col.start': 'Start',
1736
+ 'hp.col.main': 'Deine KI',
1737
+ 'hp.col.helpers': 'Helfer',
1738
+ 'hp.col.files': 'Dateien',
1739
+ 'hp.key.read': 'Gelesen',
1740
+ 'hp.key.named': 'Nur den Namen gesehen',
1741
+ 'hp.key.stopped': 'Gestoppt',
1742
+ 'hp.key.work': 'Arbeit gegeben',
1743
+ 'hp.you.sub': 'Hat die Arbeit angefragt',
1744
+ 'hp.file.named': 'Nur der Name wurde gesehen',
1745
+ 'hp.file.unknown': 'Nicht protokolliert, was passiert ist',
1746
+ 'hp.file.stopped': 'Rechtzeitig gestoppt',
1747
+ 'hp.hint': 'Fahre über ein Feld, um seine Linien zu sehen. Klicke, um die Details zu öffnen.',
1748
+ 'hp.job': 'Seine Aufgabe',
1749
+ 'hp.mainJob': 'Die Arbeit, um die du in diesem Gespräch gebeten hast.',
1750
+ 'hp.opened': 'Hat er eine private Datei geöffnet?',
1751
+ 'hp.yes': 'Ja',
1752
+ 'hp.no': 'Nein',
1753
+ 'hp.answer.read': 'Er hat gelesen, was in diesen Dateien steht:',
1754
+ 'hp.answer.sample': 'Er hat den Namen einer Beispieldatei gesehen, aber nichts zeigt, dass er hineingeschaut hat.',
1755
+ 'hp.answer.named': 'Er hat den Namen einer privaten Datei gesehen, aber nichts zeigt, dass er hineingeschaut hat.',
1756
+ 'hp.answer.unknown': 'Er hat versucht, eine private Datei zu öffnen, und das Protokoll sagt nicht, was passiert ist.',
1757
+ 'hp.answer.stopped': 'Er hat versucht, eine private Datei zu öffnen. Er wurde rechtzeitig gestoppt.',
1758
+ 'hp.answer.none': 'Er hat sich von deinen privaten Dateien ferngehalten.',
1759
+ 'hp.next': 'Was er danach getan hat',
1760
+ 'hp.next.passed': 'An eine andere KI weitergegeben',
1761
+ 'hp.next.saved': 'Eine Kopie gespeichert',
1762
+ 'hp.next.repeated': 'In einer Nachricht wiederholt',
1763
+ 'hp.next.used': 'Benutzt, um etwas auszuführen',
1764
+ 'hp.explain': '✦ In einfachen Worten erklären',
1765
+ 'hp.ex.brought': '{who} hat ihn zur Hilfe hinzugeholt.',
1766
+ 'hp.ex.read': 'Er hat {files} gelesen.',
1767
+ 'hp.ex.passed': 'Etwas daraus ging weiter an eine andere KI.',
1768
+ 'hp.ex.saved': 'Er hat etwas daraus in eine andere Datei gespeichert.',
1769
+ 'hp.ex.repeated': 'Er hat etwas daraus in eigenen Worten wiederholt.',
1770
+ 'hp.ex.used': 'Er hat etwas daraus benutzt, um einen Befehl auszuführen.',
1771
+ 'hp.ex.company': 'Alles, was er gelesen hat, ist jetzt in deiner Unterhaltung mit der KI.',
1772
+ 'hp.fix': 'Diese Dateien beheben →',
1773
+ 'fl.eyebrow': 'Alles, was sie geöffnet hat',
1774
+ 'fl.fact.one': 'Deine KI hat {n} Datei geöffnet.',
1775
+ 'fl.fact.other': 'Deine KI hat {n} Dateien geöffnet.',
1776
+ 'fl.some.one': 'Nur {n} war privat.',
1777
+ 'fl.some.other': 'Nur {n} waren privat.',
1778
+ 'fl.all.one': 'Sie war privat.',
1779
+ 'fl.all.other': 'Alle waren privat.',
1780
+ 'fl.noneRead': 'Keine davon war privat.',
1781
+ 'fl.lead': 'Der Rest waren normale Arbeitsdateien. Dort ist nichts zu tun.',
1782
+ 'fl.leadAll': 'Jede steht unten, mit dem, was zu tun ist.',
1783
+ 'fl.leadNone': 'Es waren normale Arbeitsdateien. Dort ist nichts zu tun.',
1784
+ 'fl.search': 'Datei finden',
1785
+ 'fl.group.all': 'Alle Dateien',
1786
+ 'fl.group.fix': 'Zu beheben',
1787
+ 'fl.group.fixed': 'Schon behoben',
1788
+ 'fl.did.q': 'Was die KI getan hat:',
1789
+ 'fl.did.any': 'Egal',
1790
+ 'fl.did.read': 'Geöffnet und gelesen',
1791
+ 'fl.did.name': 'Nur den Namen gesehen',
1792
+ 'fl.did.stopped': 'Wurde gestoppt',
1793
+ 'fl.prot.q': 'Private Datei:',
1794
+ 'fl.prot.any': 'Egal',
1795
+ 'fl.prot.no': 'Nicht blockiert',
1796
+ 'fl.prot.yes': 'Blockiert',
1797
+ 'fl.prot.na': 'Nicht privat',
1798
+ 'fl.prot.told': 'Beobachten',
1799
+ 'fl.clear': 'Filter zurücksetzen',
1800
+ 'fl.col.file': 'Datei',
1801
+ 'fl.col.ai': 'KI',
1802
+ 'fl.col.prot': 'Private Datei',
1803
+ 'fl.col.mode': 'Wenn deine KI darauf zugreift',
1804
+ 'fl.col.action': 'Aktion',
1805
+ 'fl.acc.read': 'Gelesen',
1806
+ 'fl.acc.name': 'Nur Name',
1807
+ 'fl.acc.unknown': 'Nicht protokolliert',
1808
+ 'fl.acc.stopped': 'Gestoppt',
1809
+ 'fl.acc.changed': 'Geändert',
1810
+ 'fl.tag.private': 'Privat',
1811
+ 'fl.tag.na': 'Nicht privat',
1812
+ 'fl.mode.yes': 'Blockiert',
1813
+ 'fl.mode.told': 'Beobachten',
1814
+ 'fl.mode.no': 'Nicht blockiert',
1815
+ 'fl.mode.unknown': 'Unklar',
1816
+ 'fl.mode.na': 'Nicht nötig',
1817
+ 'fl.act.fix': 'Beheben →',
1818
+ 'fl.act.fixed': 'Behoben ✓',
1819
+ 'fl.act.none': 'Nichts zu tun',
1820
+ 'fl.protect': 'Schützen →',
1821
+ 'fl.makePrivate': 'Als privat markieren →',
1822
+ 'fl.tier.read': 'Private Dateien, die deine KI gelesen hat',
1823
+ 'fl.tier.name': 'Private Dateien, von denen sie nur den Namen gesehen hat',
1824
+ 'fl.tier.rest': 'Alles andere',
1825
+ 'fl.shown': '{shown} von {n} Dateien angezeigt.',
1826
+ 'fl.commands': 'Dateien, die deine KI nur über einen Befehl erreicht hat, stehen hier, wenn sie privat sind.',
1827
+ 'fl.noMatch': 'Keine Datei passt.',
1828
+ 'fl.kind.aiNotes': 'Notizen für die KI',
1829
+ 'fl.kind.notes': 'Notizen zu deiner App',
1830
+ 'fl.kind.settings': 'App-Einstellungen',
1831
+ 'fl.kind.code': 'Teil deiner App',
1832
+ 'fl.kind.file': 'Eine Datei',
1833
+ 'fl.w.did': 'Was die KI getan hat',
1834
+ 'fl.w.prot': 'Geschützt?',
1835
+ 'fl.w.next': 'Was zu tun ist',
1836
+ 'fl.w.did.read': 'Deine KI hat diese Datei geöffnet und gelesen, was darin steht.',
1837
+ 'fl.w.did.name': 'Deine KI hat den Namen dieser Datei gesehen, aber nichts zeigt, dass sie den Inhalt gelesen hat.',
1838
+ 'fl.w.did.unknown': 'Deine KI hat versucht, diese Datei zu öffnen, und das Protokoll sagt nicht, was passiert ist.',
1839
+ 'fl.w.did.stopped': 'Deine KI hat versucht, diese Datei zu öffnen. Sie wurde rechtzeitig gestoppt.',
1840
+ 'fl.w.did.everydayRead': 'Deine KI hat diese Datei geöffnet und gelesen.',
1841
+ 'fl.w.did.changed': 'Deine KI hat diese Datei geändert.',
1842
+ 'fl.w.did.everydayStopped': 'Deine KI hat versucht, mit dieser Datei zu arbeiten, und jeder Versuch wurde abgelehnt.',
1843
+ 'fl.w.prot.yes': 'Geschützt. Claude Code kann sie nicht öffnen, ohne dich vorher zu fragen.',
1844
+ 'fl.w.prot.no': 'Nicht geschützt. Claude Code kann sie jederzeit öffnen.',
1845
+ 'fl.w.prot.unknown': 'Wir konnten die Einstellungen deines Projekts nicht lesen, darum lässt sich das nicht sagen.',
1846
+ 'fl.w.prot.na': 'Eine normale Arbeitsdatei. Keine Regel markiert sie als privat, darum braucht sie keinen Schutz.',
1847
+ 'fl.w.prot.told': 'Du hast Beobachten gewählt: Deine KI darf sie öffnen, und du wirst informiert, wenn sie es tut.',
1848
+ 'fl.w.next.safe': 'Nichts zu tun. Diese Datei ist sicher.',
1849
+ 'fl.w.next.maybe': 'Nichts zu tun. Wenn Claude Code sie nie öffnen soll, schütze sie.',
1850
+ 'fl.w.next.none': 'Nichts zu tun.',
1851
+ 'fl.w.next.told': 'Nichts zu tun. Soll Claude Code sie nie öffnen, stell sie in den Einstellungen auf Blockieren.',
1852
+ 'adv.eyebrow': 'Erweitert',
1853
+ 'adv.title': 'Das vollständige Protokoll',
1854
+ 'adv.lead': 'Für Entwickler. Jede private Datei und jeder Helfer, mit den benutzten Werkzeugen und den Belegen dahinter.',
1855
+ 'adv.tab.files': 'Private Dateien',
1856
+ 'adv.tab.helpers': 'Helfer',
1857
+ 'adv.stat.files': 'Gelesene private Dateien',
1858
+ 'adv.stat.ais': 'Beteiligte KIs',
1859
+ 'adv.stat.events': 'Protokollierte Ereignisse',
1860
+ 'adv.stat.fixed': 'Behoben',
1861
+ 'adv.col.file': 'Datei',
1862
+ 'adv.col.readBy': 'Gelesen von',
1863
+ 'adv.col.access': 'Zugriff',
1864
+ 'adv.col.tools': 'Werkzeuge',
1865
+ 'adv.col.events': 'Ereignisse',
1866
+ 'adv.col.firstLast': 'Erster → letzter Eintrag',
1867
+ 'adv.col.helper': 'Helfer',
1868
+ 'adv.col.asked': 'Worum er gebeten wurde',
1869
+ 'adv.col.touched': 'Berührte Dateien',
1870
+ 'adv.col.actions': 'Aktionen',
1871
+ 'adv.needs': 'Zu erledigen · {n}',
1872
+ 'adv.fixed': 'Behoben · {n}',
1873
+ 'adv.noFiles': 'Der Inhalt keiner privaten Datei hat eine KI erreicht.',
1874
+ 'adv.hint': 'Klicke auf eine Zeile, um jedes Ereignis zu dieser Datei zu sehen.',
1875
+ 'adv.status.read': 'Private Dateien gelesen',
1876
+ 'adv.status.sample': 'Nur Beispieldatei',
1877
+ 'adv.status.named': 'Nur einen Namen gesehen',
1878
+ 'adv.status.unknown': 'Nicht protokolliert',
1879
+ 'adv.status.stopped': 'Gestoppt',
1880
+ 'adv.status.none': 'Nichts Privates',
1881
+ 'rp.gap.banner': 'Ein Teil des Protokolls dieses Gesprächs fehlt, darum kann diese Liste unvollständig sein.',
1882
+ 'rp.gap.link': 'Sehen, was fehlt →',
1883
+ 'rp.gap.fact': 'Wir sehen nichts zu beheben.',
1884
+ 'rp.gap.action': 'Aber ein Teil des Protokolls fehlt.',
1885
+ 'rp.gap.stopped': 'Dein Schutz hat gewirkt.',
1886
+ 'rp.gap.body': 'Ein Teil des Protokolls dieses Gesprächs fehlt. Keine Belege heißt nicht, dass nichts passiert ist.',
1887
+ 'adv.tab.record': 'Protokoll',
1888
+ // 2026-09-27-what-codex-wrote.md X23, X19-X22: was ein Codex-Protokoll nicht zeigt, und was es damals aufzeichnete.
1889
+ 'rp.gap.codex.action': 'Aber Codex zeichnet nicht jeden Schritt auf.',
1890
+ 'rp.gap.codex.legacyAction': 'Aber Codex hat seine Befehle nicht aufgezeichnet.',
1891
+ 'rp.gap.codex.lead': 'Codex zeichnet nicht jeden Schritt auf, daher zeigt dieser Bericht vielleicht nicht alles, was Codex geöffnet hat.',
1892
+ 'rp.gap.codex.body': 'Codex zeichnet das meiste auf, was es tut. Hier ist, was es aufgezeichnet hat.',
1893
+ 'rp.gap.codex.legacy': 'Codex hat dieses Gespräch auf eine ältere Art gespeichert, die nicht zeigt, welche Befehle liefen. Hier ist, was es aufgezeichnet hat.',
1894
+ 'rp.gap.codex.banner': 'Codex zeichnet nicht jeden Schritt auf, daher fehlt in dieser Liste vielleicht etwas.',
1895
+ 'rec.recorded': 'Was {ai} damals aufgezeichnet hat',
1896
+ 'rec.recorded.note': 'Das sind die Einstellungen, die {ai} während des Gesprächs hatte. Es sind nicht deine agentwhy-Regeln: Dieser Bericht prüft deine privaten Dateien so, wie sie jetzt eingestellt sind.',
1897
+ 'rec.perm.turns.one': '{n} Runde',
1898
+ 'rec.perm.turns.other': '{n} Runden',
1899
+ 'rec.perm.approval': 'fragt vor dem Handeln: {value}',
1900
+ 'rec.perm.approver': 'antwortet: {value}',
1901
+ 'rec.perm.sandbox': 'Sandbox: {value}',
1902
+ 'rec.perm.network': 'Netzwerk: {value}',
1903
+ 'rec.perm.scopes': 'darf an {read} Orten lesen und an {write} schreiben',
1904
+ 'rec.perm.writable': 'Darf schreiben in',
1905
+ 'rec.perm.incomplete': 'Ein Teil wurde nicht verstanden und ist weggelassen.',
1906
+ 'rec.who.person': 'du',
1907
+ 'rec.who.reviewer': 'der Prüfer, den {ai} startet',
1908
+ 'rec.who.unrecognised': 'nicht bekannt',
1909
+ 'rec.who.unrecorded': 'nicht aufgezeichnet',
1910
+ 'rec.net.allowed': 'an',
1911
+ 'rec.net.restricted': 'aus',
1912
+ 'rec.net.unrecognised': 'nicht bekannt',
1913
+ 'rec.net.unrecorded': 'nicht aufgezeichnet',
1914
+ 'rec.value.none': 'nicht aufgezeichnet',
1915
+ 'rec.reviews': 'Was der Prüfer, den {ai} startet, entschieden hat',
1916
+ 'rec.review.allowed': 'Hat eine Aktion in einer Runde erlaubt ({who}). Welche Aktion, ist nicht aufgezeichnet.',
1917
+ 'rec.review.allowedNoTurn': 'Hat eine Aktion erlaubt, in keiner Runde, die das Protokoll nennt.',
1918
+ 'rec.review.unrecognised': 'Hat eine Antwort gegeben, die wir nicht kennen. Sie wird nicht als Ablehnung gelesen.',
1919
+ 'rec.review.risk': 'Risiko: {risk}',
1920
+ 'rec.review.why.one': 'seine Begründung: {n} Zeichen, nicht gezeigt',
1921
+ 'rec.review.why.other': 'seine Begründung: {n} Zeichen, nicht gezeigt',
1922
+ 'rec.q.actions': 'welche Aktionen liefen',
1923
+ 'rec.q.access': 'was eine Aktion erreicht hat',
1924
+ 'rec.q.output-delivery': 'was bei deiner KI ankam',
1925
+ 'rec.q.own-words': 'alles, was deine KI geschrieben hat',
1926
+ 'rec.q.reasoning': 'was deine KI vor dem Handeln überlegt hat',
1927
+ 'rec.q.refusals': 'ob eine Aktion gestoppt wurde',
1928
+ 'rec.q.permissions': 'welche Berechtigungen galten',
1929
+ 'rec.shapes': 'Schlüsselformen in Ergebnissen',
1930
+ 'rec.shapes.none': 'Kein Ergebnis enthielt etwas in Form eines Schlüssels.',
1931
+ 'rec.gap.title.gaps': 'Ein Teil dieses Gesprächs fehlt in der Aufzeichnung',
1932
+ 'rec.gap.lead.gaps': 'Alles, was dieser Bericht zeigt, steht in der Aufzeichnung. Aber es fehlt etwas darin, daher zeigt der Bericht vielleicht nicht alles: Eine leere Liste heißt nicht, dass nichts passiert ist.',
1933
+ 'rec.gap.title.clean': 'Die Aufzeichnung dieses Gesprächs ist vollständig',
1934
+ 'rec.gap.lead.clean': 'Wir haben darin keine Lücken gefunden, daher beruht dieser Bericht auf dem ganzen Gespräch.',
1935
+ 'rec.gap.tag.gaps': 'Hat Lücken',
1936
+ 'rec.gap.tag.clean': 'Vollständig',
1937
+ 'rec.gap.missing': 'Was in der Aufzeichnung fehlt',
1938
+ 'rec.gap.times.one': 'einmal',
1939
+ 'rec.gap.times.other': '{n}-mal',
1940
+ 'rec.gap.which': 'Zeigen, welche',
1941
+ 'rec.gap.k.session-missing.t': 'Das Gespräch ließ sich nicht lesen',
1942
+ 'rec.gap.k.session-missing.d': 'Nichts in diesem Bericht gilt als Befund.',
1943
+ 'rec.gap.k.source-missing.t': 'Ein Teil der Aufzeichnung fehlt',
1944
+ 'rec.gap.k.source-missing.d': 'Eine Datei dieses Gesprächs - etwa die eines Helfers - fehlte oder ließ sich nicht lesen, daher fehlt hier, was darin geschah.',
1945
+ 'rec.gap.k.record-damaged.t': 'Eine beschädigte Zeile',
1946
+ 'rec.gap.k.record-damaged.d': 'Eine Zeile der Aufzeichnung ließ sich nicht lesen. Vielleicht wurde sie beim Schreiben abgeschnitten.',
1947
+ 'rec.gap.k.result-missing.t': 'Eine Aktion ohne Ergebnis',
1948
+ 'rec.gap.k.result-missing.d': 'Deine KI hat sie gestartet, aber die Aufzeichnung enthält keine Antwort. Wir wissen nicht, ob sie geklappt hat oder was sie zurückgab.',
1949
+ 'rec.gap.k.spilled-result-missing.t': 'Ein langes Ergebnis fehlt',
1950
+ 'rec.gap.k.spilled-result-missing.d': 'Es lag in einer eigenen Datei, die es nicht mehr gibt.',
1951
+ 'rec.gap.k.outcome-unrecognised.t': 'Ein Ende, das wir nicht kennen',
1952
+ 'rec.gap.k.outcome-unrecognised.d': 'Die Aufzeichnung markiert das Ende einer Aktion auf eine Weise, die diese Version von agentwhy nicht kennt, daher raten wir nicht.',
1953
+ 'rec.gap.k.relation-unresolved.t': 'Aktionen, die sich nicht zuordnen ließen',
1954
+ 'rec.gap.k.relation-unresolved.d': 'Wir konnten nicht sicher sagen, welches Ergebnis zu welcher Aktion gehört, daher sagen wir nicht, wie sie ausgingen.',
1955
+ 'rec.gap.k.result-incomplete.t': 'Ein Text, der gekürzt sein kann',
1956
+ 'rec.gap.k.result-incomplete.d': 'Wir können sagen, was darin steht, aber nicht, was fehlt: Der fehlende Teil kann mehr enthalten haben.',
1957
+ 'rec.gap.k.answer-unread.t': 'Die Antwort eines Helfers ließ sich nicht lesen',
1958
+ 'rec.gap.k.answer-unread.d': 'Daher wissen wir nicht, was er deiner KI zurückgegeben hat.',
1959
+ 'rec.gap.k.answer-awaited.t': 'Die Antwort eines Helfers kam nie an',
1960
+ 'rec.gap.k.answer-awaited.d': 'Er arbeitete im Hintergrund, und seine Antwort kam nie bei deiner KI an.',
1961
+ 'rec.gap.unknown.t': 'Aktionen mit unbekanntem Ende',
1962
+ 'rec.gap.unknown.d': 'Wir wissen nicht, ob sie geklappt haben oder gestoppt wurden.',
1963
+ 'rec.gap.unresolved.t': 'Helfer ohne bekannten Auftrag',
1964
+ 'rec.gap.unresolved.d': 'Wir wissen nicht, wer sie hinzugeholt hat oder worum sie gebeten wurden.',
1965
+ 'rec.gap.lost.t': 'Angeforderte Helfer, die nicht in der Aufzeichnung stehen',
1966
+ 'rec.gap.lost.d': 'Deine KI hat um Hilfe gebeten, aber die Aufzeichnung des Helfers fehlt, daher wird nicht gezeigt, was er tat.',
1967
+ 'rec.cap.h': 'Was diese Aufzeichnung nicht zeigen kann',
1968
+ 'rec.cap.lead': 'Nichts ist kaputt: {ai} schreibt das nicht auf, oder wir haben noch nicht geprüft, ob es das tut. Daher kann der Bericht es weder bestätigen noch ausschließen.',
1969
+ 'rec.cap.tag.absent': 'Nicht aufgezeichnet',
1970
+ 'rec.cap.tag.unmeasured': 'Noch nicht geprüft',
1971
+ 'rec.cap.shown': '{ai} zeichnet dagegen auf: {list}.',
1972
+ 'rec.cap.t.actions': 'Welche Aktionen liefen',
1973
+ 'rec.cap.d.actions': 'Es können mehr gewesen sein, als der Bericht zeigt.',
1974
+ 'rec.cap.t.access': 'Was eine Aktion geöffnet hat',
1975
+ 'rec.cap.d.access': 'Ein Befehl kann eine Datei geöffnet haben, die der Bericht nicht nennt.',
1976
+ 'rec.cap.t.output-delivery': 'Was bei deiner KI ankam',
1977
+ 'rec.cap.d.output-delivery': 'Wir wissen nicht sicher, welche Ergebnisse deine KI wirklich gesehen hat.',
1978
+ 'rec.cap.t.own-words': 'Alles, was deine KI geschrieben hat',
1979
+ 'rec.cap.d.own-words': 'Manche ihrer Nachrichten fehlen vielleicht in der Aufzeichnung.',
1980
+ 'rec.cap.t.reasoning': 'Was deine KI vor dem Handeln überlegt hat',
1981
+ 'rec.cap.d.reasoning': 'Wir können nicht zeigen, warum sie einen Schritt gewählt hat.',
1982
+ 'rec.cap.t.refusals': 'Ob eine Aktion gestoppt wurde',
1983
+ 'rec.cap.d.refusals': 'Wurde eine Aktion gestoppt, sagt die Aufzeichnung das vielleicht nicht.',
1984
+ 'rec.cap.t.permissions': 'Welche Berechtigungen deine KI hatte',
1985
+ 'rec.cap.d.permissions': 'Wir können nicht zeigen, was sie durfte.',
1986
+ 'rec.note': 'Selbst aus einer vollständigen Aufzeichnung kann ein Bericht nicht sagen, warum deine KI etwas getan hat, was ihr alles gesagt wurde oder ob ein Schlüssel, den sie gesehen hat, wirklich abgeflossen ist. Ein Dateiname in einem Befehl zählt als erreicht - manchmal ist er nur erwähnt, nicht geöffnet.',
1987
+ 'rec.how.h': 'Wie wir dieses Gespräch geprüft haben',
1988
+ 'rec.how.rule': 'Was als Problem gilt',
1989
+ 'rec.how.rule.no-read': 'Wenn deine KI eine private Datei öffnet oder durchsucht',
1990
+ 'rec.how.rule.no-disclose': 'Wenn deine KI etwas aus einer privaten Datei weitergibt. Lesen ist erlaubt.',
1991
+ 'rec.how.rule.other': 'Eine Regel, die diese Seite nicht beschreibt: siehe technische Details',
1992
+ 'rec.how.files': 'Welche Dateien privat sind',
1993
+ 'rec.how.files.builtIn': 'Die eingebaute Liste von agentwhy: {patterns}, {exceptions}',
1994
+ 'rec.how.files.own': 'Deine eigene Liste: {patterns}, {exceptions}',
1995
+ 'rec.how.files.note': 'Geprüft nach der Liste von jetzt, nicht wie sie während des Gesprächs war. Ein passender Name ist ein Grund hinzusehen, kein Beweis, dass etwas abgeflossen ist.',
1996
+ 'rec.how.paths': 'Dateipfade',
1997
+ 'rec.how.paths.full': 'Vollständig gezeigt',
1998
+ 'rec.how.paths.shared': 'Zum Weitergeben gekürzt',
1999
+ 'rec.how.root.known': 'Relativ zum Ordner deines Projekts.',
2000
+ 'rec.how.root.absent': 'Genau wie geschrieben: Die Aufzeichnung sagt nicht, in welchem Ordner das Projekt liegt.',
2001
+ 'rec.how.root.ambiguous': 'Genau wie geschrieben: Das Gespräch arbeitete in {n} Ordnern, daher ist keiner davon allein der Projektordner.',
2002
+ 'rec.how.session': 'Gesprächs-ID',
2003
+ 'rec.how.level': 'Regel',
2004
+ 'rec.how.origin': 'Woher die Regel stammt',
2005
+ 'rec.runs.none': 'Keine KI hat etwas mit einer privaten Datei gemacht, darum gibt es keinen Ablauf zu zeigen.',
2006
+ 'rec.actions.one': 'Alle seine Aktionen ({n})',
2007
+ 'rec.actions.other': 'Alle seine Aktionen ({n})',
2008
+ 'rec.runs.lead': 'Die Schritte jeder KI mit privaten Dateien, in der Reihenfolge der Aufzeichnung.',
2009
+ 'rec.runs.key.coral': 'Hatte den Text der Datei',
2010
+ 'rec.runs.key.blue': 'Nur der Name',
2011
+ 'rec.runs.key.amber': 'Nicht bekannt',
2012
+ 'rec.runs.key.mint': 'Gestoppt',
2013
+ 'rec.cameBack': 'Was zurückkam',
2014
+ 'st.unknownYn': 'UNBEKANNT',
2015
+ 'st.e.inResult.keys': 'Hat die Schlüssel in der Ausgabe eines Befehls gesehen',
2016
+ 'st.e.inResult.data': 'Hat den Inhalt in der Ausgabe eines Befehls gesehen',
2017
+ 'st.sub.inResult': 'Kein Befehl hat nach dieser Datei gefragt. {did} hat sie ausgegeben.',
2018
+ 'st.sub.lines.one': 'Eine Suche hat 1 Zeile dieser Datei ausgegeben, mit {did}.',
2019
+ 'st.sub.lines.other': 'Eine Suche hat {n} Zeilen dieser Datei ausgegeben, mit {did}.',
2020
+ 'st.sub.inResultLines.one': 'Kein Befehl hat nach dieser Datei gefragt. {did} hat 1 Zeile daraus ausgegeben.',
2021
+ 'st.sub.inResultLines.other': 'Kein Befehl hat nach dieser Datei gefragt. {did} hat {n} Zeilen daraus ausgegeben.',
2022
+ 'hp.line.empty': 'Seine Aktionen wurden nicht protokolliert.',
2023
+ 'hp.answer.empty': 'Seine Aktionen wurden nicht protokolliert, darum lässt sich nicht sagen, was er getan hat. Das heißt nicht, dass er nichts getan hat.',
2024
+ 'adv.status.empty': 'Nicht protokolliert',
2025
+ 'rp.when': 'Bericht vom {when}',
2026
+ 'st.col.time': 'Zeit',
2027
+ 'st.rec.timesNote': 'Die Zeit ist, wann jede Zeile geschrieben wurde. Die Reihenfolge ist die des Protokolls.',
2028
+ 'hp.alone.fact': 'Deine KI hat allein gearbeitet.',
2029
+ 'hp.alone.unsure': 'Im Protokoll hat deine KI keine Helfer.',
2030
+ 'hp.alone.lead': 'Helfer sind zusätzliche KIs, die deine KI hinzuholen kann, um schneller zu arbeiten. Diesmal hat sie keinen hinzugeholt. Hier siehst du, was sie selbst getan hat.',
2031
+ 'hp.alone.unsure.lead': 'Ein Teil des Protokolls fehlt, darum können wir nicht sagen, dass sie allein gearbeitet hat. Hier siehst du, was deine KI selbst getan hat.',
2032
+ 'hp.alone.empty.lead': 'Das heißt nicht, dass nichts passiert ist. Es heißt, dass dieser Bericht nicht sagen kann, was passiert ist.',
2033
+ 'hp.alone.read.one': 'Sie hat {n} private Datei gelesen.',
2034
+ 'hp.alone.read.other': 'Sie hat {n} private Dateien gelesen.',
2035
+ 'hp.alone.sample.one': 'Sie hat nur eine Beispieldatei gesehen.',
2036
+ 'hp.alone.sample.other': 'Sie hat nur Beispieldateien gesehen.',
2037
+ 'hp.alone.named.one': 'Sie hat nur den Namen einer privaten Datei gesehen.',
2038
+ 'hp.alone.named.other': 'Sie hat nur die Namen von {n} privaten Dateien gesehen.',
2039
+ 'hp.alone.unknown': 'Sie hat versucht, eine private Datei zu öffnen. Das Protokoll sagt nicht, was passiert ist.',
2040
+ 'hp.alone.stopped': 'Sie hat versucht, eine private Datei zu öffnen. Sie wurde rechtzeitig gestoppt.',
2041
+ 'hp.alone.none': 'Sie hat nichts Privates angefasst.',
2042
+ 'hp.alone.empty': 'Auch ihre eigenen Aktionen wurden nicht protokolliert.',
2043
+ 'rp.clean.seeFiles': 'Jede geöffnete Datei ansehen',
2044
+ 'rp.clean.stopped.one': 'Sie hat versucht, {n} private Datei zu öffnen. Sie wurde rechtzeitig gestoppt.',
2045
+ 'rp.clean.stopped.other': 'Sie hat versucht, {n} private Dateien zu öffnen. Sie wurde rechtzeitig gestoppt.',
2046
+ 'rp.clean.stoppedLine': 'Dein Schutz hat gewirkt. Nichts zu tun.',
2047
+ 'rp.clean.unknown.one': 'Sie hat versucht, {n} private Datei zu öffnen.',
2048
+ 'rp.clean.unknown.other': 'Sie hat versucht, {n} private Dateien zu öffnen.',
2049
+ 'rp.clean.unknownLine': 'Das Protokoll sagt nicht, was passiert ist.',
2050
+ 'rp.clean.helpers.one': 'Sie hat {n} Helfer dazugeholt.',
2051
+ 'rp.clean.helpers.other': 'Sie hat {n} Helfer dazugeholt.',
2052
+ 'rp.clean.helpersClean.one': 'Er hat deine privaten Dateien nicht gelesen.',
2053
+ 'rp.clean.helpersClean.other': 'Keiner davon hat deine privaten Dateien gelesen.',
2054
+ 'rp.clean.helpersUnknown.one': 'Nicht alles, was er getan hat, wurde protokolliert.',
2055
+ 'rp.clean.helpersUnknown.other': 'Nicht alles, was sie getan haben, wurde protokolliert.',
2056
+ 'rp.clean.seeHelpers': 'Ablauf ansehen',
2057
+ 'rp.clean.record': 'Das ganze Protokoll ansehen',
2058
+ 'rp.nothing.fact': 'Alles gut.',
2059
+ 'rp.nothing.action': 'Nichts zu beheben.',
2060
+ 'rp.nothing.back': 'Fertig — zurück zu den Unterhaltungen',
2061
+ 'rp.asked': 'Was du gefragt hast',
2062
+ 'rp.clean.heading': 'Was passiert ist',
2063
+ 'rp.clean.private': 'Sie hat keine private Datei geöffnet.',
2064
+ 'rp.clean.privateTag': 'Keine',
2065
+ 'rp.clean.privateLine': 'Deine Passwörter, Schlüssel und Kundendaten blieben verschlossen.',
2066
+ 'rp.clean.privateShape': 'Keine als privat markierte Datei wurde geöffnet. Die Warnung oben betrifft etwas in einem Ergebnis.',
2067
+ 'rp.clean.allowed.one': 'Sie hat {n} private Datei gelesen, die du ihr erlaubt hast.',
2068
+ 'rp.clean.allowed.other': 'Sie hat {n} private Dateien gelesen, die du ihr erlaubt hast.',
2069
+ 'rp.clean.allowedLine.one': 'Du hast dafür Beobachten gewählt, und im Gelesenen war kein Schlüssel, den wir erkennen. Nichts zu tun.',
2070
+ 'rp.clean.allowedLine.other': 'Du hast dafür Beobachten gewählt, und im Gelesenen war kein Schlüssel, den wir erkennen. Nichts zu tun.',
2071
+ 'rp.clean.named.one': 'Sie hat den Namen von {n} privaten Datei gesehen.',
2072
+ 'rp.clean.named.other': 'Sie hat die Namen von {n} privaten Dateien gesehen.',
2073
+ 'rp.clean.namedLine.one': 'Sie hat nicht gesehen, was drin ist, also nichts zu tun.',
2074
+ 'rp.clean.namedLine.other': 'Sie hat nicht gesehen, was drin ist, also nichts zu tun.',
2075
+ 'rp.clean.namedLineGap.one': 'Die Aufzeichnung zeigt nicht, ob sie gesehen hat, was drin ist.',
2076
+ 'rp.clean.namedLineGap.other': 'Die Aufzeichnung zeigt nicht, ob sie gesehen hat, was drin ist.',
2077
+ 'rp.clean.noHelpers': 'Sie hat allein gearbeitet.',
2078
+ 'rp.clean.noHelpersTag': 'Keine Helfer',
2079
+ 'rp.clean.alone': 'Sie hat keine andere KI zu Hilfe geholt.',
2080
+ 'rp.ask.title': 'Fragen zu diesem Bericht? Frag mich.',
2081
+ 'rp.ask.name': 'Was heißt „den Namen gesehen“?',
2082
+ 'rp.ask.nameA': 'Deine KI hat den Namen der Datei gesehen, nicht was drin ist.\nEin Name kann in einer Dateiliste stehen oder in einem Befehl, der die Datei nicht ausgegeben hat.\nNichts aus der Datei hat deine KI erreicht, also ist nichts zu ändern.',
2083
+ 'rp.ask.safe': 'Sind meine Daten sicher?',
2084
+ 'rp.ask.safeA': 'Nichts hier zeigt, dass deine KI eine private Datei gelesen hat.\nSie hat in dieser Unterhaltung keine als privat markierte Datei geöffnet.\nWir sehen nur, was die KI aufgeschrieben hat, nicht was sie gedacht hat.',
2085
+ 'rp.ask.safeAllowedA': 'Deine KI hat nur private Dateien gelesen, die du ihr erlaubt hast. Du hast dafür Beobachten gewählt.\nIm Gelesenen war kein Schlüssel, den wir erkennen, also ist nichts zu ändern.\nWenn Claude Code eine davon nie öffnen soll, stell sie in den Einstellungen auf Blockieren.',
2086
+ 'rp.ask.change': 'Sollte ich etwas ändern?',
2087
+ 'rp.ask.changeA': 'Nein. Hier muss nichts behoben werden.\nWenn es eine Datei gibt, die deine KI nie öffnen soll, füge sie deinen privaten Dateien hinzu. Ab dann zeigt jeder Bericht, wenn deine KI sie erreicht.',
2088
+ 'rp.dev.title': 'Technische Details',
2089
+ 'rp.shape.next': 'Wenn es ein echter Schlüssel ist, ändere ihn dort, wo er erstellt wurde: bis dahin kann ihn jeder benutzen, der ihn hat.',
2090
+ 'rp.shape.link': 'Sehen, wo er auftauchte \u2192',
2091
+ 'fl.noneListed': 'Deine KI hat keine Datei geöffnet, die wir auflisten können.',
2092
+ 'fl.names.one': '<strong>{n} Dateiname, den sie nur gesehen hat</strong> <span class="fold-rest">Nichts zeigt, dass die Datei geöffnet wurde oder in deinem Projekt ist.</span>',
2093
+ 'fl.names.other': '<strong>{n} Dateinamen, die sie nur gesehen hat</strong> <span class="fold-rest">Nichts zeigt, dass die Dateien geöffnet wurden oder in deinem Projekt sind.</span>',
2094
+ 'wz.data.askHelp': 'Öffne die Datei und sieh nach, was darin steht. Wähle, was am besten passt, und wir zeigen dir, was zu tun ist.',
2095
+ 'wz.data.peopleWhat': 'Namen, E-Mails, Telefonnummern oder Adressen echter Menschen - Kunden, Nutzer, Mitarbeitende.',
2096
+ 'wz.data.businessWhat': 'Ein Vertrag, eine Rechnung, Preise oder Pläne, die du nur mit manchen teilst.',
2097
+ 'wz.data.otherWhat': 'Alles andere, was du nicht öffentlich zeigen würdest - Notizen, Exporte, Zugangsdaten, die keine Schlüssel sind.',
2098
+ },
2099
+ };