@agentwhy/cli 0.2.1 → 0.3.1
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.
- package/dist/adapter/codex/contract/assumptions.js +4 -4
- package/dist/adapter/codex/contract/deliveries.js +12 -0
- package/dist/adapter/codex/contract/messages.js +8 -1
- package/dist/adapter/codex/events/cell-commands.js +191 -0
- package/dist/adapter/codex/events/delivered-output.js +30 -0
- package/dist/adapter/codex/events/rollout-scan.js +99 -7
- package/dist/core/access/command-line.js +4 -1
- package/dist/core/access/listing.js +10 -3
- package/dist/core/access/protected-access.js +94 -1
- package/dist/core/access/recorded-effect.js +22 -1
- package/dist/report/build-report.js +125 -19
- package/dist/report/render/report-page/file-story.js +33 -2
- package/dist/report/render/report-page/files-view.js +176 -55
- package/dist/report/render/report-page/files.js +51 -8
- package/dist/report/render/report-page/fix-wizard-script.js +17 -7
- package/dist/report/render/report-page/fix-wizard.js +4 -1
- package/dist/report/render/report-page/helpers.js +2 -1
- package/dist/report/render/report-page/report-page-renderer.js +51 -12
- package/dist/report/render/report-page/story-window.js +33 -12
- package/dist/report/render/report-page/to-do-view.js +42 -10
- package/dist/report/render/ui/app-sidebar.js +31 -2
- package/dist/report/render/ui/confirm-dialog.js +69 -4
- package/dist/report/render/ui/fold-line.js +2 -0
- package/dist/report/render/ui/popup.js +1 -1
- package/dist/report/render/ui/project-list.js +49 -10
- package/dist/report/render/ui/words/app-words.js +6 -0
- package/dist/report/render/ui/words/conversations-words.js +12 -0
- package/dist/report/render/ui/words/projects-words.js +9 -0
- package/dist/report/render/ui/words/report-words.js +114 -12
- package/dist/report/render/ui/words/settings-words.js +12 -9
- package/dist/report/start/conversations/calendar-view.js +1 -1
- package/dist/report/start/conversations/conversation-columns.js +6 -4
- package/dist/report/start/conversations/period-section.js +33 -17
- package/dist/report/start/conversations/periods.js +7 -1
- package/dist/report/start/render/session-status.js +14 -9
- package/dist/report/start/session-start.js +6 -3
- package/dist/report/start/settings/alerts-tab.js +2 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { escapeHtml as e } from '../html-report-components.js';
|
|
2
|
-
import { inLanguages, LANGS, translator } from '../report-copy.js';
|
|
2
|
+
import { inLanguages, labelAttributes, LANGS, translator } from '../report-copy.js';
|
|
3
3
|
import { initial } from './app-sidebar.js';
|
|
4
4
|
import { dayName, localClock } from './local-date.js';
|
|
5
5
|
import { tag } from './tag.js';
|
|
@@ -29,19 +29,20 @@ export function projectList(spec) {
|
|
|
29
29
|
return pickList(spec, spec.pick, when);
|
|
30
30
|
const action = spec.action;
|
|
31
31
|
const row = (one) => '<li class="pjl-row"' + searchable(one) + '>' + cells(one, when, action) + '</li>';
|
|
32
|
-
return '<div class="pjl">' +
|
|
32
|
+
return '<div class="pjl" data-order="new">' +
|
|
33
33
|
(here === undefined ? '' :
|
|
34
34
|
'<p class="pjl-label">' + inLanguages((t) => t('proj.here')) + '</p>' +
|
|
35
35
|
'<div class="pjl-here' + (here.setUp === true ? ' pjl-here-set' : '') + '">' + cells(here, when, action) + '</div>') +
|
|
36
|
-
'<div class="pjl-label-line"><p class="pjl-label">' +
|
|
37
|
-
(
|
|
36
|
+
'<div class="pjl-label-line"><p class="pjl-label">' +
|
|
37
|
+
['new', 'az', 'za'].map((order) => '<span class="pjl-order pjl-order-' + order + '">' + inLanguages((t) => t(order === 'new' ? 'proj.others' : 'proj.others.' + order)) + '</span>').join('') +
|
|
38
|
+
'</p>' + (others.length + gone.length === 0 ? '' : search()) + '</div>' +
|
|
38
39
|
'<p class="pjl-none" data-search-none hidden></p>' +
|
|
39
40
|
(shown.length === 0 && gone.length === 0
|
|
40
41
|
? '<p class="pjl-none">' + inLanguages((t) => t('proj.none')) + '</p>'
|
|
41
42
|
: '<div class="pjl-table">' +
|
|
42
43
|
(shown.length === 0 ? '' :
|
|
43
|
-
'<div class="pjl-heads" aria-hidden="true"
|
|
44
|
-
'<span>' + inLanguages((t) => t('proj.col.status')) + '</span><span></span></div>' +
|
|
44
|
+
'<div class="pjl-heads"><span aria-hidden="true"></span><span>' + sortByName() + '</span>' +
|
|
45
|
+
'<span aria-hidden="true">' + inLanguages((t) => t('proj.col.status')) + '</span><span aria-hidden="true"></span></div>' +
|
|
45
46
|
'<ul class="pjl-rows">' + shown.map(row).join('') + '</ul>') +
|
|
46
47
|
(gone.length === 0 ? '' :
|
|
47
48
|
'<details class="pjl-gone"><summary class="pjl-gone-line"><span>' + inLanguages((t) => t('proj.goneFold', { n: gone.length })) + '</span>' +
|
|
@@ -122,6 +123,18 @@ function search() {
|
|
|
122
123
|
return '<input type="search" class="pjl-search js-only" data-project-search autocomplete="off" spellcheck="false"' +
|
|
123
124
|
' aria-label="' + e(translator('en')('proj.search')) + '" data-search-words="' + e(JSON.stringify(words)) + '">';
|
|
124
125
|
}
|
|
126
|
+
/**
|
|
127
|
+
* A-Z, Z-A, or newest first (the maintainer, 2026-10-05): the head of the Project column is the button that cycles the
|
|
128
|
+
* three, with the order it is in drawn beside the word - up for A-Z, down for Z-A, both ways for the order the list
|
|
129
|
+
* came in. Only a script can sort, so only a page with one offers it, and a page without one keeps the plain word; the
|
|
130
|
+
* line above the table says the order in words, so what changed is never only a glyph.
|
|
131
|
+
*/
|
|
132
|
+
function sortByName() {
|
|
133
|
+
return '<button type="button" class="pjl-sort js-only" data-pjl-sort' + labelAttributes((t) => t('proj.sort')) + '>' +
|
|
134
|
+
inLanguages((t) => t('proj.col.project')) + '<span class="pjl-sort-mark" aria-hidden="true">' +
|
|
135
|
+
['new', 'az', 'za'].map((order, at) => '<span class="pjl-order pjl-order-' + order + '">' + ['\u2195', '\u2191', '\u2193'][at] + '</span>').join('') +
|
|
136
|
+
'</span></button><span class="nojs-only" aria-hidden="true">' + inLanguages((t) => t('proj.col.project')) + '</span>';
|
|
137
|
+
}
|
|
125
138
|
/**
|
|
126
139
|
* A row's radio, in the column where the window offers **Open**: a real one, so the keys move between the rows as they do
|
|
127
140
|
* in any group. What the page chooses by is the id, never a path (V17). The row chosen is mint, not coral (the
|
|
@@ -131,9 +144,9 @@ function radio(group, row) {
|
|
|
131
144
|
return '<input type="radio" class="pjl-radio-input" name="' + e(group) + '" value="' + e(row.id) + '" data-pick-name="' + e(row.name) + '"' +
|
|
132
145
|
(row.current ? ' data-pick-here checked' : '') + '><span class="pjl-radio" aria-hidden="true"><span class="pjl-radio-dot"></span></span>';
|
|
133
146
|
}
|
|
134
|
-
/** What the field matches a row by: its name and where it is, in lower case. */
|
|
147
|
+
/** What the field matches a row by: its name and where it is, in lower case - and the name alone, what it sorts by. */
|
|
135
148
|
function searchable(row) {
|
|
136
|
-
return ' data-search="' + e((row.name + ' ' + row.place).toLowerCase()) + '"';
|
|
149
|
+
return ' data-search="' + e((row.name + ' ' + row.place).toLowerCase()) + '" data-sort-name="' + e(row.name.toLowerCase()) + '"';
|
|
137
150
|
}
|
|
138
151
|
/** A row's four cells: the folder's initial, the project, its status, and what it offers. */
|
|
139
152
|
function cells(row, when, action) {
|
|
@@ -166,8 +179,15 @@ export const PROJECT_LIST_STYLE = String.raw `
|
|
|
166
179
|
.pjl{--pjl-columns:44px minmax(0,1fr) 172px 128px}
|
|
167
180
|
.pjl-label{margin:22px 4px 10px;font-size:13.5px;font-weight:600;color:var(--text-3)}
|
|
168
181
|
.pjl-label:first-child{margin-top:4px}
|
|
169
|
-
.pjl-label-line{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
|
|
170
|
-
.pjl-label-line .pjl-label{margin-top:
|
|
182
|
+
.pjl-label-line{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-top:34px}
|
|
183
|
+
.pjl-label-line .pjl-label{margin-top:0}
|
|
184
|
+
.pjl-order{display:none}
|
|
185
|
+
.pjl[data-order="new"] .pjl-order-new,.pjl[data-order="az"] .pjl-order-az,.pjl[data-order="za"] .pjl-order-za{display:inline}
|
|
186
|
+
.pjl-sort{display:inline-flex;align-items:center;gap:7px;margin:-4px 0;padding:4px 8px;border:0;border-radius:8px;background:none;font:inherit;font-size:12.5px;font-weight:600;color:var(--text-3);cursor:pointer}
|
|
187
|
+
.pjl-sort:hover{color:var(--text);background:var(--white-05)}
|
|
188
|
+
.pjl-sort:focus-visible{outline:2px solid var(--coral);outline-offset:1px}
|
|
189
|
+
.pjl-sort-mark{font-size:12px;line-height:1;opacity:.75}
|
|
190
|
+
.pjl-sort:hover .pjl-sort-mark{opacity:1}
|
|
171
191
|
.pjl-search{width:200px;margin:0 0 8px;padding:7px 12px;border-radius:999px;border:1px solid var(--white-14);background:var(--card);color:var(--text);font:inherit;font-size:13.5px}
|
|
172
192
|
.pjl-search::placeholder{color:var(--text-3)}
|
|
173
193
|
.pjl-search:focus{outline:none;border-color:var(--white-32)}
|
|
@@ -248,6 +268,25 @@ export const PROJECT_LIST_SCRIPT = String.raw `
|
|
|
248
268
|
const list = button.closest('.pjl');
|
|
249
269
|
if (list) list.classList.remove('pjl-folded');
|
|
250
270
|
}));
|
|
271
|
+
// A-Z, Z-A, newest first: the order the rows came in is kept, so the third press is not a guess at it.
|
|
272
|
+
document.querySelectorAll('[data-pjl-sort]').forEach((button) => {
|
|
273
|
+
const list = button.closest('.pjl');
|
|
274
|
+
if (!list) return;
|
|
275
|
+
const after = { new: 'az', az: 'za', za: 'new' };
|
|
276
|
+
const groups = [...list.querySelectorAll('.pjl-table .pjl-rows')].map((rows) => ({ rows, came: [...rows.children] }));
|
|
277
|
+
button.addEventListener('click', () => {
|
|
278
|
+
const order = after[list.dataset.order] || 'az';
|
|
279
|
+
list.dataset.order = order;
|
|
280
|
+
groups.forEach(({ rows, came }) => {
|
|
281
|
+
const put = came.slice();
|
|
282
|
+
if (order !== 'new') {
|
|
283
|
+
const way = order === 'az' ? 1 : -1;
|
|
284
|
+
put.sort((one, two) => way * String(one.dataset.sortName || '').localeCompare(String(two.dataset.sortName || '')));
|
|
285
|
+
}
|
|
286
|
+
put.forEach((row) => rows.appendChild(row));
|
|
287
|
+
});
|
|
288
|
+
});
|
|
289
|
+
});
|
|
251
290
|
document.querySelectorAll('[data-project-search]').forEach((input) => {
|
|
252
291
|
const list = input.closest('.pjl');
|
|
253
292
|
if (!list) return;
|
|
@@ -13,6 +13,8 @@ export const APP_WORDS = {
|
|
|
13
13
|
'app.nav.month': 'This month',
|
|
14
14
|
'app.nav.settings': 'Settings',
|
|
15
15
|
'app.local': 'Runs on your computer. Nothing is uploaded.',
|
|
16
|
+
'app.support.sponsor': 'Sponsor agentwhy',
|
|
17
|
+
'app.support.companies': 'For companies',
|
|
16
18
|
'app.lang': 'Language',
|
|
17
19
|
'look.read': 'Read private files',
|
|
18
20
|
'look.fixed': 'Read, now fixed',
|
|
@@ -65,6 +67,8 @@ export const APP_WORDS = {
|
|
|
65
67
|
'app.nav.month': 'Ten miesiąc',
|
|
66
68
|
'app.nav.settings': 'Ustawienia',
|
|
67
69
|
'app.local': 'Działa na twoim komputerze. Nic nie jest wysyłane.',
|
|
70
|
+
'app.support.sponsor': 'Wesprzyj agentwhy',
|
|
71
|
+
'app.support.companies': 'Dla firm',
|
|
68
72
|
'app.lang': 'Język',
|
|
69
73
|
'look.read': 'Przeczytało prywatne pliki',
|
|
70
74
|
'look.fixed': 'Przeczytało, już naprawione',
|
|
@@ -118,6 +122,8 @@ export const APP_WORDS = {
|
|
|
118
122
|
'app.nav.month': 'Dieser Monat',
|
|
119
123
|
'app.nav.settings': 'Einstellungen',
|
|
120
124
|
'app.local': 'Läuft auf deinem Computer. Nichts wird hochgeladen.',
|
|
125
|
+
'app.support.sponsor': 'agentwhy unterstützen',
|
|
126
|
+
'app.support.companies': 'Für Unternehmen',
|
|
121
127
|
'app.lang': 'Sprache',
|
|
122
128
|
'look.read': 'Private Dateien gelesen',
|
|
123
129
|
'look.fixed': 'Gelesen, schon behoben',
|
|
@@ -68,6 +68,10 @@ export const CONVERSATIONS_WORDS = {
|
|
|
68
68
|
'conv.unchecked.partial.title.other': '{n} conversations couldn’t be fully checked.',
|
|
69
69
|
'conv.unchecked.partial': 'Their record leaves out some steps, so their reports may not show everything your AI opened. Open one to see what was written down.',
|
|
70
70
|
'conv.unchecked.mixed': 'Some are older than this check, or their record couldn’t be opened. The others leave out some steps, so their reports may not show everything. To include older ones, run {command}',
|
|
71
|
+
'conv.unchecked.lead.rest': '— older than this check, or their record couldn’t be read.',
|
|
72
|
+
'conv.unchecked.check.rest': '— not read yet.',
|
|
73
|
+
'conv.unchecked.partial.rest': '— read, but their record has gaps.',
|
|
74
|
+
'conv.unchecked.mixed.rest': '— some older than this check, the rest read with gaps.',
|
|
71
75
|
'conv.act.fix': 'Fix it →',
|
|
72
76
|
'conv.act.see': 'See report',
|
|
73
77
|
'conv.act.none': 'No report',
|
|
@@ -226,6 +230,10 @@ export const CONVERSATIONS_WORDS = {
|
|
|
226
230
|
'conv.unchecked.partial.title.many': '{n} rozmów nie zostało w pełni sprawdzonych.',
|
|
227
231
|
'conv.unchecked.partial': 'Ich zapis pomija niektóre kroki, więc raporty mogą nie pokazywać wszystkiego, co otworzyło twoje AI. Otwórz którąś, żeby zobaczyć, co zostało zapisane.',
|
|
228
232
|
'conv.unchecked.mixed': 'Część jest starsza niż to sprawdzenie albo nie dało się otworzyć ich zapisu. Zapis pozostałych pomija niektóre kroki, więc raporty mogą nie pokazywać wszystkiego. Żeby dołączyć starsze, uruchom {command}',
|
|
233
|
+
'conv.unchecked.lead.rest': '— starsze niż to sprawdzenie albo nie dało się odczytać ich zapisu.',
|
|
234
|
+
'conv.unchecked.check.rest': '— jeszcze nieprzeczytane.',
|
|
235
|
+
'conv.unchecked.partial.rest': '— przeczytane, ale ich zapis ma luki.',
|
|
236
|
+
'conv.unchecked.mixed.rest': '— część starsza niż to sprawdzenie, reszta przeczytana z lukami.',
|
|
229
237
|
'conv.act.fix': 'Napraw →',
|
|
230
238
|
'conv.act.see': 'Zobacz raport',
|
|
231
239
|
'conv.act.none': 'Brak raportu',
|
|
@@ -376,6 +384,10 @@ export const CONVERSATIONS_WORDS = {
|
|
|
376
384
|
'conv.unchecked.partial.title.other': '{n} Unterhaltungen konnten nicht vollständig geprüft werden.',
|
|
377
385
|
'conv.unchecked.partial': 'Ihre Aufzeichnung lässt einige Schritte aus, daher zeigen ihre Berichte vielleicht nicht alles, was deine KI geöffnet hat. Öffne eine, um zu sehen, was aufgezeichnet wurde.',
|
|
378
386
|
'conv.unchecked.mixed': 'Einige sind älter als diese Prüfung, oder ihre Aufzeichnung ließ sich nicht öffnen. Die übrigen lassen einige Schritte aus, daher zeigen ihre Berichte vielleicht nicht alles. Um ältere einzubeziehen, führe {command} aus',
|
|
387
|
+
'conv.unchecked.lead.rest': '— älter als diese Prüfung, oder ihre Aufzeichnung war nicht lesbar.',
|
|
388
|
+
'conv.unchecked.check.rest': '— noch nicht gelesen.',
|
|
389
|
+
'conv.unchecked.partial.rest': '— gelesen, aber ihre Aufzeichnung hat Lücken.',
|
|
390
|
+
'conv.unchecked.mixed.rest': '— einige älter als diese Prüfung, die übrigen mit Lücken gelesen.',
|
|
379
391
|
'conv.act.fix': 'Beheben →',
|
|
380
392
|
'conv.act.see': 'Bericht ansehen',
|
|
381
393
|
'conv.act.none': 'Kein Bericht',
|
|
@@ -9,6 +9,9 @@ export const PROJECTS_WORDS = {
|
|
|
9
9
|
'proj.lead': 'Pick the project you want agentwhy to watch.',
|
|
10
10
|
'proj.here': 'You’re here now',
|
|
11
11
|
'proj.others': 'Other projects · newest first',
|
|
12
|
+
'proj.others.az': 'Other projects · A–Z',
|
|
13
|
+
'proj.others.za': 'Other projects · Z–A',
|
|
14
|
+
'proj.sort': 'Sort projects by name',
|
|
12
15
|
'proj.yours': 'Your projects · newest first',
|
|
13
16
|
'moved.pageTitle': 'Another project · agentwhy',
|
|
14
17
|
'moved.title': 'This page was for {was}.',
|
|
@@ -76,6 +79,9 @@ export const PROJECTS_WORDS = {
|
|
|
76
79
|
'proj.lead': 'Wybierz projekt, który agentwhy ma obserwować.',
|
|
77
80
|
'proj.here': 'Jesteś tutaj',
|
|
78
81
|
'proj.others': 'Inne projekty · od najnowszych',
|
|
82
|
+
'proj.others.az': 'Inne projekty · A–Z',
|
|
83
|
+
'proj.others.za': 'Inne projekty · Z–A',
|
|
84
|
+
'proj.sort': 'Sortuj projekty po nazwie',
|
|
79
85
|
'proj.yours': 'Twoje projekty · od najnowszych',
|
|
80
86
|
'moved.pageTitle': 'Inny projekt · agentwhy',
|
|
81
87
|
'moved.title': 'Ta strona była dla projektu {was}.',
|
|
@@ -152,6 +158,9 @@ export const PROJECTS_WORDS = {
|
|
|
152
158
|
'proj.lead': 'Wähle das Projekt, das agentwhy beobachten soll.',
|
|
153
159
|
'proj.here': 'Hier bist du gerade',
|
|
154
160
|
'proj.others': 'Andere Projekte · die neuesten zuerst',
|
|
161
|
+
'proj.others.az': 'Andere Projekte · A–Z',
|
|
162
|
+
'proj.others.za': 'Andere Projekte · Z–A',
|
|
163
|
+
'proj.sort': 'Projekte nach Name sortieren',
|
|
155
164
|
'proj.yours': 'Deine Projekte · die neuesten zuerst',
|
|
156
165
|
'moved.pageTitle': 'Anderes Projekt · agentwhy',
|
|
157
166
|
'moved.title': 'Diese Seite war für {was}.',
|
|
@@ -183,6 +183,19 @@ export const REPORT_WORDS = {
|
|
|
183
183
|
'mp.option': 'Also make every file called {name} private, wherever it is in your project.',
|
|
184
184
|
'mp.confirm': 'Yes, make it private',
|
|
185
185
|
'mp.cmd': 'This page isn\u2019t connected to agentwhy, so it can\u2019t change your settings itself. Run this in your project:',
|
|
186
|
+
'mp.tell.sentence': 'This adds {path} to your private files, in your settings. Claude Code can still open it, and you\u2019ll get a message every time it does. You can undo this anytime.',
|
|
187
|
+
'mp.tell.option': 'Also track every file called {name}, wherever it is in your project.',
|
|
188
|
+
'pr.tell.sentence': 'This adds {path} to the files you track. Claude Code can still open it, and you\u2019ll get a message every time it does. You can undo this anytime.',
|
|
189
|
+
'pr.tell.option': 'Also track every file called {name}, wherever it is in your project.',
|
|
190
|
+
'md.q': 'What should happen when your AI reaches it?',
|
|
191
|
+
'md.block': 'Block it',
|
|
192
|
+
'md.block.why': 'Your AI can\u2019t open it or search through it. If it needs it for a task, it will stop and ask you first.',
|
|
193
|
+
'md.tell': 'Track it',
|
|
194
|
+
'md.tell.why': 'Your AI can still read it, and you\u2019ll get a message every time it does. Once it has seen what\u2019s inside, you can\u2019t take that back.',
|
|
195
|
+
'md.go.block': 'Yes, block it',
|
|
196
|
+
'md.go.tell': 'Yes, just track it',
|
|
197
|
+
'md.cmd.tell': 'This page isn\u2019t connected to agentwhy, so it can\u2019t track a file. Run this in your project and make the change there:',
|
|
198
|
+
'md.done.tell': 'Tracked ✓',
|
|
186
199
|
'st.heading': 'What happened to this file',
|
|
187
200
|
'st.summary.keys.one': 'Your AI read the keys in this file — and now it has them.',
|
|
188
201
|
'st.summary.keys.other': '{n} AIs read the keys in this file — and now they have them.',
|
|
@@ -199,6 +212,7 @@ export const REPORT_WORDS = {
|
|
|
199
212
|
'st.mainLower': 'your AI',
|
|
200
213
|
'st.helper': 'Helper {ordinal}',
|
|
201
214
|
'st.company': 'It was exposed',
|
|
215
|
+
'st.company.everyday': 'In your conversation',
|
|
202
216
|
'st.e.read.keys': 'Opened the file and read the keys',
|
|
203
217
|
'st.e.read.data': 'Opened the file and read it',
|
|
204
218
|
'st.e.received.keys': 'Read the keys in what its program handed back',
|
|
@@ -209,6 +223,7 @@ export const REPORT_WORDS = {
|
|
|
209
223
|
'st.e.helperReadToo.keys': 'A helper read the keys too',
|
|
210
224
|
'st.e.helperReadToo.data': 'A helper read it too',
|
|
211
225
|
'st.e.named': 'Saw its name',
|
|
226
|
+
'st.e.changed': 'Changed it',
|
|
212
227
|
'st.e.unknown': 'Tried to open it',
|
|
213
228
|
'st.e.stopped': 'Tried to open it. It was stopped.',
|
|
214
229
|
'st.e.passed': 'Passed what it read back to {to}',
|
|
@@ -239,6 +254,8 @@ export const REPORT_WORDS = {
|
|
|
239
254
|
'st.complete': 'Complete',
|
|
240
255
|
'st.gaps': 'Has gaps',
|
|
241
256
|
'st.rec.every': 'Every time it was opened',
|
|
257
|
+
'st.rec.leftOut.one': '1 more call isn\u2019t listed here.',
|
|
258
|
+
'st.rec.leftOut.other': '{n} more calls aren\u2019t listed here.',
|
|
242
259
|
'st.rec.count.one': '{n} event · in order',
|
|
243
260
|
'st.rec.count.other': '{n} events · in order',
|
|
244
261
|
'st.col.n': '#',
|
|
@@ -264,6 +281,7 @@ export const REPORT_WORDS = {
|
|
|
264
281
|
'st.role.helperAny': 'Brought in to help',
|
|
265
282
|
'st.yes': 'YES',
|
|
266
283
|
'st.no': 'NO',
|
|
284
|
+
'st.untracked': 'NOT TRACKED',
|
|
267
285
|
'st.rec.details': 'File details',
|
|
268
286
|
'st.fact.path': 'Full path',
|
|
269
287
|
'st.fact.rule': 'Matched rule',
|
|
@@ -280,6 +298,7 @@ export const REPORT_WORDS = {
|
|
|
280
298
|
'st.d.asked': 'asked for help',
|
|
281
299
|
'st.d.hint': 'Hover a box to see where its lines lead.',
|
|
282
300
|
'st.d.file': 'your private file',
|
|
301
|
+
'st.d.fileEveryday': 'an everyday work file',
|
|
283
302
|
'st.d.company': 'the AI has this information',
|
|
284
303
|
'st.d.readKeys': 'read the keys',
|
|
285
304
|
'st.d.readIt': 'read it',
|
|
@@ -287,6 +306,7 @@ export const REPORT_WORDS = {
|
|
|
287
306
|
'st.d.saved': 'saved a copy',
|
|
288
307
|
'st.d.stopped': 'was stopped',
|
|
289
308
|
'st.d.named': 'saw its name',
|
|
309
|
+
'st.d.changed': 'changed it',
|
|
290
310
|
'st.d.times': '{n}×',
|
|
291
311
|
'st.d.legendRead': 'read it / sent a copy',
|
|
292
312
|
'st.d.legendWork': 'handed over work',
|
|
@@ -378,6 +398,14 @@ export const REPORT_WORDS = {
|
|
|
378
398
|
'fl.prot.told': 'Track',
|
|
379
399
|
'fl.clear': 'Clear filters',
|
|
380
400
|
'fl.col.file': 'File',
|
|
401
|
+
'fl.order.q': 'In what order?',
|
|
402
|
+
'fl.order.need': 'What needs you first',
|
|
403
|
+
'fl.order.steps': 'The order your AI went',
|
|
404
|
+
'fl.order.first': 'First',
|
|
405
|
+
'fl.order.then': 'Then',
|
|
406
|
+
'fl.order.helperFirst': '{helper}, first',
|
|
407
|
+
'fl.order.helperThen': '{helper}, then',
|
|
408
|
+
'fl.order.unknown': 'We can’t tell when',
|
|
381
409
|
'fl.col.ai': 'AI',
|
|
382
410
|
'fl.col.prot': 'Private file',
|
|
383
411
|
'fl.col.mode': 'When your AI reaches it',
|
|
@@ -400,10 +428,14 @@ export const REPORT_WORDS = {
|
|
|
400
428
|
'fl.protect': 'Protect it →',
|
|
401
429
|
'fl.makePrivate': 'Make it private →',
|
|
402
430
|
'fl.tier.read': 'Private files your AI read',
|
|
431
|
+
'fl.tier.unknown': 'Private files we can’t tell if it read',
|
|
432
|
+
'fl.tier.stopped': 'Private files it was stopped from opening',
|
|
403
433
|
'fl.tier.name': 'Private files it only saw the name of',
|
|
404
434
|
'fl.tier.rest': 'Everything else',
|
|
405
435
|
'fl.shown': '{shown} of {n} files shown.',
|
|
406
|
-
'fl.commands': '
|
|
436
|
+
'fl.commands': 'Every file of this conversation is listed, private or not. A file your AI only came across by name isn\u2019t counted as opened.',
|
|
437
|
+
'fl.namesLeftOut.one': '{n} more file name it saw isn\u2019t listed.',
|
|
438
|
+
'fl.namesLeftOut.other': '{n} more file names it saw aren\u2019t listed.',
|
|
407
439
|
'fl.noMatch': 'No files match.',
|
|
408
440
|
'fl.kind.aiNotes': 'Notes for the AI',
|
|
409
441
|
'fl.kind.notes': 'Notes about your app',
|
|
@@ -413,6 +445,7 @@ export const REPORT_WORDS = {
|
|
|
413
445
|
'fl.w.did': 'What the AI did',
|
|
414
446
|
'fl.w.prot': 'Protected?',
|
|
415
447
|
'fl.w.next': 'What to do',
|
|
448
|
+
'fl.w.when': 'When it came up',
|
|
416
449
|
'fl.w.did.read': 'Your AI opened this file and read what’s inside.',
|
|
417
450
|
'fl.w.did.name': 'Your AI saw this file’s name, but nothing shows it read what’s inside.',
|
|
418
451
|
'fl.w.did.unknown': 'Your AI tried to open this file, and the record doesn’t say what happened.',
|
|
@@ -467,10 +500,10 @@ export const REPORT_WORDS = {
|
|
|
467
500
|
'adv.tab.record': 'Record',
|
|
468
501
|
// 2026-09-27-what-codex-wrote.md X23, X19-X22: what a Codex record cannot show, and what it recorded at the time.
|
|
469
502
|
'rp.gap.codex.action': 'But Codex doesn’t write down every step.',
|
|
470
|
-
'rp.gap.codex.legacyAction': 'But Codex didn’t
|
|
503
|
+
'rp.gap.codex.legacyAction': 'But Codex didn’t record what its commands did.',
|
|
471
504
|
'rp.gap.codex.lead': 'Codex doesn’t write down every step, so this report may not show everything it opened.',
|
|
472
505
|
'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
|
|
506
|
+
'rp.gap.codex.legacy': 'Codex saved this conversation in an older way: it keeps the code it ran, not what each command did. We read the commands from that code. Here’s what it shows.',
|
|
474
507
|
'rp.gap.codex.banner': 'Codex doesn’t write down every step, so this list may be missing something.',
|
|
475
508
|
'rec.recorded': 'What {ai} recorded at the time',
|
|
476
509
|
'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.',
|
|
@@ -670,7 +703,7 @@ export const REPORT_WORDS = {
|
|
|
670
703
|
'rp.dev.title': 'Details for your developer',
|
|
671
704
|
'rp.shape.next': 'If it is a real key, change it where it was made: until then, anyone with it can use it.',
|
|
672
705
|
'rp.shape.link': 'See where it appeared \u2192',
|
|
673
|
-
'fl.noneListed': 'Your AI didn\u2019t open any file
|
|
706
|
+
'fl.noneListed': 'Your AI didn\u2019t open any file.',
|
|
674
707
|
'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
708
|
'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
709
|
'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.',
|
|
@@ -869,6 +902,19 @@ export const REPORT_WORDS = {
|
|
|
869
902
|
'mp.option': 'Oznacz też każdy plik o nazwie {name}, gdziekolwiek jest w projekcie.',
|
|
870
903
|
'mp.confirm': 'Tak, oznacz jako prywatny',
|
|
871
904
|
'mp.cmd': 'Ta strona nie jest połączona z agentwhy, więc sama nie zmieni ustawień. Uruchom to w projekcie:',
|
|
905
|
+
'mp.tell.sentence': 'To dodaje {path} do twoich plików prywatnych, w ustawieniach. Claude Code nadal będzie mógł go otworzyć, a ty za każdym razem dostaniesz o tym wiadomość. Możesz to w każdej chwili cofnąć.',
|
|
906
|
+
'mp.tell.option': 'Obserwuj też każdy plik o nazwie {name}, gdziekolwiek jest w projekcie.',
|
|
907
|
+
'pr.tell.sentence': 'To dodaje {path} do plików, które obserwujesz. Claude Code nadal będzie mógł go otworzyć, a ty za każdym razem dostaniesz o tym wiadomość. Możesz to w każdej chwili cofnąć.',
|
|
908
|
+
'pr.tell.option': 'Obserwuj też każdy plik o nazwie {name}, gdziekolwiek jest w projekcie.',
|
|
909
|
+
'md.q': 'Co ma się stać, gdy twoje AI po niego sięgnie?',
|
|
910
|
+
'md.block': 'Zablokuj',
|
|
911
|
+
'md.block.why': 'Twoje AI go nie otworzy ani nie przeszuka. Jeśli będzie go potrzebowało do zadania, zatrzyma się i najpierw zapyta.',
|
|
912
|
+
'md.tell': 'Obserwuj',
|
|
913
|
+
'md.tell.why': 'Twoje AI nadal może go przeczytać, a ty za każdym razem dostaniesz o tym wiadomość. Gdy raz zobaczy, co jest w środku, nie da się tego cofnąć.',
|
|
914
|
+
'md.go.block': 'Tak, zablokuj',
|
|
915
|
+
'md.go.tell': 'Tak, tylko obserwuj',
|
|
916
|
+
'md.cmd.tell': 'Ta strona nie jest połączona z agentwhy, więc sama nie zacznie obserwować pliku. Uruchom to w projekcie i zrób zmianę tam:',
|
|
917
|
+
'md.done.tell': 'Obserwowany ✓',
|
|
872
918
|
'st.heading': 'Co się stało z tym plikiem',
|
|
873
919
|
'st.summary.keys.one': 'Twoje AI przeczytało klucze z tego pliku — i teraz je ma.',
|
|
874
920
|
'st.summary.keys.few': '{n} AI przeczytały klucze z tego pliku — i teraz je mają.',
|
|
@@ -889,6 +935,7 @@ export const REPORT_WORDS = {
|
|
|
889
935
|
'st.mainLower': 'twojego AI',
|
|
890
936
|
'st.helper': 'Pomocnik {ordinal}',
|
|
891
937
|
'st.company': 'Zostało ujawnione',
|
|
938
|
+
'st.company.everyday': 'W twojej rozmowie',
|
|
892
939
|
'st.e.read.keys': 'Otworzyło plik i przeczytało klucze',
|
|
893
940
|
'st.e.read.data': 'Otworzyło plik i go przeczytało',
|
|
894
941
|
'st.e.received.keys': 'Przeczytało klucze w tym, co oddał jego program',
|
|
@@ -899,6 +946,7 @@ export const REPORT_WORDS = {
|
|
|
899
946
|
'st.e.helperReadToo.keys': 'Pomocnik też przeczytał klucze',
|
|
900
947
|
'st.e.helperReadToo.data': 'Pomocnik też go przeczytał',
|
|
901
948
|
'st.e.named': 'Zobaczyło jego nazwę',
|
|
949
|
+
'st.e.changed': 'Zmieniło go',
|
|
902
950
|
'st.e.unknown': 'Próbowało go otworzyć',
|
|
903
951
|
'st.e.stopped': 'Próbowało go otworzyć. Zostało zatrzymane.',
|
|
904
952
|
'st.e.passed': 'Przekazało to, co przeczytało, do {to}',
|
|
@@ -931,6 +979,9 @@ export const REPORT_WORDS = {
|
|
|
931
979
|
'st.complete': 'Pełny',
|
|
932
980
|
'st.gaps': 'Ma luki',
|
|
933
981
|
'st.rec.every': 'Każde otwarcie',
|
|
982
|
+
'st.rec.leftOut.one': 'Jedno wywołanie nie jest tu wypisane.',
|
|
983
|
+
'st.rec.leftOut.few': '{n} wywołania nie są tu wypisane.',
|
|
984
|
+
'st.rec.leftOut.many': '{n} wywołań nie jest tu wypisanych.',
|
|
934
985
|
'st.rec.count.one': '{n} zdarzenie · po kolei',
|
|
935
986
|
'st.rec.count.few': '{n} zdarzenia · po kolei',
|
|
936
987
|
'st.rec.count.many': '{n} zdarzeń · po kolei',
|
|
@@ -958,6 +1009,7 @@ export const REPORT_WORDS = {
|
|
|
958
1009
|
'st.role.helperAny': 'Wezwany do pomocy',
|
|
959
1010
|
'st.yes': 'TAK',
|
|
960
1011
|
'st.no': 'NIE',
|
|
1012
|
+
'st.untracked': 'NIE ŚLEDZONE',
|
|
961
1013
|
'st.rec.details': 'Szczegóły pliku',
|
|
962
1014
|
'st.fact.path': 'Pełna ścieżka',
|
|
963
1015
|
'st.fact.rule': 'Pasująca reguła',
|
|
@@ -974,6 +1026,7 @@ export const REPORT_WORDS = {
|
|
|
974
1026
|
'st.d.asked': 'poprosiłeś o pomoc',
|
|
975
1027
|
'st.d.hint': 'Najedź na pole, żeby zobaczyć, dokąd prowadzą jego linie.',
|
|
976
1028
|
'st.d.file': 'twój prywatny plik',
|
|
1029
|
+
'st.d.fileEveryday': 'zwykły plik roboczy',
|
|
977
1030
|
'st.d.company': 'AI ma te informacje',
|
|
978
1031
|
'st.d.readKeys': 'przeczytało klucze',
|
|
979
1032
|
'st.d.readIt': 'przeczytało go',
|
|
@@ -981,6 +1034,7 @@ export const REPORT_WORDS = {
|
|
|
981
1034
|
'st.d.saved': 'zapisało kopię',
|
|
982
1035
|
'st.d.stopped': 'zostało zatrzymane',
|
|
983
1036
|
'st.d.named': 'zobaczyło nazwę',
|
|
1037
|
+
'st.d.changed': 'zmieniło go',
|
|
984
1038
|
'st.d.times': '{n}×',
|
|
985
1039
|
'st.d.legendRead': 'przeczytało / wysłało kopię',
|
|
986
1040
|
'st.d.legendWork': 'przekazało pracę',
|
|
@@ -1088,6 +1142,14 @@ export const REPORT_WORDS = {
|
|
|
1088
1142
|
'fl.prot.told': 'Obserwuje',
|
|
1089
1143
|
'fl.clear': 'Wyczyść filtry',
|
|
1090
1144
|
'fl.col.file': 'Plik',
|
|
1145
|
+
'fl.order.q': 'W jakiej kolejności?',
|
|
1146
|
+
'fl.order.need': 'Najpierw to, co wymaga twojej uwagi',
|
|
1147
|
+
'fl.order.steps': 'Kolejność, w jakiej szło twoje AI',
|
|
1148
|
+
'fl.order.first': 'Najpierw',
|
|
1149
|
+
'fl.order.then': 'Potem',
|
|
1150
|
+
'fl.order.helperFirst': '{helper}, najpierw',
|
|
1151
|
+
'fl.order.helperThen': '{helper}, potem',
|
|
1152
|
+
'fl.order.unknown': 'Nie wiemy, kiedy',
|
|
1091
1153
|
'fl.col.ai': 'AI',
|
|
1092
1154
|
'fl.col.prot': 'Plik prywatny',
|
|
1093
1155
|
'fl.col.mode': 'Gdy Twoje AI po niego sięgnie',
|
|
@@ -1110,10 +1172,16 @@ export const REPORT_WORDS = {
|
|
|
1110
1172
|
'fl.protect': 'Chroń →',
|
|
1111
1173
|
'fl.makePrivate': 'Oznacz jako prywatny →',
|
|
1112
1174
|
'fl.tier.read': 'Prywatne pliki, które przeczytało twoje AI',
|
|
1175
|
+
'fl.tier.unknown': 'Prywatne pliki, o których nie wiemy, czy je przeczytało',
|
|
1176
|
+
'fl.tier.stopped': 'Prywatne pliki, których otwarcie zostało zatrzymane',
|
|
1113
1177
|
'fl.tier.name': 'Prywatne pliki, których widziało tylko nazwę',
|
|
1114
1178
|
'fl.tier.rest': 'Cała reszta',
|
|
1115
1179
|
'fl.shown': 'Pokazano {shown} z {n} plików.',
|
|
1116
|
-
'fl.commands': '
|
|
1180
|
+
'fl.commands': 'Na liście jest każdy plik tej rozmowy, prywatny czy nie. Plik, na którego nazwę AI tylko trafiło, nie jest liczony jako otwarty.',
|
|
1181
|
+
'fl.namesLeftOut.one': '{n} kolejna nazwa pliku, którą widziało, nie jest na liście.',
|
|
1182
|
+
'fl.namesLeftOut.few': '{n} kolejne nazwy plików, które widziało, nie są na liście.',
|
|
1183
|
+
'fl.namesLeftOut.many': '{n} kolejnych nazw plików, które widziało, nie ma na liście.',
|
|
1184
|
+
'fl.namesLeftOut.other': '{n} kolejnej nazwy pliku, którą widziało, nie ma na liście.',
|
|
1117
1185
|
'fl.noMatch': 'Żaden plik nie pasuje.',
|
|
1118
1186
|
'fl.kind.aiNotes': 'Notatki dla AI',
|
|
1119
1187
|
'fl.kind.notes': 'Notatki o twojej aplikacji',
|
|
@@ -1123,6 +1191,7 @@ export const REPORT_WORDS = {
|
|
|
1123
1191
|
'fl.w.did': 'Co zrobiło AI',
|
|
1124
1192
|
'fl.w.prot': 'Chroniony?',
|
|
1125
1193
|
'fl.w.next': 'Co zrobić',
|
|
1194
|
+
'fl.w.when': 'Kiedy się pojawił',
|
|
1126
1195
|
'fl.w.did.read': 'Twoje AI otworzyło ten plik i przeczytało jego zawartość.',
|
|
1127
1196
|
'fl.w.did.name': 'Twoje AI widziało nazwę tego pliku, ale nic nie wskazuje, że przeczytało zawartość.',
|
|
1128
1197
|
'fl.w.did.unknown': 'Twoje AI próbowało otworzyć ten plik, a zapis nie mówi, co się stało.',
|
|
@@ -1177,10 +1246,10 @@ export const REPORT_WORDS = {
|
|
|
1177
1246
|
'adv.tab.record': 'Zapis',
|
|
1178
1247
|
// 2026-09-27-what-codex-wrote.md X23, X19-X22: czego zapis Codexa nie pokaże i co wtedy zapisał.
|
|
1179
1248
|
'rp.gap.codex.action': 'Ale Codex nie zapisuje każdego kroku.',
|
|
1180
|
-
'rp.gap.codex.legacyAction': 'Ale Codex nie
|
|
1249
|
+
'rp.gap.codex.legacyAction': 'Ale Codex nie zapisał, co zrobiły jego polecenia.',
|
|
1181
1250
|
'rp.gap.codex.lead': 'Codex nie zapisuje każdego kroku, więc ten raport może nie pokazywać wszystkiego, co otworzył.',
|
|
1182
1251
|
'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
|
|
1252
|
+
'rp.gap.codex.legacy': 'Codex zapisał tę rozmowę w starszy sposób: zachowuje kod, który uruchomił, a nie to, co zrobiło każde polecenie. Polecenia odczytaliśmy z tego kodu. Oto, co pokazuje.',
|
|
1184
1253
|
'rp.gap.codex.banner': 'Codex nie zapisuje każdego kroku, więc na tej liście może czegoś brakować.',
|
|
1185
1254
|
'rec.recorded': 'Co {ai} zapisał w trakcie',
|
|
1186
1255
|
'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.',
|
|
@@ -1414,7 +1483,7 @@ export const REPORT_WORDS = {
|
|
|
1414
1483
|
'rp.dev.title': 'Szczegóły dla programisty',
|
|
1415
1484
|
'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
1485
|
'rp.shape.link': 'Zobacz, gdzie się pojawił \u2192',
|
|
1417
|
-
'fl.noneListed': 'Twoje AI nie otworzyło żadnego pliku
|
|
1486
|
+
'fl.noneListed': 'Twoje AI nie otworzyło żadnego pliku.',
|
|
1418
1487
|
'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
1488
|
'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
1489
|
'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>',
|
|
@@ -1603,6 +1672,19 @@ export const REPORT_WORDS = {
|
|
|
1603
1672
|
'mp.option': 'Auch jede Datei namens {name} als privat markieren, egal wo sie im Projekt liegt.',
|
|
1604
1673
|
'mp.confirm': 'Ja, als privat markieren',
|
|
1605
1674
|
'mp.cmd': 'Diese Seite ist nicht mit agentwhy verbunden und kann deine Einstellungen nicht selbst ändern. Führe das in deinem Projekt aus:',
|
|
1675
|
+
'mp.tell.sentence': 'Das fügt {path} deinen privaten Dateien hinzu, in deinen Einstellungen. Claude Code kann sie weiterhin öffnen, und du bekommst jedes Mal eine Nachricht. Du kannst das jederzeit rückgängig machen.',
|
|
1676
|
+
'mp.tell.option': 'Auch jede Datei namens {name} beobachten, egal wo sie im Projekt liegt.',
|
|
1677
|
+
'pr.tell.sentence': 'Das fügt {path} den Dateien hinzu, die du beobachtest. Claude Code kann sie weiterhin öffnen, und du bekommst jedes Mal eine Nachricht. Du kannst das jederzeit rückgängig machen.',
|
|
1678
|
+
'pr.tell.option': 'Auch jede Datei namens {name} beobachten, egal wo sie im Projekt liegt.',
|
|
1679
|
+
'md.q': 'Was soll passieren, wenn deine KI danach greift?',
|
|
1680
|
+
'md.block': 'Blockieren',
|
|
1681
|
+
'md.block.why': 'Deine KI kann sie weder öffnen noch durchsuchen. Braucht sie die Datei für eine Aufgabe, hält sie an und fragt dich zuerst.',
|
|
1682
|
+
'md.tell': 'Beobachten',
|
|
1683
|
+
'md.tell.why': 'Deine KI kann sie weiterhin lesen, und du bekommst jedes Mal eine Nachricht. Hat sie einmal gesehen, was darin steht, lässt sich das nicht rückgängig machen.',
|
|
1684
|
+
'md.go.block': 'Ja, blockieren',
|
|
1685
|
+
'md.go.tell': 'Ja, nur beobachten',
|
|
1686
|
+
'md.cmd.tell': 'Diese Seite ist nicht mit agentwhy verbunden und kann eine Datei nicht selbst beobachten. Führe das in deinem Projekt aus und mach die Änderung dort:',
|
|
1687
|
+
'md.done.tell': 'Beobachtet ✓',
|
|
1606
1688
|
'st.heading': 'Was mit dieser Datei passiert ist',
|
|
1607
1689
|
'st.summary.keys.one': 'Deine KI hat die Schlüssel in dieser Datei gelesen — und hat sie jetzt.',
|
|
1608
1690
|
'st.summary.keys.other': '{n} KIs haben die Schlüssel in dieser Datei gelesen — und haben sie jetzt.',
|
|
@@ -1619,6 +1701,7 @@ export const REPORT_WORDS = {
|
|
|
1619
1701
|
'st.mainLower': 'deine KI',
|
|
1620
1702
|
'st.helper': 'Helfer {ordinal}',
|
|
1621
1703
|
'st.company': 'Es wurde offengelegt',
|
|
1704
|
+
'st.company.everyday': 'In deiner Unterhaltung',
|
|
1622
1705
|
'st.e.read.keys': 'Hat die Datei geöffnet und die Schlüssel gelesen',
|
|
1623
1706
|
'st.e.read.data': 'Hat die Datei geöffnet und gelesen',
|
|
1624
1707
|
'st.e.received.keys': 'Hat die Schlüssel in dem gelesen, was ihr Programm zurückgab',
|
|
@@ -1629,6 +1712,7 @@ export const REPORT_WORDS = {
|
|
|
1629
1712
|
'st.e.helperReadToo.keys': 'Auch ein Helfer hat die Schlüssel gelesen',
|
|
1630
1713
|
'st.e.helperReadToo.data': 'Auch ein Helfer hat sie gelesen',
|
|
1631
1714
|
'st.e.named': 'Hat ihren Namen gesehen',
|
|
1715
|
+
'st.e.changed': 'Hat sie geändert',
|
|
1632
1716
|
'st.e.unknown': 'Hat versucht, sie zu öffnen',
|
|
1633
1717
|
'st.e.stopped': 'Hat versucht, sie zu öffnen. Es wurde gestoppt.',
|
|
1634
1718
|
'st.e.passed': 'Hat das Gelesene an {to} zurückgegeben',
|
|
@@ -1659,6 +1743,8 @@ export const REPORT_WORDS = {
|
|
|
1659
1743
|
'st.complete': 'Vollständig',
|
|
1660
1744
|
'st.gaps': 'Hat Lücken',
|
|
1661
1745
|
'st.rec.every': 'Jedes Mal, wenn sie geöffnet wurde',
|
|
1746
|
+
'st.rec.leftOut.one': 'Ein weiterer Aufruf ist hier nicht aufgeführt.',
|
|
1747
|
+
'st.rec.leftOut.other': '{n} weitere Aufrufe sind hier nicht aufgeführt.',
|
|
1662
1748
|
'st.rec.count.one': '{n} Ereignis · der Reihe nach',
|
|
1663
1749
|
'st.rec.count.other': '{n} Ereignisse · der Reihe nach',
|
|
1664
1750
|
'st.col.n': '#',
|
|
@@ -1684,6 +1770,7 @@ export const REPORT_WORDS = {
|
|
|
1684
1770
|
'st.role.helperAny': 'Zur Hilfe hinzugeholt',
|
|
1685
1771
|
'st.yes': 'JA',
|
|
1686
1772
|
'st.no': 'NEIN',
|
|
1773
|
+
'st.untracked': 'NICHT VERFOLGT',
|
|
1687
1774
|
'st.rec.details': 'Details zur Datei',
|
|
1688
1775
|
'st.fact.path': 'Vollständiger Pfad',
|
|
1689
1776
|
'st.fact.rule': 'Passende Regel',
|
|
@@ -1700,6 +1787,7 @@ export const REPORT_WORDS = {
|
|
|
1700
1787
|
'st.d.asked': 'um Hilfe gebeten',
|
|
1701
1788
|
'st.d.hint': 'Fahre über ein Feld, um zu sehen, wohin seine Linien führen.',
|
|
1702
1789
|
'st.d.file': 'deine private Datei',
|
|
1790
|
+
'st.d.fileEveryday': 'eine ganz normale Arbeitsdatei',
|
|
1703
1791
|
'st.d.company': 'die KI hat diese Informationen',
|
|
1704
1792
|
'st.d.readKeys': 'hat die Schlüssel gelesen',
|
|
1705
1793
|
'st.d.readIt': 'hat sie gelesen',
|
|
@@ -1707,6 +1795,7 @@ export const REPORT_WORDS = {
|
|
|
1707
1795
|
'st.d.saved': 'hat eine Kopie gespeichert',
|
|
1708
1796
|
'st.d.stopped': 'wurde gestoppt',
|
|
1709
1797
|
'st.d.named': 'hat den Namen gesehen',
|
|
1798
|
+
'st.d.changed': 'hat sie geändert',
|
|
1710
1799
|
'st.d.times': '{n}×',
|
|
1711
1800
|
'st.d.legendRead': 'gelesen / Kopie gesendet',
|
|
1712
1801
|
'st.d.legendWork': 'Arbeit übergeben',
|
|
@@ -1798,6 +1887,14 @@ export const REPORT_WORDS = {
|
|
|
1798
1887
|
'fl.prot.told': 'Beobachten',
|
|
1799
1888
|
'fl.clear': 'Filter zurücksetzen',
|
|
1800
1889
|
'fl.col.file': 'Datei',
|
|
1890
|
+
'fl.order.q': 'In welcher Reihenfolge?',
|
|
1891
|
+
'fl.order.need': 'Zuerst, was dich braucht',
|
|
1892
|
+
'fl.order.steps': 'Die Reihenfolge, in der deine KI vorging',
|
|
1893
|
+
'fl.order.first': 'Zuerst',
|
|
1894
|
+
'fl.order.then': 'Dann',
|
|
1895
|
+
'fl.order.helperFirst': '{helper}, zuerst',
|
|
1896
|
+
'fl.order.helperThen': '{helper}, dann',
|
|
1897
|
+
'fl.order.unknown': 'Wir wissen nicht, wann',
|
|
1801
1898
|
'fl.col.ai': 'KI',
|
|
1802
1899
|
'fl.col.prot': 'Private Datei',
|
|
1803
1900
|
'fl.col.mode': 'Wenn deine KI darauf zugreift',
|
|
@@ -1820,10 +1917,14 @@ export const REPORT_WORDS = {
|
|
|
1820
1917
|
'fl.protect': 'Schützen →',
|
|
1821
1918
|
'fl.makePrivate': 'Als privat markieren →',
|
|
1822
1919
|
'fl.tier.read': 'Private Dateien, die deine KI gelesen hat',
|
|
1920
|
+
'fl.tier.unknown': 'Private Dateien, bei denen wir nicht wissen, ob sie sie gelesen hat',
|
|
1921
|
+
'fl.tier.stopped': 'Private Dateien, deren Öffnen gestoppt wurde',
|
|
1823
1922
|
'fl.tier.name': 'Private Dateien, von denen sie nur den Namen gesehen hat',
|
|
1824
1923
|
'fl.tier.rest': 'Alles andere',
|
|
1825
1924
|
'fl.shown': '{shown} von {n} Dateien angezeigt.',
|
|
1826
|
-
'fl.commands': '
|
|
1925
|
+
'fl.commands': 'Jede Datei dieser Unterhaltung steht hier, privat oder nicht. Eine Datei, auf deren Namen deine KI nur gestoßen ist, zählt nicht als geöffnet.',
|
|
1926
|
+
'fl.namesLeftOut.one': '{n} weiterer Dateiname, den sie gesehen hat, steht nicht hier.',
|
|
1927
|
+
'fl.namesLeftOut.other': '{n} weitere Dateinamen, die sie gesehen hat, stehen nicht hier.',
|
|
1827
1928
|
'fl.noMatch': 'Keine Datei passt.',
|
|
1828
1929
|
'fl.kind.aiNotes': 'Notizen für die KI',
|
|
1829
1930
|
'fl.kind.notes': 'Notizen zu deiner App',
|
|
@@ -1833,6 +1934,7 @@ export const REPORT_WORDS = {
|
|
|
1833
1934
|
'fl.w.did': 'Was die KI getan hat',
|
|
1834
1935
|
'fl.w.prot': 'Geschützt?',
|
|
1835
1936
|
'fl.w.next': 'Was zu tun ist',
|
|
1937
|
+
'fl.w.when': 'Wann sie auftauchte',
|
|
1836
1938
|
'fl.w.did.read': 'Deine KI hat diese Datei geöffnet und gelesen, was darin steht.',
|
|
1837
1939
|
'fl.w.did.name': 'Deine KI hat den Namen dieser Datei gesehen, aber nichts zeigt, dass sie den Inhalt gelesen hat.',
|
|
1838
1940
|
'fl.w.did.unknown': 'Deine KI hat versucht, diese Datei zu öffnen, und das Protokoll sagt nicht, was passiert ist.',
|
|
@@ -1887,10 +1989,10 @@ export const REPORT_WORDS = {
|
|
|
1887
1989
|
'adv.tab.record': 'Protokoll',
|
|
1888
1990
|
// 2026-09-27-what-codex-wrote.md X23, X19-X22: was ein Codex-Protokoll nicht zeigt, und was es damals aufzeichnete.
|
|
1889
1991
|
'rp.gap.codex.action': 'Aber Codex zeichnet nicht jeden Schritt auf.',
|
|
1890
|
-
'rp.gap.codex.legacyAction': 'Aber Codex hat seine Befehle
|
|
1992
|
+
'rp.gap.codex.legacyAction': 'Aber Codex hat nicht aufgezeichnet, was seine Befehle bewirkt haben.',
|
|
1891
1993
|
'rp.gap.codex.lead': 'Codex zeichnet nicht jeden Schritt auf, daher zeigt dieser Bericht vielleicht nicht alles, was Codex geöffnet hat.',
|
|
1892
1994
|
'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,
|
|
1995
|
+
'rp.gap.codex.legacy': 'Codex hat dieses Gespräch auf eine ältere Art gespeichert: Es behält den Code, den es ausgeführt hat, nicht was jeder Befehl bewirkt hat. Die Befehle haben wir aus diesem Code gelesen. Hier ist, was er zeigt.',
|
|
1894
1996
|
'rp.gap.codex.banner': 'Codex zeichnet nicht jeden Schritt auf, daher fehlt in dieser Liste vielleicht etwas.',
|
|
1895
1997
|
'rec.recorded': 'Was {ai} damals aufgezeichnet hat',
|
|
1896
1998
|
'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.',
|
|
@@ -2088,7 +2190,7 @@ export const REPORT_WORDS = {
|
|
|
2088
2190
|
'rp.dev.title': 'Technische Details',
|
|
2089
2191
|
'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
2192
|
'rp.shape.link': 'Sehen, wo er auftauchte \u2192',
|
|
2091
|
-
'fl.noneListed': 'Deine KI hat keine Datei geöffnet
|
|
2193
|
+
'fl.noneListed': 'Deine KI hat keine Datei geöffnet.',
|
|
2092
2194
|
'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
2195
|
'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
2196
|
'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.',
|