forkit-ai-footprints 0.2.0
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/LICENSE +21 -0
- package/PRIVACY.md +150 -0
- package/README.md +313 -0
- package/STATUS.md +136 -0
- package/dist/agents.d.ts +22 -0
- package/dist/agents.js +281 -0
- package/dist/aggregate.d.ts +28 -0
- package/dist/aggregate.js +151 -0
- package/dist/assets/forkit-icon-dark.png +0 -0
- package/dist/assets/forkit-icon-light.png +0 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Info.plist +5 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/MacOS/Forkit AI Footprint +0 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/ForkitAIFootprint.icns +0 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/ForkitStatusTemplate.png +0 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/agents.d.ts +22 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/agents.js +281 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/aggregate.d.ts +28 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/aggregate.js +151 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/assets/forkit-icon-dark.png +0 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/assets/forkit-icon-light.png +0 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/census.d.ts +3 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/census.js +196 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/cli.d.ts +32 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/cli.js +404 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/doctor.d.ts +14 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/doctor.js +71 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/endpoints.d.ts +8 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/endpoints.js +45 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/evaluate.d.ts +44 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/evaluate.js +102 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/filesystem.d.ts +11 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/filesystem.js +226 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/format.d.ts +7 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/format.js +78 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/hash.d.ts +4 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/hash.js +16 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/index.d.ts +22 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/index.js +58 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/insights.d.ts +13 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/insights.js +76 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/local-device.d.ts +19 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/local-device.js +81 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/locales.json +272 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/localization.d.ts +277 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/localization.js +55 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/mcp.d.ts +9 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/mcp.js +93 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/monitor.d.ts +99 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/monitor.js +285 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/providers/base.d.ts +34 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/providers/base.js +88 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/providers/index.d.ts +6 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/providers/index.js +24 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/providers/lmstudio.d.ts +9 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/providers/lmstudio.js +71 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/providers/ollama.d.ts +12 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/providers/ollama.js +171 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/providers/openai-compatible.d.ts +10 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/providers/openai-compatible.js +68 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/resource-evidence.d.ts +17 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/resource-evidence.js +52 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/runtime-activity.d.ts +5 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/runtime-activity.js +66 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/runtime-identity.d.ts +7 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/runtime-identity.js +66 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/server.d.ts +21 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/server.js +308 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/share-page.d.ts +75 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/share-page.js +167 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/sharing.d.ts +35 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/sharing.js +67 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/tools.d.ts +9 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/tools.js +106 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/types.d.ts +166 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/types.js +3 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/version.d.ts +4 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/dist/version.js +13 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/node_modules/ps-list/index.d.ts +76 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/node_modules/ps-list/index.js +366 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/node_modules/ps-list/license +9 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/node_modules/ps-list/package.json +44 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/node_modules/ps-list/readme.md +56 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/node_modules/ps-list/vendor/fastlist-0.3.0-x64.exe +0 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/node_modules/ps-list/vendor/fastlist-0.3.0-x86.exe +0 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/app/package.json +6 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/Resources/runtime/node +0 -0
- package/dist/bootstrap/Forkit AI Footprint.app/Contents/_CodeSignature/CodeResources +931 -0
- package/dist/census.d.ts +3 -0
- package/dist/census.js +196 -0
- package/dist/cli.d.ts +32 -0
- package/dist/cli.js +404 -0
- package/dist/doctor.d.ts +14 -0
- package/dist/doctor.js +71 -0
- package/dist/endpoints.d.ts +8 -0
- package/dist/endpoints.js +45 -0
- package/dist/evaluate.d.ts +44 -0
- package/dist/evaluate.js +102 -0
- package/dist/filesystem.d.ts +11 -0
- package/dist/filesystem.js +226 -0
- package/dist/format.d.ts +7 -0
- package/dist/format.js +78 -0
- package/dist/hash.d.ts +4 -0
- package/dist/hash.js +16 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.js +58 -0
- package/dist/insights.d.ts +13 -0
- package/dist/insights.js +76 -0
- package/dist/local-device.d.ts +19 -0
- package/dist/local-device.js +81 -0
- package/dist/locales.json +272 -0
- package/dist/localization.d.ts +277 -0
- package/dist/localization.js +55 -0
- package/dist/mcp.d.ts +9 -0
- package/dist/mcp.js +93 -0
- package/dist/monitor.d.ts +99 -0
- package/dist/monitor.js +285 -0
- package/dist/providers/base.d.ts +34 -0
- package/dist/providers/base.js +88 -0
- package/dist/providers/index.d.ts +6 -0
- package/dist/providers/index.js +24 -0
- package/dist/providers/lmstudio.d.ts +9 -0
- package/dist/providers/lmstudio.js +71 -0
- package/dist/providers/ollama.d.ts +12 -0
- package/dist/providers/ollama.js +171 -0
- package/dist/providers/openai-compatible.d.ts +10 -0
- package/dist/providers/openai-compatible.js +68 -0
- package/dist/resource-evidence.d.ts +17 -0
- package/dist/resource-evidence.js +52 -0
- package/dist/runtime-activity.d.ts +5 -0
- package/dist/runtime-activity.js +66 -0
- package/dist/runtime-identity.d.ts +7 -0
- package/dist/runtime-identity.js +66 -0
- package/dist/server.d.ts +21 -0
- package/dist/server.js +308 -0
- package/dist/share-page.d.ts +75 -0
- package/dist/share-page.js +167 -0
- package/dist/sharing.d.ts +35 -0
- package/dist/sharing.js +67 -0
- package/dist/tools.d.ts +9 -0
- package/dist/tools.js +106 -0
- package/dist/types.d.ts +166 -0
- package/dist/types.js +3 -0
- package/dist/version.d.ts +4 -0
- package/dist/version.js +13 -0
- package/docs/GLOBAL_DISTRIBUTION.md +79 -0
- package/docs/MACOS_ACCURACY_GATE.md +140 -0
- package/docs/MACOS_TESTER_GUIDE.md +88 -0
- package/examples/macos-truth.template.json +10 -0
- package/package.json +75 -0
- package/release/channels.json +41 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.defaultLocalStateDirectory = defaultLocalStateDirectory;
|
|
7
|
+
exports.detectLocalDeviceLabel = detectLocalDeviceLabel;
|
|
8
|
+
exports.recordLocalScan = recordLocalScan;
|
|
9
|
+
const promises_1 = __importDefault(require("node:fs/promises"));
|
|
10
|
+
const node_os_1 = __importDefault(require("node:os"));
|
|
11
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
12
|
+
const node_child_process_1 = require("node:child_process");
|
|
13
|
+
function safeDeviceLabel(value) {
|
|
14
|
+
const normalized = value.replace(/[\u0000-\u001f\u007f]/g, ' ').replace(/\s+/g, ' ').trim();
|
|
15
|
+
return normalized.length > 0 ? normalized.slice(0, 80) : null;
|
|
16
|
+
}
|
|
17
|
+
function defaultLocalStateDirectory() {
|
|
18
|
+
return node_path_1.default.join(node_os_1.default.homedir(), 'Library', 'Application Support', 'Forkit AI Footprints');
|
|
19
|
+
}
|
|
20
|
+
function detectLocalDeviceLabel(platform = process.platform) {
|
|
21
|
+
if (platform === 'darwin') {
|
|
22
|
+
const result = (0, node_child_process_1.spawnSync)('/usr/sbin/scutil', ['--get', 'ComputerName'], {
|
|
23
|
+
encoding: 'utf8',
|
|
24
|
+
shell: false,
|
|
25
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
26
|
+
});
|
|
27
|
+
const computerName = result.status === 0 ? safeDeviceLabel(result.stdout) : null;
|
|
28
|
+
if (computerName)
|
|
29
|
+
return { device_label: computerName, device_label_source: 'macos-computer-name' };
|
|
30
|
+
}
|
|
31
|
+
const hostname = safeDeviceLabel(node_os_1.default.hostname());
|
|
32
|
+
if (hostname)
|
|
33
|
+
return { device_label: hostname, device_label_source: 'local-hostname' };
|
|
34
|
+
return { device_label: 'This Mac', device_label_source: 'generic-mac' };
|
|
35
|
+
}
|
|
36
|
+
function validExisting(value) {
|
|
37
|
+
if (!value || typeof value !== 'object')
|
|
38
|
+
return false;
|
|
39
|
+
const candidate = value;
|
|
40
|
+
return candidate.schema_version === '1.0'
|
|
41
|
+
&& typeof candidate.device_label === 'string'
|
|
42
|
+
&& candidate.device_label.length > 0
|
|
43
|
+
&& typeof candidate.first_scan_at === 'string'
|
|
44
|
+
&& typeof candidate.last_scan_at === 'string'
|
|
45
|
+
&& Number.isSafeInteger(candidate.scan_count)
|
|
46
|
+
&& Number(candidate.scan_count) >= 1;
|
|
47
|
+
}
|
|
48
|
+
async function recordLocalScan(options = {}) {
|
|
49
|
+
const stateDirectory = options.stateDirectory ?? defaultLocalStateDirectory();
|
|
50
|
+
const journalPath = node_path_1.default.join(stateDirectory, 'device-journal.json');
|
|
51
|
+
const observedAt = (options.now ?? (() => new Date()))().toISOString();
|
|
52
|
+
const detected = options.deviceLabel
|
|
53
|
+
? { device_label: safeDeviceLabel(options.deviceLabel) ?? 'This Mac', device_label_source: 'generic-mac' }
|
|
54
|
+
: detectLocalDeviceLabel(options.platform);
|
|
55
|
+
let existing = null;
|
|
56
|
+
try {
|
|
57
|
+
const parsed = JSON.parse(await promises_1.default.readFile(journalPath, 'utf8'));
|
|
58
|
+
if (validExisting(parsed))
|
|
59
|
+
existing = parsed;
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
// Missing or invalid local state starts a new private journal.
|
|
63
|
+
}
|
|
64
|
+
const journal = {
|
|
65
|
+
schema_version: '1.0',
|
|
66
|
+
device_label: detected.device_label,
|
|
67
|
+
device_label_source: detected.device_label_source,
|
|
68
|
+
first_scan_at: existing?.first_scan_at ?? observedAt,
|
|
69
|
+
last_scan_at: observedAt,
|
|
70
|
+
scan_count: (existing?.scan_count ?? 0) + 1,
|
|
71
|
+
};
|
|
72
|
+
await promises_1.default.mkdir(stateDirectory, { recursive: true, mode: 0o700 });
|
|
73
|
+
await promises_1.default.chmod(stateDirectory, 0o700);
|
|
74
|
+
const temporaryPath = node_path_1.default.join(stateDirectory, `.device-journal-${process.pid}.tmp`);
|
|
75
|
+
await promises_1.default.writeFile(temporaryPath, `${JSON.stringify(journal, null, 2)}\n`, { encoding: 'utf8', mode: 0o600, flag: 'w' });
|
|
76
|
+
await promises_1.default.chmod(temporaryPath, 0o600);
|
|
77
|
+
await promises_1.default.rename(temporaryPath, journalPath);
|
|
78
|
+
await promises_1.default.chmod(journalPath, 0o600);
|
|
79
|
+
return journal;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=local-device.js.map
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
{
|
|
2
|
+
"en": {
|
|
3
|
+
"localDevice": "Local on this device",
|
|
4
|
+
"activityNow": "AI activity now",
|
|
5
|
+
"monitoringOff": "Ready to observe",
|
|
6
|
+
"stopped": "READY",
|
|
7
|
+
"workingNow": "WORKING NOW",
|
|
8
|
+
"openIdle": "READY",
|
|
9
|
+
"notRunning": "MONITORING",
|
|
10
|
+
"startHelp": "Start monitoring to see supported AI work as it happens.",
|
|
11
|
+
"summaryPreserved": "Your AI Footprint is saved locally. Continue whenever you want.",
|
|
12
|
+
"monitoringStopped": "Observation ready",
|
|
13
|
+
"workingEvidence": "Supported AI work is happening now.",
|
|
14
|
+
"idleEvidence": "Your supported AI app is ready. Forkit will highlight it when work begins.",
|
|
15
|
+
"noApp": "Ready for your next AI session",
|
|
16
|
+
"noAppHelp": "Monitoring is active and will surface supported AI work as it happens.",
|
|
17
|
+
"observed": "Observed",
|
|
18
|
+
"validAwake": "valid awake time",
|
|
19
|
+
"aiActive": "AI active",
|
|
20
|
+
"supportedWork": "supported app work",
|
|
21
|
+
"activityRatio": "Activity ratio",
|
|
22
|
+
"ratioNote": "active ÷ observed",
|
|
23
|
+
"overhead": "Forkit overhead",
|
|
24
|
+
"measuredLocally": "measured locally",
|
|
25
|
+
"warmingUp": "measuring…",
|
|
26
|
+
"working": "Working",
|
|
27
|
+
"openIdleLegend": "Ready",
|
|
28
|
+
"startMonitoring": "Start Monitoring",
|
|
29
|
+
"stopMonitoring": "Stop Monitoring",
|
|
30
|
+
"clearHistory": "Clear history",
|
|
31
|
+
"observation": "Your observation",
|
|
32
|
+
"earlyObservation": "Your Footprint is taking shape",
|
|
33
|
+
"earlyObservationCopy": "Every observed minute adds more detail to your AI Footprint.",
|
|
34
|
+
"observationShows": "What your AI activity shows.",
|
|
35
|
+
"footprint": "Your AI Footprint",
|
|
36
|
+
"modelRecord": "model record",
|
|
37
|
+
"modelRecords": "model records",
|
|
38
|
+
"modelRecordsLabel": "Model records",
|
|
39
|
+
"loaded": "{count} loaded",
|
|
40
|
+
"modelStorage": "Model storage",
|
|
41
|
+
"recognizedBytes": "recognized logical bytes",
|
|
42
|
+
"localEngines": "Local engines",
|
|
43
|
+
"verifiedAvailable": "verified available now",
|
|
44
|
+
"createShare": "Create share card",
|
|
45
|
+
"scanAgain": "Scan again",
|
|
46
|
+
"optionalComparison": "Optional global comparison",
|
|
47
|
+
"comparisonQuestion": "How does your AI activity compare?",
|
|
48
|
+
"comparisonCopy": "Explore your position among participating Forkit observations.",
|
|
49
|
+
"globalProgress": "Your global comparison is taking shape · {remaining} until it’s ready.",
|
|
50
|
+
"seeGlobal": "See my global position",
|
|
51
|
+
"reviewSharing": "Review before sharing.",
|
|
52
|
+
"payloadIntro": "This is the complete aggregate that would leave this device:",
|
|
53
|
+
"shareCompare": "Share aggregates & compare",
|
|
54
|
+
"keepLocal": "Keep everything local",
|
|
55
|
+
"noIdentity": "No account or device identifier. Global contribution is not available in this version.",
|
|
56
|
+
"technical": "Technical details",
|
|
57
|
+
"engines": "Available engines",
|
|
58
|
+
"modelsDevice": "Models in use",
|
|
59
|
+
"appsTools": "AI apps running",
|
|
60
|
+
"probeNotes": "Probe notes",
|
|
61
|
+
"measurementBoundary": "How Forkit measures",
|
|
62
|
+
"activityMeasurement": "AI activity",
|
|
63
|
+
"loadedModel": "Loaded model",
|
|
64
|
+
"storage": "Model storage",
|
|
65
|
+
"notMeasured": "Not measured",
|
|
66
|
+
"forkitResources": "Forkit resources",
|
|
67
|
+
"workingBoundary": "Recent activity from supported AI app processes.",
|
|
68
|
+
"loadedBoundary": "Provider-confirmed loaded model.",
|
|
69
|
+
"storageBoundary": "Recognized local model file sizes.",
|
|
70
|
+
"notMeasuredCopy": "Prompts, tokens, energy, cost, GPU attribution, per-app network traffic, or exclusive task ownership.",
|
|
71
|
+
"noEngine": "",
|
|
72
|
+
"installedNoLoaded": "",
|
|
73
|
+
"modelsLoaded": "{count} {models} loaded",
|
|
74
|
+
"model": "model",
|
|
75
|
+
"models": "models",
|
|
76
|
+
"stored": "stored",
|
|
77
|
+
"noModel": "",
|
|
78
|
+
"processActivity": "Running locally",
|
|
79
|
+
"detectedNotRunning": "",
|
|
80
|
+
"noTool": "",
|
|
81
|
+
"noProbe": "",
|
|
82
|
+
"noPrivateFooter": "No weights, prompts, commands, paths, config values, account data, or upload",
|
|
83
|
+
"shareTitle": "Your AI Footprint",
|
|
84
|
+
"shareHeading": "Your measured AI activity.",
|
|
85
|
+
"share": "Share",
|
|
86
|
+
"savePng": "Save PNG",
|
|
87
|
+
"copyImage": "Copy Image",
|
|
88
|
+
"copyCaption": "Copy Caption",
|
|
89
|
+
"close": "Close",
|
|
90
|
+
"sharePrivacy": "Measured totals and supported tool names only. Chat titles, workspaces, paths, and device identity stay out.",
|
|
91
|
+
"copied": "Copied",
|
|
92
|
+
"copyUnavailable": "Image copy is unavailable in this system view. Save the PNG instead.",
|
|
93
|
+
"myFootprint": "MY AI FOOTPRINT",
|
|
94
|
+
"activeTool": "ACTIVE TOOL",
|
|
95
|
+
"activeTools": "ACTIVE TOOLS",
|
|
96
|
+
"localModels": "LOCAL MODELS",
|
|
97
|
+
"observedLocally": "Observed locally · Forkit AI Footprint",
|
|
98
|
+
"deviceQuestion": "How much AI is working on your device?",
|
|
99
|
+
"shareActive": "AI-ACTIVE",
|
|
100
|
+
"clearConfirm": "Clear this local monitoring history?",
|
|
101
|
+
"scanning": "Scanning local metadata…",
|
|
102
|
+
"refreshed": "Footprint refreshed locally.",
|
|
103
|
+
"scanFailed": "Scan could not be refreshed.",
|
|
104
|
+
"activeShareFallback": "Supported AI tools were working during {ratio} of this observation.",
|
|
105
|
+
"footprintFallback": "{count} supported local {records} found.",
|
|
106
|
+
"shareActivity": "Observed {observed}; AI-active {active} ({ratio}).",
|
|
107
|
+
"shareTool": "Supported AI activity: {tools}.",
|
|
108
|
+
"shareModels": "{count} local {models}; {storage} recognized model files.",
|
|
109
|
+
"captionFirst": "My AI was actively working during {ratio} of this observation.",
|
|
110
|
+
"captionQuestion": "How much AI is actually working on your device?",
|
|
111
|
+
"appTitle": "Forkit AI Footprint",
|
|
112
|
+
"menuStopped": "○ Stopped",
|
|
113
|
+
"menuMonitoring": "● Monitoring",
|
|
114
|
+
"menuWorking": "● Monitoring · {count} working",
|
|
115
|
+
"openFootprint": "Open AI Footprint",
|
|
116
|
+
"quitForkit": "Quit Forkit",
|
|
117
|
+
"serviceUnavailable": "○ Service unavailable",
|
|
118
|
+
"serviceStopped": "Service stopped",
|
|
119
|
+
"closeTitle": "Forkit will keep monitoring in the background.",
|
|
120
|
+
"closeBody": "You can reopen it or stop monitoring anytime from the Forkit icon. If the macOS menu bar is hidden, move the pointer to the top edge to reveal it.",
|
|
121
|
+
"gotIt": "Got it",
|
|
122
|
+
"dontShow": "Don’t show this again",
|
|
123
|
+
"quitTitle": "Stop monitoring and quit?",
|
|
124
|
+
"keepMonitoring": "Keep Monitoring",
|
|
125
|
+
"stopQuit": "Stop & Quit",
|
|
126
|
+
"fatalService": "The local AI Footprints service could not start.",
|
|
127
|
+
"fatalStopped": "The local service stopped unexpectedly. No monitoring remains active.",
|
|
128
|
+
"quit": "Quit",
|
|
129
|
+
"insightMostlyIdle": "This observation captured a light AI activity pattern.",
|
|
130
|
+
"insightActivityProduct": "{product} was working during {percent}% of your observation.",
|
|
131
|
+
"insightActivityGeneric": "Supported AI tools were working during {percent}% of your observation.",
|
|
132
|
+
"insightLongest": "Your longest continuous AI-active period was {duration}.",
|
|
133
|
+
"insightMulti": "Active AI work was observed across {count} supported tools.",
|
|
134
|
+
"insightModelsUnused": "{count} local models are ready for a future session.",
|
|
135
|
+
"insightFocused": "All observed AI activity came from {product}."
|
|
136
|
+
},
|
|
137
|
+
"de": {
|
|
138
|
+
"localDevice": "Lokal auf diesem Gerät",
|
|
139
|
+
"activityNow": "KI-Aktivität jetzt",
|
|
140
|
+
"monitoringOff": "Bereit zur Beobachtung",
|
|
141
|
+
"stopped": "BEREIT",
|
|
142
|
+
"workingNow": "ARBEITET JETZT",
|
|
143
|
+
"openIdle": "BEREIT",
|
|
144
|
+
"notRunning": "MONITORING",
|
|
145
|
+
"startHelp": "Starten Sie das Monitoring und sehen Sie unterstützte KI-Arbeit in Echtzeit.",
|
|
146
|
+
"summaryPreserved": "Ihr AI Footprint ist lokal gespeichert. Sie können jederzeit fortfahren.",
|
|
147
|
+
"monitoringStopped": "Beobachtung bereit",
|
|
148
|
+
"workingEvidence": "Unterstützte KI-Arbeit findet gerade statt.",
|
|
149
|
+
"idleEvidence": "Ihre unterstützte KI-App ist bereit. Forkit hebt sie hervor, sobald die Arbeit beginnt.",
|
|
150
|
+
"noApp": "Bereit für Ihre nächste KI-Sitzung",
|
|
151
|
+
"noAppHelp": "Das Monitoring ist aktiv und zeigt unterstützte KI-Arbeit, sobald sie stattfindet.",
|
|
152
|
+
"observed": "Beobachtet",
|
|
153
|
+
"validAwake": "gültige aktive Gerätezeit",
|
|
154
|
+
"aiActive": "KI aktiv",
|
|
155
|
+
"supportedWork": "Arbeit unterstützter Apps",
|
|
156
|
+
"activityRatio": "Aktivitätsanteil",
|
|
157
|
+
"ratioNote": "aktiv ÷ beobachtet",
|
|
158
|
+
"overhead": "Forkit-Ressourcen",
|
|
159
|
+
"measuredLocally": "lokal gemessen",
|
|
160
|
+
"warmingUp": "wird gemessen…",
|
|
161
|
+
"working": "Arbeitet",
|
|
162
|
+
"openIdleLegend": "Bereit",
|
|
163
|
+
"startMonitoring": "Monitoring starten",
|
|
164
|
+
"stopMonitoring": "Monitoring stoppen",
|
|
165
|
+
"clearHistory": "Verlauf löschen",
|
|
166
|
+
"observation": "Ihre Beobachtung",
|
|
167
|
+
"earlyObservation": "Ihr Footprint nimmt Gestalt an",
|
|
168
|
+
"earlyObservationCopy": "Jede beobachtete Minute ergänzt Ihren AI Footprint.",
|
|
169
|
+
"observationShows": "Das zeigt Ihre KI-Aktivität.",
|
|
170
|
+
"footprint": "Ihr AI Footprint",
|
|
171
|
+
"modelRecord": "Modelldatensatz",
|
|
172
|
+
"modelRecords": "Modelldatensätze",
|
|
173
|
+
"modelRecordsLabel": "Modelldatensätze",
|
|
174
|
+
"loaded": "{count} geladen",
|
|
175
|
+
"modelStorage": "Modellspeicher",
|
|
176
|
+
"recognizedBytes": "erkannte logische Dateibytes",
|
|
177
|
+
"localEngines": "Lokale Engines",
|
|
178
|
+
"verifiedAvailable": "aktuell verifiziert verfügbar",
|
|
179
|
+
"createShare": "Share-Karte erstellen",
|
|
180
|
+
"scanAgain": "Erneut scannen",
|
|
181
|
+
"optionalComparison": "Optionaler globaler Vergleich",
|
|
182
|
+
"comparisonQuestion": "Wie lässt sich Ihre KI-Aktivität vergleichen?",
|
|
183
|
+
"comparisonCopy": "Entdecken Sie Ihre Position unter teilnehmenden Forkit-Beobachtungen.",
|
|
184
|
+
"globalProgress": "Ihr globaler Vergleich nimmt Gestalt an · in {remaining} ist er bereit.",
|
|
185
|
+
"seeGlobal": "Meine globale Position ansehen",
|
|
186
|
+
"reviewSharing": "Vor dem Teilen prüfen.",
|
|
187
|
+
"payloadIntro": "Dies ist das vollständige Aggregat, das dieses Gerät verlassen würde:",
|
|
188
|
+
"shareCompare": "Aggregate teilen & vergleichen",
|
|
189
|
+
"keepLocal": "Alles lokal behalten",
|
|
190
|
+
"noIdentity": "Kein Konto und keine Gerätekennung. Globale Beiträge sind in dieser Version nicht verfügbar.",
|
|
191
|
+
"technical": "Technische Details",
|
|
192
|
+
"engines": "Verfügbare Engines",
|
|
193
|
+
"modelsDevice": "Modelle in Verwendung",
|
|
194
|
+
"appsTools": "Laufende KI-Apps",
|
|
195
|
+
"probeNotes": "Prüfhinweise",
|
|
196
|
+
"measurementBoundary": "So misst Forkit",
|
|
197
|
+
"activityMeasurement": "KI-Aktivität",
|
|
198
|
+
"loadedModel": "Geladenes Modell",
|
|
199
|
+
"storage": "Modellspeicher",
|
|
200
|
+
"notMeasured": "Nicht gemessen",
|
|
201
|
+
"forkitResources": "Forkit-Ressourcen",
|
|
202
|
+
"workingBoundary": "Aktuelle Aktivität unterstützter KI-App-Prozesse.",
|
|
203
|
+
"loadedBoundary": "Vom Anbieter bestätigtes geladenes Modell.",
|
|
204
|
+
"storageBoundary": "Erkannte lokale Modelldateigrößen.",
|
|
205
|
+
"notMeasuredCopy": "Prompts, Tokens, Energie, Kosten, GPU-Zuordnung, Netzwerkverkehr pro App oder exklusive Aufgabenzuordnung.",
|
|
206
|
+
"noEngine": "",
|
|
207
|
+
"installedNoLoaded": "",
|
|
208
|
+
"modelsLoaded": "{count} {models} geladen",
|
|
209
|
+
"model": "Modell",
|
|
210
|
+
"models": "Modelle",
|
|
211
|
+
"stored": "gespeichert",
|
|
212
|
+
"noModel": "",
|
|
213
|
+
"processActivity": "Läuft lokal",
|
|
214
|
+
"detectedNotRunning": "",
|
|
215
|
+
"noTool": "",
|
|
216
|
+
"noProbe": "",
|
|
217
|
+
"noPrivateFooter": "Keine Gewichte, Prompts, Befehle, Pfade, Konfigurationswerte, Kontodaten oder Uploads",
|
|
218
|
+
"shareTitle": "Ihr AI Footprint",
|
|
219
|
+
"shareHeading": "Ihre gemessene KI-Aktivität.",
|
|
220
|
+
"share": "Teilen",
|
|
221
|
+
"savePng": "PNG speichern",
|
|
222
|
+
"copyImage": "Bild kopieren",
|
|
223
|
+
"copyCaption": "Text kopieren",
|
|
224
|
+
"close": "Schließen",
|
|
225
|
+
"sharePrivacy": "Nur gemessene Summen und Namen unterstützter Tools. Chat-Titel, Workspaces, Pfade und Gerätekennung bleiben außen vor.",
|
|
226
|
+
"copied": "Kopiert",
|
|
227
|
+
"copyUnavailable": "Das Kopieren von Bildern ist in dieser Systemansicht nicht verfügbar. Speichern Sie stattdessen die PNG-Datei.",
|
|
228
|
+
"myFootprint": "MEIN AI FOOTPRINT",
|
|
229
|
+
"activeTool": "AKTIVES TOOL",
|
|
230
|
+
"activeTools": "AKTIVE TOOLS",
|
|
231
|
+
"localModels": "LOKALE MODELLE",
|
|
232
|
+
"observedLocally": "Lokal beobachtet · Forkit AI Footprint",
|
|
233
|
+
"deviceQuestion": "Wie viel KI arbeitet auf Ihrem Gerät?",
|
|
234
|
+
"shareActive": "KI-AKTIV",
|
|
235
|
+
"clearConfirm": "Diesen lokalen Monitoring-Verlauf löschen?",
|
|
236
|
+
"scanning": "Lokale Metadaten werden gescannt…",
|
|
237
|
+
"refreshed": "Footprint lokal aktualisiert.",
|
|
238
|
+
"scanFailed": "Der Scan konnte nicht aktualisiert werden.",
|
|
239
|
+
"activeShareFallback": "Unterstützte KI-Tools arbeiteten während {ratio} dieser Beobachtung.",
|
|
240
|
+
"footprintFallback": "{count} unterstützte lokale {records} gefunden.",
|
|
241
|
+
"shareActivity": "{observed} beobachtet; KI aktiv {active} ({ratio}).",
|
|
242
|
+
"shareTool": "Unterstützte KI-Aktivität: {tools}.",
|
|
243
|
+
"shareModels": "{count} lokale {models}; {storage} erkannte Modelldateien.",
|
|
244
|
+
"captionFirst": "Meine KI arbeitete während {ratio} dieser Beobachtung aktiv.",
|
|
245
|
+
"captionQuestion": "Wie viel KI arbeitet tatsächlich auf Ihrem Gerät?",
|
|
246
|
+
"appTitle": "Forkit AI Footprint",
|
|
247
|
+
"menuStopped": "○ Gestoppt",
|
|
248
|
+
"menuMonitoring": "● Monitoring",
|
|
249
|
+
"menuWorking": "● Monitoring · {count} aktiv",
|
|
250
|
+
"openFootprint": "AI Footprint öffnen",
|
|
251
|
+
"quitForkit": "Forkit beenden",
|
|
252
|
+
"serviceUnavailable": "○ Dienst nicht verfügbar",
|
|
253
|
+
"serviceStopped": "Dienst gestoppt",
|
|
254
|
+
"closeTitle": "Forkit überwacht im Hintergrund weiter.",
|
|
255
|
+
"closeBody": "Über das Forkit-Symbol können Sie die App jederzeit erneut öffnen oder das Monitoring stoppen. Falls die macOS-Menüleiste ausgeblendet ist, bewegen Sie den Zeiger an den oberen Bildschirmrand.",
|
|
256
|
+
"gotIt": "Verstanden",
|
|
257
|
+
"dontShow": "Nicht erneut anzeigen",
|
|
258
|
+
"quitTitle": "Monitoring stoppen und beenden?",
|
|
259
|
+
"keepMonitoring": "Monitoring fortsetzen",
|
|
260
|
+
"stopQuit": "Stoppen & beenden",
|
|
261
|
+
"fatalService": "Der lokale AI-Footprints-Dienst konnte nicht gestartet werden.",
|
|
262
|
+
"fatalStopped": "Der lokale Dienst wurde unerwartet beendet. Es ist kein Monitoring mehr aktiv.",
|
|
263
|
+
"quit": "Beenden",
|
|
264
|
+
"insightMostlyIdle": "Diese Beobachtung zeigt ein leichtes KI-Aktivitätsmuster.",
|
|
265
|
+
"insightActivityProduct": "{product} arbeitete während {percent} % Ihrer Beobachtung.",
|
|
266
|
+
"insightActivityGeneric": "Unterstützte KI-Tools arbeiteten während {percent} % Ihrer Beobachtung.",
|
|
267
|
+
"insightLongest": "Ihr längster durchgehender KI-aktiver Zeitraum dauerte {duration}.",
|
|
268
|
+
"insightMulti": "Aktive KI-Arbeit wurde in {count} unterstützten Tools beobachtet.",
|
|
269
|
+
"insightModelsUnused": "{count} lokale Modelle sind für eine zukünftige Sitzung bereit.",
|
|
270
|
+
"insightFocused": "Die gesamte beobachtete KI-Aktivität stammte von {product}."
|
|
271
|
+
}
|
|
272
|
+
}
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
export type UiLocale = 'en' | 'de';
|
|
2
|
+
export declare const UI_COPY: {
|
|
3
|
+
readonly en: {
|
|
4
|
+
readonly localDevice: "Local on this device";
|
|
5
|
+
readonly activityNow: "AI activity now";
|
|
6
|
+
readonly monitoringOff: "Ready to observe";
|
|
7
|
+
readonly stopped: "READY";
|
|
8
|
+
readonly workingNow: "WORKING NOW";
|
|
9
|
+
readonly openIdle: "READY";
|
|
10
|
+
readonly notRunning: "MONITORING";
|
|
11
|
+
readonly startHelp: "Start monitoring to see supported AI work as it happens.";
|
|
12
|
+
readonly summaryPreserved: "Your AI Footprint is saved locally. Continue whenever you want.";
|
|
13
|
+
readonly monitoringStopped: "Observation ready";
|
|
14
|
+
readonly workingEvidence: "Supported AI work is happening now.";
|
|
15
|
+
readonly idleEvidence: "Your supported AI app is ready. Forkit will highlight it when work begins.";
|
|
16
|
+
readonly noApp: "Ready for your next AI session";
|
|
17
|
+
readonly noAppHelp: "Monitoring is active and will surface supported AI work as it happens.";
|
|
18
|
+
readonly observed: "Observed";
|
|
19
|
+
readonly validAwake: "valid awake time";
|
|
20
|
+
readonly aiActive: "AI active";
|
|
21
|
+
readonly supportedWork: "supported app work";
|
|
22
|
+
readonly activityRatio: "Activity ratio";
|
|
23
|
+
readonly ratioNote: "active ÷ observed";
|
|
24
|
+
readonly overhead: "Forkit overhead";
|
|
25
|
+
readonly measuredLocally: "measured locally";
|
|
26
|
+
readonly warmingUp: "measuring…";
|
|
27
|
+
readonly working: "Working";
|
|
28
|
+
readonly openIdleLegend: "Ready";
|
|
29
|
+
readonly startMonitoring: "Start Monitoring";
|
|
30
|
+
readonly stopMonitoring: "Stop Monitoring";
|
|
31
|
+
readonly clearHistory: "Clear history";
|
|
32
|
+
readonly observation: "Your observation";
|
|
33
|
+
readonly earlyObservation: "Your Footprint is taking shape";
|
|
34
|
+
readonly earlyObservationCopy: "Every observed minute adds more detail to your AI Footprint.";
|
|
35
|
+
readonly observationShows: "What your AI activity shows.";
|
|
36
|
+
readonly footprint: "Your AI Footprint";
|
|
37
|
+
readonly modelRecord: "model record";
|
|
38
|
+
readonly modelRecords: "model records";
|
|
39
|
+
readonly modelRecordsLabel: "Model records";
|
|
40
|
+
readonly loaded: "{count} loaded";
|
|
41
|
+
readonly modelStorage: "Model storage";
|
|
42
|
+
readonly recognizedBytes: "recognized logical bytes";
|
|
43
|
+
readonly localEngines: "Local engines";
|
|
44
|
+
readonly verifiedAvailable: "verified available now";
|
|
45
|
+
readonly createShare: "Create share card";
|
|
46
|
+
readonly scanAgain: "Scan again";
|
|
47
|
+
readonly optionalComparison: "Optional global comparison";
|
|
48
|
+
readonly comparisonQuestion: "How does your AI activity compare?";
|
|
49
|
+
readonly comparisonCopy: "Explore your position among participating Forkit observations.";
|
|
50
|
+
readonly globalProgress: "Your global comparison is taking shape · {remaining} until it’s ready.";
|
|
51
|
+
readonly seeGlobal: "See my global position";
|
|
52
|
+
readonly reviewSharing: "Review before sharing.";
|
|
53
|
+
readonly payloadIntro: "This is the complete aggregate that would leave this device:";
|
|
54
|
+
readonly shareCompare: "Share aggregates & compare";
|
|
55
|
+
readonly keepLocal: "Keep everything local";
|
|
56
|
+
readonly noIdentity: "No account or device identifier. Global contribution is not available in this version.";
|
|
57
|
+
readonly technical: "Technical details";
|
|
58
|
+
readonly engines: "Available engines";
|
|
59
|
+
readonly modelsDevice: "Models in use";
|
|
60
|
+
readonly appsTools: "AI apps running";
|
|
61
|
+
readonly probeNotes: "Probe notes";
|
|
62
|
+
readonly measurementBoundary: "How Forkit measures";
|
|
63
|
+
readonly activityMeasurement: "AI activity";
|
|
64
|
+
readonly loadedModel: "Loaded model";
|
|
65
|
+
readonly storage: "Model storage";
|
|
66
|
+
readonly notMeasured: "Not measured";
|
|
67
|
+
readonly forkitResources: "Forkit resources";
|
|
68
|
+
readonly workingBoundary: "Recent activity from supported AI app processes.";
|
|
69
|
+
readonly loadedBoundary: "Provider-confirmed loaded model.";
|
|
70
|
+
readonly storageBoundary: "Recognized local model file sizes.";
|
|
71
|
+
readonly notMeasuredCopy: "Prompts, tokens, energy, cost, GPU attribution, per-app network traffic, or exclusive task ownership.";
|
|
72
|
+
readonly noEngine: "";
|
|
73
|
+
readonly installedNoLoaded: "";
|
|
74
|
+
readonly modelsLoaded: "{count} {models} loaded";
|
|
75
|
+
readonly model: "model";
|
|
76
|
+
readonly models: "models";
|
|
77
|
+
readonly stored: "stored";
|
|
78
|
+
readonly noModel: "";
|
|
79
|
+
readonly processActivity: "Running locally";
|
|
80
|
+
readonly detectedNotRunning: "";
|
|
81
|
+
readonly noTool: "";
|
|
82
|
+
readonly noProbe: "";
|
|
83
|
+
readonly noPrivateFooter: "No weights, prompts, commands, paths, config values, account data, or upload";
|
|
84
|
+
readonly shareTitle: "Your AI Footprint";
|
|
85
|
+
readonly shareHeading: "Your measured AI activity.";
|
|
86
|
+
readonly share: "Share";
|
|
87
|
+
readonly savePng: "Save PNG";
|
|
88
|
+
readonly copyImage: "Copy Image";
|
|
89
|
+
readonly copyCaption: "Copy Caption";
|
|
90
|
+
readonly close: "Close";
|
|
91
|
+
readonly sharePrivacy: "Measured totals and supported tool names only. Chat titles, workspaces, paths, and device identity stay out.";
|
|
92
|
+
readonly copied: "Copied";
|
|
93
|
+
readonly copyUnavailable: "Image copy is unavailable in this system view. Save the PNG instead.";
|
|
94
|
+
readonly myFootprint: "MY AI FOOTPRINT";
|
|
95
|
+
readonly activeTool: "ACTIVE TOOL";
|
|
96
|
+
readonly activeTools: "ACTIVE TOOLS";
|
|
97
|
+
readonly localModels: "LOCAL MODELS";
|
|
98
|
+
readonly observedLocally: "Observed locally · Forkit AI Footprint";
|
|
99
|
+
readonly deviceQuestion: "How much AI is working on your device?";
|
|
100
|
+
readonly shareActive: "AI-ACTIVE";
|
|
101
|
+
readonly clearConfirm: "Clear this local monitoring history?";
|
|
102
|
+
readonly scanning: "Scanning local metadata…";
|
|
103
|
+
readonly refreshed: "Footprint refreshed locally.";
|
|
104
|
+
readonly scanFailed: "Scan could not be refreshed.";
|
|
105
|
+
readonly activeShareFallback: "Supported AI tools were working during {ratio} of this observation.";
|
|
106
|
+
readonly footprintFallback: "{count} supported local {records} found.";
|
|
107
|
+
readonly shareActivity: "Observed {observed}; AI-active {active} ({ratio}).";
|
|
108
|
+
readonly shareTool: "Supported AI activity: {tools}.";
|
|
109
|
+
readonly shareModels: "{count} local {models}; {storage} recognized model files.";
|
|
110
|
+
readonly captionFirst: "My AI was actively working during {ratio} of this observation.";
|
|
111
|
+
readonly captionQuestion: "How much AI is actually working on your device?";
|
|
112
|
+
readonly appTitle: "Forkit AI Footprint";
|
|
113
|
+
readonly menuStopped: "○ Stopped";
|
|
114
|
+
readonly menuMonitoring: "● Monitoring";
|
|
115
|
+
readonly menuWorking: "● Monitoring · {count} working";
|
|
116
|
+
readonly openFootprint: "Open AI Footprint";
|
|
117
|
+
readonly quitForkit: "Quit Forkit";
|
|
118
|
+
readonly serviceUnavailable: "○ Service unavailable";
|
|
119
|
+
readonly serviceStopped: "Service stopped";
|
|
120
|
+
readonly closeTitle: "Forkit will keep monitoring in the background.";
|
|
121
|
+
readonly closeBody: "You can reopen it or stop monitoring anytime from the Forkit icon. If the macOS menu bar is hidden, move the pointer to the top edge to reveal it.";
|
|
122
|
+
readonly gotIt: "Got it";
|
|
123
|
+
readonly dontShow: "Don’t show this again";
|
|
124
|
+
readonly quitTitle: "Stop monitoring and quit?";
|
|
125
|
+
readonly keepMonitoring: "Keep Monitoring";
|
|
126
|
+
readonly stopQuit: "Stop & Quit";
|
|
127
|
+
readonly fatalService: "The local AI Footprints service could not start.";
|
|
128
|
+
readonly fatalStopped: "The local service stopped unexpectedly. No monitoring remains active.";
|
|
129
|
+
readonly quit: "Quit";
|
|
130
|
+
readonly insightMostlyIdle: "This observation captured a light AI activity pattern.";
|
|
131
|
+
readonly insightActivityProduct: "{product} was working during {percent}% of your observation.";
|
|
132
|
+
readonly insightActivityGeneric: "Supported AI tools were working during {percent}% of your observation.";
|
|
133
|
+
readonly insightLongest: "Your longest continuous AI-active period was {duration}.";
|
|
134
|
+
readonly insightMulti: "Active AI work was observed across {count} supported tools.";
|
|
135
|
+
readonly insightModelsUnused: "{count} local models are ready for a future session.";
|
|
136
|
+
readonly insightFocused: "All observed AI activity came from {product}.";
|
|
137
|
+
};
|
|
138
|
+
readonly de: {
|
|
139
|
+
readonly localDevice: "Lokal auf diesem Gerät";
|
|
140
|
+
readonly activityNow: "KI-Aktivität jetzt";
|
|
141
|
+
readonly monitoringOff: "Bereit zur Beobachtung";
|
|
142
|
+
readonly stopped: "BEREIT";
|
|
143
|
+
readonly workingNow: "ARBEITET JETZT";
|
|
144
|
+
readonly openIdle: "BEREIT";
|
|
145
|
+
readonly notRunning: "MONITORING";
|
|
146
|
+
readonly startHelp: "Starten Sie das Monitoring und sehen Sie unterstützte KI-Arbeit in Echtzeit.";
|
|
147
|
+
readonly summaryPreserved: "Ihr AI Footprint ist lokal gespeichert. Sie können jederzeit fortfahren.";
|
|
148
|
+
readonly monitoringStopped: "Beobachtung bereit";
|
|
149
|
+
readonly workingEvidence: "Unterstützte KI-Arbeit findet gerade statt.";
|
|
150
|
+
readonly idleEvidence: "Ihre unterstützte KI-App ist bereit. Forkit hebt sie hervor, sobald die Arbeit beginnt.";
|
|
151
|
+
readonly noApp: "Bereit für Ihre nächste KI-Sitzung";
|
|
152
|
+
readonly noAppHelp: "Das Monitoring ist aktiv und zeigt unterstützte KI-Arbeit, sobald sie stattfindet.";
|
|
153
|
+
readonly observed: "Beobachtet";
|
|
154
|
+
readonly validAwake: "gültige aktive Gerätezeit";
|
|
155
|
+
readonly aiActive: "KI aktiv";
|
|
156
|
+
readonly supportedWork: "Arbeit unterstützter Apps";
|
|
157
|
+
readonly activityRatio: "Aktivitätsanteil";
|
|
158
|
+
readonly ratioNote: "aktiv ÷ beobachtet";
|
|
159
|
+
readonly overhead: "Forkit-Ressourcen";
|
|
160
|
+
readonly measuredLocally: "lokal gemessen";
|
|
161
|
+
readonly warmingUp: "wird gemessen…";
|
|
162
|
+
readonly working: "Arbeitet";
|
|
163
|
+
readonly openIdleLegend: "Bereit";
|
|
164
|
+
readonly startMonitoring: "Monitoring starten";
|
|
165
|
+
readonly stopMonitoring: "Monitoring stoppen";
|
|
166
|
+
readonly clearHistory: "Verlauf löschen";
|
|
167
|
+
readonly observation: "Ihre Beobachtung";
|
|
168
|
+
readonly earlyObservation: "Ihr Footprint nimmt Gestalt an";
|
|
169
|
+
readonly earlyObservationCopy: "Jede beobachtete Minute ergänzt Ihren AI Footprint.";
|
|
170
|
+
readonly observationShows: "Das zeigt Ihre KI-Aktivität.";
|
|
171
|
+
readonly footprint: "Ihr AI Footprint";
|
|
172
|
+
readonly modelRecord: "Modelldatensatz";
|
|
173
|
+
readonly modelRecords: "Modelldatensätze";
|
|
174
|
+
readonly modelRecordsLabel: "Modelldatensätze";
|
|
175
|
+
readonly loaded: "{count} geladen";
|
|
176
|
+
readonly modelStorage: "Modellspeicher";
|
|
177
|
+
readonly recognizedBytes: "erkannte logische Dateibytes";
|
|
178
|
+
readonly localEngines: "Lokale Engines";
|
|
179
|
+
readonly verifiedAvailable: "aktuell verifiziert verfügbar";
|
|
180
|
+
readonly createShare: "Share-Karte erstellen";
|
|
181
|
+
readonly scanAgain: "Erneut scannen";
|
|
182
|
+
readonly optionalComparison: "Optionaler globaler Vergleich";
|
|
183
|
+
readonly comparisonQuestion: "Wie lässt sich Ihre KI-Aktivität vergleichen?";
|
|
184
|
+
readonly comparisonCopy: "Entdecken Sie Ihre Position unter teilnehmenden Forkit-Beobachtungen.";
|
|
185
|
+
readonly globalProgress: "Ihr globaler Vergleich nimmt Gestalt an · in {remaining} ist er bereit.";
|
|
186
|
+
readonly seeGlobal: "Meine globale Position ansehen";
|
|
187
|
+
readonly reviewSharing: "Vor dem Teilen prüfen.";
|
|
188
|
+
readonly payloadIntro: "Dies ist das vollständige Aggregat, das dieses Gerät verlassen würde:";
|
|
189
|
+
readonly shareCompare: "Aggregate teilen & vergleichen";
|
|
190
|
+
readonly keepLocal: "Alles lokal behalten";
|
|
191
|
+
readonly noIdentity: "Kein Konto und keine Gerätekennung. Globale Beiträge sind in dieser Version nicht verfügbar.";
|
|
192
|
+
readonly technical: "Technische Details";
|
|
193
|
+
readonly engines: "Verfügbare Engines";
|
|
194
|
+
readonly modelsDevice: "Modelle in Verwendung";
|
|
195
|
+
readonly appsTools: "Laufende KI-Apps";
|
|
196
|
+
readonly probeNotes: "Prüfhinweise";
|
|
197
|
+
readonly measurementBoundary: "So misst Forkit";
|
|
198
|
+
readonly activityMeasurement: "KI-Aktivität";
|
|
199
|
+
readonly loadedModel: "Geladenes Modell";
|
|
200
|
+
readonly storage: "Modellspeicher";
|
|
201
|
+
readonly notMeasured: "Nicht gemessen";
|
|
202
|
+
readonly forkitResources: "Forkit-Ressourcen";
|
|
203
|
+
readonly workingBoundary: "Aktuelle Aktivität unterstützter KI-App-Prozesse.";
|
|
204
|
+
readonly loadedBoundary: "Vom Anbieter bestätigtes geladenes Modell.";
|
|
205
|
+
readonly storageBoundary: "Erkannte lokale Modelldateigrößen.";
|
|
206
|
+
readonly notMeasuredCopy: "Prompts, Tokens, Energie, Kosten, GPU-Zuordnung, Netzwerkverkehr pro App oder exklusive Aufgabenzuordnung.";
|
|
207
|
+
readonly noEngine: "";
|
|
208
|
+
readonly installedNoLoaded: "";
|
|
209
|
+
readonly modelsLoaded: "{count} {models} geladen";
|
|
210
|
+
readonly model: "Modell";
|
|
211
|
+
readonly models: "Modelle";
|
|
212
|
+
readonly stored: "gespeichert";
|
|
213
|
+
readonly noModel: "";
|
|
214
|
+
readonly processActivity: "Läuft lokal";
|
|
215
|
+
readonly detectedNotRunning: "";
|
|
216
|
+
readonly noTool: "";
|
|
217
|
+
readonly noProbe: "";
|
|
218
|
+
readonly noPrivateFooter: "Keine Gewichte, Prompts, Befehle, Pfade, Konfigurationswerte, Kontodaten oder Uploads";
|
|
219
|
+
readonly shareTitle: "Ihr AI Footprint";
|
|
220
|
+
readonly shareHeading: "Ihre gemessene KI-Aktivität.";
|
|
221
|
+
readonly share: "Teilen";
|
|
222
|
+
readonly savePng: "PNG speichern";
|
|
223
|
+
readonly copyImage: "Bild kopieren";
|
|
224
|
+
readonly copyCaption: "Text kopieren";
|
|
225
|
+
readonly close: "Schließen";
|
|
226
|
+
readonly sharePrivacy: "Nur gemessene Summen und Namen unterstützter Tools. Chat-Titel, Workspaces, Pfade und Gerätekennung bleiben außen vor.";
|
|
227
|
+
readonly copied: "Kopiert";
|
|
228
|
+
readonly copyUnavailable: "Das Kopieren von Bildern ist in dieser Systemansicht nicht verfügbar. Speichern Sie stattdessen die PNG-Datei.";
|
|
229
|
+
readonly myFootprint: "MEIN AI FOOTPRINT";
|
|
230
|
+
readonly activeTool: "AKTIVES TOOL";
|
|
231
|
+
readonly activeTools: "AKTIVE TOOLS";
|
|
232
|
+
readonly localModels: "LOKALE MODELLE";
|
|
233
|
+
readonly observedLocally: "Lokal beobachtet · Forkit AI Footprint";
|
|
234
|
+
readonly deviceQuestion: "Wie viel KI arbeitet auf Ihrem Gerät?";
|
|
235
|
+
readonly shareActive: "KI-AKTIV";
|
|
236
|
+
readonly clearConfirm: "Diesen lokalen Monitoring-Verlauf löschen?";
|
|
237
|
+
readonly scanning: "Lokale Metadaten werden gescannt…";
|
|
238
|
+
readonly refreshed: "Footprint lokal aktualisiert.";
|
|
239
|
+
readonly scanFailed: "Der Scan konnte nicht aktualisiert werden.";
|
|
240
|
+
readonly activeShareFallback: "Unterstützte KI-Tools arbeiteten während {ratio} dieser Beobachtung.";
|
|
241
|
+
readonly footprintFallback: "{count} unterstützte lokale {records} gefunden.";
|
|
242
|
+
readonly shareActivity: "{observed} beobachtet; KI aktiv {active} ({ratio}).";
|
|
243
|
+
readonly shareTool: "Unterstützte KI-Aktivität: {tools}.";
|
|
244
|
+
readonly shareModels: "{count} lokale {models}; {storage} erkannte Modelldateien.";
|
|
245
|
+
readonly captionFirst: "Meine KI arbeitete während {ratio} dieser Beobachtung aktiv.";
|
|
246
|
+
readonly captionQuestion: "Wie viel KI arbeitet tatsächlich auf Ihrem Gerät?";
|
|
247
|
+
readonly appTitle: "Forkit AI Footprint";
|
|
248
|
+
readonly menuStopped: "○ Gestoppt";
|
|
249
|
+
readonly menuMonitoring: "● Monitoring";
|
|
250
|
+
readonly menuWorking: "● Monitoring · {count} aktiv";
|
|
251
|
+
readonly openFootprint: "AI Footprint öffnen";
|
|
252
|
+
readonly quitForkit: "Forkit beenden";
|
|
253
|
+
readonly serviceUnavailable: "○ Dienst nicht verfügbar";
|
|
254
|
+
readonly serviceStopped: "Dienst gestoppt";
|
|
255
|
+
readonly closeTitle: "Forkit überwacht im Hintergrund weiter.";
|
|
256
|
+
readonly closeBody: "Über das Forkit-Symbol können Sie die App jederzeit erneut öffnen oder das Monitoring stoppen. Falls die macOS-Menüleiste ausgeblendet ist, bewegen Sie den Zeiger an den oberen Bildschirmrand.";
|
|
257
|
+
readonly gotIt: "Verstanden";
|
|
258
|
+
readonly dontShow: "Nicht erneut anzeigen";
|
|
259
|
+
readonly quitTitle: "Monitoring stoppen und beenden?";
|
|
260
|
+
readonly keepMonitoring: "Monitoring fortsetzen";
|
|
261
|
+
readonly stopQuit: "Stoppen & beenden";
|
|
262
|
+
readonly fatalService: "Der lokale AI-Footprints-Dienst konnte nicht gestartet werden.";
|
|
263
|
+
readonly fatalStopped: "Der lokale Dienst wurde unerwartet beendet. Es ist kein Monitoring mehr aktiv.";
|
|
264
|
+
readonly quit: "Beenden";
|
|
265
|
+
readonly insightMostlyIdle: "Diese Beobachtung zeigt ein leichtes KI-Aktivitätsmuster.";
|
|
266
|
+
readonly insightActivityProduct: "{product} arbeitete während {percent} % Ihrer Beobachtung.";
|
|
267
|
+
readonly insightActivityGeneric: "Unterstützte KI-Tools arbeiteten während {percent} % Ihrer Beobachtung.";
|
|
268
|
+
readonly insightLongest: "Ihr längster durchgehender KI-aktiver Zeitraum dauerte {duration}.";
|
|
269
|
+
readonly insightMulti: "Aktive KI-Arbeit wurde in {count} unterstützten Tools beobachtet.";
|
|
270
|
+
readonly insightModelsUnused: "{count} lokale Modelle sind für eine zukünftige Sitzung bereit.";
|
|
271
|
+
readonly insightFocused: "Die gesamte beobachtete KI-Aktivität stammte von {product}.";
|
|
272
|
+
};
|
|
273
|
+
};
|
|
274
|
+
export type UiCopyKey = keyof typeof UI_COPY.en;
|
|
275
|
+
export declare function normalizeLocale(value: string | null | undefined): UiLocale;
|
|
276
|
+
export declare function uiText(locale: UiLocale, key: UiCopyKey, values?: Record<string, string | number>): string;
|
|
277
|
+
//# sourceMappingURL=localization.d.ts.map
|