The AITURK Chrome extension now registers the user's Chrome as the desktop backend's browser controller, the way the ChatGPT extension lets its agent work in the user's browser. The agent's existing browser tools (navigate, snapshot, click, type, scroll, back, press, get_images, vision) run in its own background tabs grouped as "AITURK", or a tab the user hands over. Backend: a local desktop lane in the browser-control broker. One controller registered from the loopback desktop transport is offered to every desktop session as a lane template; each session still gets its own exact scope on first use. The lane has its own switch (browser.extension_control.local_desktop, on by default); with no extension registered, or after it disconnects, the normal browser backend runs unchanged. browser_vision turns the extension's capture into the usual native/auxiliary vision result. Bridge: forwards controller commands only to a connection that registered, refuses unknown or oversized commands, relays results. Extension: service-worker controller with its own native connection, trusted chrome.debugger input (press/release only: a hover move waits 5 s on background tabs), refusal of password and payment-card fields and of browser, extension, file and Web Store pages, panel switch, Stop, tab hand-over, recent actions, Alt+Shift+A and right-click "send to AITURK". Cancelling Chrome's debugging bar stops the agent. Existing panel flows and privacy rules are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
349 lines
13 KiB
JSON
349 lines
13 KiB
JSON
{
|
||
"name": "aiturk-ide",
|
||
"productName": "AITURK IDE",
|
||
"private": true,
|
||
"version": "1.0.0-beta.42",
|
||
"description": "TurkServis resmi yapay zekâ geliştirme ortamı. Hermes Agent tabanlıdır.",
|
||
"author": "AITURK / TurkServis",
|
||
"repository": {
|
||
"type": "git",
|
||
"url": "git+https://gitea.turkservis.online/yilsem/aiturk-hermes-ide.git"
|
||
},
|
||
"type": "module",
|
||
"main": "dist/electron-main.mjs",
|
||
"engines": {
|
||
"node": "^22.22.0 || ^24.11.0 || >=26.0.0"
|
||
},
|
||
"scripts": {
|
||
"clean": "npm run clean:e2e && npm run clean:renderer && npm run clean:electron",
|
||
"clean:e2e": "tsc --build tsconfig.e2e.json --clean",
|
||
"clean:renderer": "tsc --build tsconfig.json --clean ",
|
||
"clean:electron": "tsc --build tsconfig.electron.json --clean",
|
||
"dev": "concurrently -k \"npm:dev:renderer\" \"npm:dev:electron\"",
|
||
"dev:fake-boot": "cross-env HERMES_DESKTOP_BOOT_FAKE=1 HERMES_DESKTOP_BOOT_FAKE_STEP_MS=650 npm run dev",
|
||
"dev:mock": "node scripts/dev-mock.mjs",
|
||
"dev:renderer": "node scripts/assert-root-install.mjs && npm run clean:renderer && vite --host 127.0.0.1 --port 5174",
|
||
"dev:electron": "tsc --build tsconfig.electron.json && wait-on http://127.0.0.1:5174 && node scripts/bundle-electron-main.mjs --dev && cross-env XCURSOR_SIZE=24 HERMES_DESKTOP_DEV_SERVER=http://127.0.0.1:5174 electron .",
|
||
"profile:main": "tsc --build tsconfig.electron.json && wait-on http://127.0.0.1:5174 && node scripts/bundle-electron-main.mjs --dev && cross-env XCURSOR_SIZE=24 HERMES_DESKTOP_DEV_SERVER=http://127.0.0.1:5174 electron --inspect=9229 .",
|
||
"profile:main:cpu": "tsc --build tsconfig.electron.json && wait-on http://127.0.0.1:5174 && node scripts/bundle-electron-main.mjs --dev && cross-env XCURSOR_SIZE=24 NODE_OPTIONS=--cpu-prof HERMES_DESKTOP_DEV_SERVER=http://127.0.0.1:5174 electron .",
|
||
"start": "npm run build && electron .",
|
||
"prebuild": "node scripts/assert-root-install.mjs && npm run clean",
|
||
"build": "node scripts/assert-root-install.mjs && node scripts/write-build-stamp.mjs && vite build && node scripts/bundle-electron-main.mjs && node scripts/stage-native-deps.mjs",
|
||
"postbuild": "node scripts/assert-dist-built.mjs",
|
||
"prebuilder": "node scripts/patch-electron-builder-mac-binary.mjs",
|
||
"builder": "cross-env NODE_OPTIONS=--max-old-space-size=16384 node scripts/run-electron-builder.mjs",
|
||
"pack": "npm run build && npm run builder -- --dir --publish never",
|
||
"dist": "npm run build && npm run builder",
|
||
"dist:mac": "npm run build && npm run builder -- --mac",
|
||
"dist:mac:arm64": "npm run build && npm run builder -- --mac --arm64",
|
||
"dist:mac:x64": "npm run build && npm run builder -- --mac --x64",
|
||
"dist:mac:dmg": "npm run build && npm run builder -- --mac dmg",
|
||
"dist:mac:zip": "npm run build && npm run builder -- --mac zip",
|
||
"dist:win": "npm run build && npm run builder -- --win",
|
||
"dist:win:msi": "npm run build && npm run builder -- --win msi",
|
||
"dist:win:nsis": "npm run build && npm run builder -- --win nsis",
|
||
"dist:linux": "npm run build && npm run builder -- --linux AppImage deb rpm",
|
||
"perf": "node scripts/perf/run.mjs",
|
||
"update:shim": "bash ../../scripts/desktop-update/repro.sh shim",
|
||
"update:shim:fail": "bash ../../scripts/desktop-update/repro.sh shim-fail",
|
||
"update:repro:fresh": "bash ../../scripts/desktop-update/repro.sh fresh",
|
||
"update:repro:behind": "bash ../../scripts/desktop-update/repro.sh behind",
|
||
"update:repro:error": "bash ../../scripts/desktop-update/repro.sh error",
|
||
"update:repro:gate": "bash ../../scripts/desktop-update/repro.sh gate",
|
||
"update:repro:launch": "bash ../../scripts/desktop-update/repro.sh launch",
|
||
"perf:serve": "node scripts/perf/serve.mjs",
|
||
"test:desktop": "node scripts/test-desktop.mjs",
|
||
"test:desktop:all": "node scripts/test-desktop.mjs all",
|
||
"test:desktop:dmg": "node scripts/test-desktop.mjs dmg",
|
||
"test:desktop:nsis": "node scripts/test-desktop.mjs nsis",
|
||
"test:desktop:existing": "node scripts/test-desktop.mjs existing",
|
||
"test:desktop:fresh": "node scripts/test-desktop.mjs fresh",
|
||
"typecheck": "tsc -p . --noEmit && tsc -p tsconfig.electron.json --noEmit && tsc -p tsconfig.e2e.json --noEmit",
|
||
"lint": "eslint src/ electron/",
|
||
"lint:fix": "eslint src/ electron/ --fix",
|
||
"fmt": "prettier --write 'src/**/*.{ts,tsx}' 'electron/**/*.ts' 'vite.config.ts'",
|
||
"fix": "npm run lint:fix && npm run fmt",
|
||
"test:ui": "vitest run --project ui",
|
||
"test:desktop:platforms": "vitest run --project electron",
|
||
"test:find-in-page-native": "electron electron/find-in-page-native-fixture",
|
||
"test": "vitest run",
|
||
"preview": "node scripts/assert-root-install.mjs && vite preview --host 127.0.0.1 --port 4174",
|
||
"check:test:ui": "npm run test:ui",
|
||
"check:test:desktop:platforms": "npm run test:desktop:platforms",
|
||
"check:test:desktop:all": "npm run test:desktop:all",
|
||
"check:lint": "npm run typecheck && npm run lint",
|
||
"check": "npm run check:lint && npm run test:ui && npm run test:desktop:platforms && npm run test:desktop:all",
|
||
"test:e2e": "npm run build && playwright test e2e/",
|
||
"test:e2e:visual": "npm run build && WLR_BACKENDS=headless WLR_NO_HARDWARE_CURSORS=1 cage -- npx playwright test e2e/ --reporter=list",
|
||
"test:e2e:update-snapshots": "npm run build && WLR_BACKENDS=headless WLR_NO_HARDWARE_CURSORS=1 cage -- npx playwright test e2e/ --reporter=list --update-snapshots",
|
||
"repro:short-session-hang": "node scripts/run-short-session-hang-repro.mjs",
|
||
"repro:short-session-hang:test": "node --test scripts/run-short-session-hang-repro.test.mjs"
|
||
},
|
||
"dependencies": {
|
||
"@assistant-ui/core": "0.2.23",
|
||
"@assistant-ui/react": "0.14.24",
|
||
"@assistant-ui/react-streamdown": "0.3.5",
|
||
"@audiowave/react": "0.6.2",
|
||
"@chenglou/pretext": "0.0.6",
|
||
"@codemirror/commands": "6.10.4",
|
||
"@codemirror/language": "6.12.4",
|
||
"@codemirror/language-data": "6.5.2",
|
||
"@codemirror/state": "6.7.1",
|
||
"@codemirror/view": "6.43.6",
|
||
"@dnd-kit/core": "6.3.1",
|
||
"@dnd-kit/sortable": "10.0.0",
|
||
"@dnd-kit/utilities": "3.2.2",
|
||
"@hermes/shared": "file:../shared",
|
||
"@icons-pack/react-simple-icons": "13.11.1",
|
||
"@lezer/highlight": "1.2.3",
|
||
"@nanostores/react": "1.1.0",
|
||
"@nous-research/ui": "0.18.2",
|
||
"@streamdown/code": "1.1.1",
|
||
"@streamdown/math": "1.0.2",
|
||
"@tabler/icons-react": "3.44.0",
|
||
"@tailwindcss/typography": "0.5.20",
|
||
"@tailwindcss/vite": "4.3.3",
|
||
"@tanstack/react-query": "5.101.2",
|
||
"@tanstack/react-virtual": "3.14.6",
|
||
"@vscode/codicons": "0.0.45",
|
||
"@xterm/addon-fit": "0.11.0",
|
||
"@xterm/addon-serialize": "0.14.0",
|
||
"@xterm/addon-unicode11": "0.9.0",
|
||
"@xterm/addon-web-links": "0.12.0",
|
||
"@xterm/addon-webgl": "0.19.0",
|
||
"@xterm/xterm": "6.0.0",
|
||
"blobatar": "2.0.0",
|
||
"class-variance-authority": "0.7.1",
|
||
"clsx": "2.1.1",
|
||
"cmdk": "1.1.1",
|
||
"d3-force": "3.0.0",
|
||
"dnd-core": "14.0.1",
|
||
"dompurify": "3.4.13",
|
||
"driver.js": "1.8.0",
|
||
"emojibase-data": "16.0.3",
|
||
"fflate": "0.8.3",
|
||
"frimousse": "0.3.0",
|
||
"hast-util-from-html-isomorphic": "2.0.0",
|
||
"hast-util-to-text": "4.0.2",
|
||
"ignore": "7.0.6",
|
||
"katex": "0.16.47",
|
||
"mermaid": "11.16.1",
|
||
"motion": "12.42.2",
|
||
"nanostores": "1.4.2",
|
||
"node-pty": "1.1.0",
|
||
"radix-ui": "1.6.7",
|
||
"react": "19.2.7",
|
||
"react-arborist": "3.13.2",
|
||
"react-dnd-html5-backend": "14.1.0",
|
||
"react-dom": "19.2.7",
|
||
"react-router": "8.3.0",
|
||
"react-shiki": "0.9.3",
|
||
"remark-math": "6.0.0",
|
||
"remend": "1.3.0",
|
||
"shiki": "4.3.1",
|
||
"simple-git": "3.36.0",
|
||
"streamdown": "2.5.0",
|
||
"tailwind-merge": "3.6.0",
|
||
"tailwindcss": "4.3.3",
|
||
"tw-shimmer": "0.4.12",
|
||
"unicode-animations": "1.0.3",
|
||
"unified": "11.0.5",
|
||
"unist-util-visit-parents": "6.0.2",
|
||
"use-stick-to-bottom": "1.1.6",
|
||
"vfile": "6.0.3",
|
||
"web-haptics": "0.0.6",
|
||
"ws": "8.21.1"
|
||
},
|
||
"optionalDependencies": {
|
||
"get-windows": "9.3.0"
|
||
},
|
||
"devDependencies": {
|
||
"@babel/core": "8.0.1",
|
||
"@electron/rebuild": "4.2.0",
|
||
"@playwright/test": "1.62.1",
|
||
"@rolldown/plugin-babel": "0.2.3",
|
||
"@testing-library/dom": "10.4.1",
|
||
"@testing-library/react": "16.3.2",
|
||
"@types/babel__core": "7.20.5",
|
||
"@types/d3-force": "3.0.10",
|
||
"@types/hast": "3.0.5",
|
||
"@types/node": "22.20.1",
|
||
"@types/react": "19.2.17",
|
||
"@types/react-dom": "19.2.3",
|
||
"@types/ws": "8.18.2",
|
||
"@vitejs/plugin-react": "6.0.3",
|
||
"babel-plugin-react-compiler": "1.0.0",
|
||
"bippy": "0.5.43",
|
||
"concurrently": "10.0.4",
|
||
"cross-env": "10.1.0",
|
||
"electron": "40.10.2",
|
||
"electron-builder": "26.15.3",
|
||
"esbuild": "0.28.1",
|
||
"jsdom": "29.1.1",
|
||
"prettier": "3.9.5",
|
||
"rcedit": "5.0.2",
|
||
"tsx": "4.23.1",
|
||
"typescript": "6.0.3",
|
||
"vite": "8.2.0",
|
||
"vitest": "4.1.10",
|
||
"wait-on": "9.0.10"
|
||
},
|
||
"build": {
|
||
"electronVersion": "40.10.2",
|
||
"appId": "online.turkservis.aiturk.hermes",
|
||
"productName": "AITURK IDE",
|
||
"executableName": "AITURK-IDE",
|
||
"protocols": [
|
||
{
|
||
"name": "AITURK IDE",
|
||
"schemes": [
|
||
"aiturk-ide"
|
||
]
|
||
}
|
||
],
|
||
"artifactName": "AITURK-IDE-${version}-${os}-${arch}.${ext}",
|
||
"icon": "assets/icon",
|
||
"directories": {
|
||
"output": "release"
|
||
},
|
||
"files": [
|
||
"dist/**",
|
||
"assets/**",
|
||
"public/**",
|
||
"package.json"
|
||
],
|
||
"beforeBuild": "scripts/before-build.mjs",
|
||
"beforePack": "scripts/before-pack.mjs",
|
||
"afterPack": "scripts/after-pack.mjs",
|
||
"extraResources": [
|
||
{
|
||
"from": "build/install-stamp.json",
|
||
"to": "install-stamp.json"
|
||
},
|
||
{
|
||
"from": "assets/icon.ico",
|
||
"to": "icon.ico"
|
||
}
|
||
],
|
||
"asar": true,
|
||
"afterSign": "scripts/notarize.mjs",
|
||
"asarUnpack": [
|
||
"**/*.node",
|
||
"**/prebuilds/**",
|
||
"dist/**"
|
||
],
|
||
"mac": {
|
||
"extraResources": [
|
||
{
|
||
"from": "assets/mac/tr.lproj/InfoPlist.strings",
|
||
"to": "tr.lproj/InfoPlist.strings"
|
||
}
|
||
],
|
||
"category": "public.app-category.developer-tools",
|
||
"entitlements": "electron/entitlements.mac.plist",
|
||
"entitlementsInherit": "electron/entitlements.mac.inherit.plist",
|
||
"extendInfo": {
|
||
"CFBundleDisplayName": "AITURK IDE",
|
||
"CFBundleExecutable": "AITURK-IDE",
|
||
"CFBundleName": "AITURK IDE",
|
||
"NSAudioCaptureUsageDescription": "AITURK IDE uses audio capture for voice conversations.",
|
||
"NSCameraUsageDescription": "AITURK IDE uses the camera when a plugin or feature you enable requests it.",
|
||
"NSMicrophoneUsageDescription": "AITURK IDE uses the microphone for voice input and voice conversations.",
|
||
"NSCalendarsUsageDescription": "AITURK IDE needs access to Calendar to provide requested meeting and scheduling support.",
|
||
"NSCalendarsFullAccessUsageDescription": "AITURK IDE needs full access to Calendar to read and manage events when explicitly requested.",
|
||
"NSRemindersUsageDescription": "AITURK IDE needs access to Reminders to provide requested personal-assistant and scheduling support.",
|
||
"NSRemindersFullAccessUsageDescription": "AITURK IDE needs full access to Reminders to read and manage reminders when explicitly requested.",
|
||
"NSScreenCaptureUsageDescription": "AITURK IDE captures the screen when you ask the agent to screenshot or record it.",
|
||
"NSLocalNetworkUsageDescription": "AITURK IDE connects to devices on your local network when a plugin or feature you enable requests it.",
|
||
"NSAppleMusicUsageDescription": "AITURK IDE accesses your music library when a plugin or feature you enable requests it."
|
||
},
|
||
"gatekeeperAssess": false,
|
||
"hardenedRuntime": true,
|
||
"target": [
|
||
"dmg",
|
||
"zip"
|
||
]
|
||
},
|
||
"dmg": {
|
||
"title": "AITURK IDE Kurulumu",
|
||
"backgroundColor": "#f5f5f7",
|
||
"iconSize": 96,
|
||
"window": {
|
||
"width": 560,
|
||
"height": 360
|
||
},
|
||
"contents": [
|
||
{
|
||
"x": 160,
|
||
"y": 170,
|
||
"type": "file"
|
||
},
|
||
{
|
||
"x": 400,
|
||
"y": 170,
|
||
"type": "link",
|
||
"path": "/Applications"
|
||
}
|
||
]
|
||
},
|
||
"win": {
|
||
"legalTrademarks": "AITURK",
|
||
"target": [
|
||
"nsis",
|
||
"msi"
|
||
],
|
||
"signAndEditExecutable": false,
|
||
"extraResources": [
|
||
{
|
||
"from": "assets/windows/vc-runtime/x64",
|
||
"to": "vc-runtime/x64",
|
||
"filter": [
|
||
"*.dll",
|
||
"manifest.json"
|
||
]
|
||
},
|
||
{
|
||
"from": "assets/codex-bridge",
|
||
"to": "codex-bridge",
|
||
"filter": [
|
||
"jev-settings-defaults.json",
|
||
"compression-defaults.json",
|
||
"**/*.py",
|
||
"**/*.pyd",
|
||
"native-watch.exe",
|
||
"**/LICENSE",
|
||
"!test_*.py"
|
||
]
|
||
}
|
||
]
|
||
},
|
||
"linux": {
|
||
"category": "Development",
|
||
"maintainer": "AITURK / TurkServis",
|
||
"synopsis": "TurkServis AI development environment",
|
||
"target": [
|
||
"AppImage",
|
||
"deb",
|
||
"rpm"
|
||
]
|
||
},
|
||
"nsis": {
|
||
"oneClick": false,
|
||
"allowToChangeInstallationDirectory": true,
|
||
"perMachine": false,
|
||
"shortcutName": "AITURK IDE",
|
||
"uninstallDisplayName": "AITURK IDE",
|
||
"warningsAsErrors": false,
|
||
"installerLanguages": [
|
||
"tr_TR",
|
||
"en_US"
|
||
],
|
||
"language": "1055",
|
||
"license": "assets/NOTICE.txt"
|
||
},
|
||
"copyright": "Copyright © 2026 AITURK; upstream © 2025 Nous Research"
|
||
},
|
||
"license": "MIT",
|
||
"homepage": "https://turkservis.online/ide"
|
||
}
|