theseus/package.json
Local Dev fa2d2f89da Theseus 0.3.120: Pick-AI button opens its list again; "DuckDuckGo AI" renamed to "Duck AI"
The 0.3.106 switch from a native menu to an HTML overlay for Pick AI gave the
overlay a client-side window.blur handler that called api.close(). In the
engine picker (same pattern) the close-on-click-away is driven from main
with a `win.isFocused()` guard, so a focus flicker between the strip view
and the pop does not count as a click-away; the LLM overlay missed that
guard, so Electron's own view-to-view focus flicker on open was enough to
close the picker the moment it opened. From 0.3.106 through 0.3.119 the
Pick-AI button looked like a no-op: it rendered the pop internally (the DOM
was there, 7 rows) but setVisible flipped back off before paint. Users saw
a blank click.

Fix is the same contract the engine, language, downloads and site-info
pickers use: closeOnClickAway on main, no blur handler on the client.
`llmPickerVisible` is tracked alongside setVisible so the gate can read it.
The focus() call on open now runs only when the window is actually focused
(same guard the other overlays use). The raise() call also passed
`primaryW?.win` where a window record was expected, so the view never
re-parented when a secondary window became primary — fixed to pass the
record.

Also renames DuckDuckGo AI → Duck AI in the engine catalog. duck.ai is
Duck's own branded entry for the chat UI and matches what the host lands
on; the longer name was ambiguous next to the DuckDuckGo search entry.
2026-10-27 17:08:33 +02:00

213 lines
5.4 KiB
JSON

{
"name": "theseus-navigator",
"version": "0.3.120",
"license": "MPL-2.0",
"description": "Theseus Navigator — a browser that follows the thread. By Silent Mode, a Deviant project.",
"author": "Silent Mode",
"main": "main.js",
"type": "commonjs",
"scripts": {
"start": "electron .",
"resolve-test": "node resolve-test.mjs",
"dist": "electron-builder --win nsis portable"
},
"dependencies": {
"@bch-wc2/interfaces": "^0.0.16",
"@bitauth/libauth": "^3.1.0-next.8",
"@bitcoinerlab/secp256k1": "^1.2.0",
"@duckduckgo/autoconsent": "^16.42.0",
"@ghostery/adblocker": "^2.18.2",
"@noble/curves": "^2.0.1",
"@noble/hashes": "^2.0.1",
"@scure/bip32": "^2.0.1",
"@wizardconnect/core": "^0.2.4",
"@wizardconnect/wallet": "^0.2.3",
"bip32": "^4.0.0",
"bip39": "^3.1.0",
"bitcoinjs-lib": "^6.1.7",
"ecpair": "^2.1.0",
"eventemitter3": "^5.0.1",
"fetch-socks": "^1.3.3",
"isomorphic-ws": "^5.0.0",
"lossless-json": "^4.0.2",
"nostr-tools": "^2.10.4",
"psl": "^1.15.0",
"socks-proxy-agent": "^10.1.0",
"ws": "^8.18.0"
},
"devDependencies": {
"electron": "^44.4.3",
"electron-builder": "^25.1.8"
},
"build": {
"appId": "st.silentmode.theseus",
"productName": "Theseus Navigator",
"artifactName": "TheseusNavigator-${version}-${arch}.${ext}",
"extraMetadata": {
"description": "Theseus Navigator"
},
"directories": {
"output": "dist-public"
},
"asar": true,
"files": [
"THIRD-PARTY-NOTICES.md",
"LICENSE",
"main.js",
"bns-indexer.js",
"preload.js",
"chrome.html",
"home.html",
"settings.html",
"settings-preload.js",
"popover.html",
"popover-preload.js",
"engine-picker.html",
"engine-picker-preload.js",
"lang-picker.html",
"lang-picker-preload.js",
"downloads.html",
"downloads-preload.js",
"address-picker.html",
"address-picker-preload.js",
"pw-fill.html",
"pw-fill-preload.js",
"home-preload.js",
"error.html",
"error-preload.js",
"sidebar-preload.js",
"approval-preload.js",
"approval.html",
"unlock.html",
"unlock-preload.js",
"theseus-id-preload.js",
"auth-prompt-preload.js",
"auth-prompt.html",
"addon-inject-preload.js",
"addon-tab-preload.js",
"addons-host.js",
"addon-updater.js",
"addon-update-pubkeys.js",
"link-status.html",
"link-status-preload.js",
"collision.html",
"blocked.html",
"collision-preload.js",
"messages.html",
"messages-preload.js",
"bcnr-preload.js",
"no-badge-preload.js",
"bcnr-origin.js",
"webapps.js",
"js-dialog.html",
"js-dialog-preload.js",
"quicklinks.html",
"strip-icons.js",
"quicklinks-preload.js",
"panel-grip-preload.js",
"panel-header.html",
"panel-header-preload.js",
"panel-grip.html",
"engine-icons/**/*",
"home-brand/**/*",
"lib/**/*",
"package.json",
"node_modules/**/*",
"!**/*.md",
"!**/*.map",
"!tor${/*}",
"!dist-public${/*}",
"!resolve-test.mjs",
"!*PROMPT.md"
],
"extraResources": [
{
"from": "tor",
"to": "tor"
},
{
"from": "../Argus/src/lib/resolver-web.js",
"to": "resolver-web.mjs"
},
{
"from": "../Argus/src/lib/password-vault.js",
"to": "password-vault.mjs"
},
{
"from": "../TheseusID/lib",
"to": "theseus-id"
},
{
"from": "../TheseusID/registry/projects.json",
"to": "theseus-id-projects.json"
},
{
"from": "../Argus/src/lib/bns-index-core.js",
"to": "bns-index-core.mjs"
},
{
"from": "../Argus/src/lib/bns-source-chain.js",
"to": "bns-source-chain.mjs"
},
{
"from": "../Argus/src/lib/bns-pipe.js",
"to": "bns-pipe.mjs"
},
{
"from": "lib/hermes.js",
"to": "lib/hermes.mjs"
},
{
"from": "node_modules/nostr-tools",
"to": "node_modules/nostr-tools"
},
{
"from": "node_modules/@noble",
"to": "node_modules/@noble"
},
{
"from": "node_modules/@scure",
"to": "node_modules/@scure"
},
{
"from": "node_modules/nostr-wasm",
"to": "node_modules/nostr-wasm"
},
{
"from": "snapshots/bns-name-snapshot.json",
"to": "bns-name-snapshot.json"
},
{
"from": "bundled-addons",
"to": "bundled-addons"
},
{
"from": "build/icon.ico",
"to": "icon.ico"
}
],
"win": {
"icon": "build/icon.ico",
"target": [
"nsis",
"portable"
]
},
"nsis": {
"oneClick": false,
"perMachine": false,
"allowToChangeInstallationDirectory": true,
"artifactName": "TheseusNavigator-Setup-${version}.${ext}",
"installerIcon": "build/icon.ico",
"uninstallerIcon": "build/icon.ico",
"installerHeaderIcon": "build/icon.ico",
"installerSidebar": "build/installerSidebar.bmp",
"uninstallerSidebar": "build/uninstallerSidebar.bmp",
"installerHeader": "build/installerHeader.bmp"
},
"portable": {
"artifactName": "TheseusNavigator-${version}-portable.${ext}"
}
}
}