@wenathlan/devthink 2.0.97 → 2.0.98

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/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # DevThink release notes
2
2
 
3
+ ## 2.0.98 — the one intro plays everywhere and the taskbar takes the bottom edge
4
+
5
+ ### Added
6
+
7
+ | Area | Change |
8
+ | --- | --- |
9
+ | The distribution rail | The explore landing gains the download rail: the chromium zip, the firefox xpi, the vs code vsix and the provenance set of the immutable tag, with the version riding the build from the root manifest (the __dtversion__ vite define) so the rail never drifts from the shipped envelope. |
10
+ | The one intro doctrine | The intro gate plays the web variant for every build target — web, binary and extension share the same entrance (the owner doctrine: one code, many distributions); the retired per-target variants stay exported beside the anchor. |
11
+ | The auth mica | The authentication stage wears the windows mica (the #1a1f35 bloom radial over #202020) instead of the flat slab. |
12
+
13
+ ### Changed
14
+
15
+ | Area | Change |
16
+ | --- | --- |
17
+ | The taskbar | The shell chrome takes the bottom edge like the real windows 11: the fixed bar with the top hairline, tooltips and the jump list flipping above, the start menu and the tray flyouts rising from the bar, the floating dock retired and the taskbar pins carrying the live window ladder (openApps). |
18
+ | The desktop geometry | The desktop area stops above the bar (the offset parent of the float band), the windows fly into their pins on it and the page shells breathe above the fixed bar. |
19
+
20
+ ### Fixed
21
+
22
+ | Area | Change |
23
+ | --- | --- |
24
+ | The chat window | The desktop chat opens in place as a floating window titled with the derived session name — the dead /chat route target and the session-fragment labels die; the optimistic messages survive the gateway identity frame and the hydration loop of the workspace routes is dead. |
25
+ | The gateway catalog | The engine config leaves the page folder for the repository root (gatewayviewconfig.ts) and the reviewed origins catalog answers the gateway upstreams as data rows. |
26
+ | The maintenance probe | The pnpm pin regex reads the crlf checkout and the acrylic webkit lines deduplicate — the ladder gates see the honest metadata. |
27
+
3
28
  ## 2.0.97 — the windows hands complete every interaction and the stages walk the graphs
4
29
 
5
30
  ### Added
package/bridge.d.ts CHANGED
@@ -428,7 +428,7 @@ import type { jsonrpcframe } from "./types.js";
428
428
  /** The native bridge protocol major version this build speaks: the handshake reports it, the upgrade path keeps compatibility for exactly one major version, and a host that speaks another major version degrades instead of breaking the run. */
429
429
  export declare const nativebridgeprotocolmajor = 1;
430
430
  /** The installer version the installer stamps into the install state; the upgrade path compares it so a manifest written by an older installer reports before it overwrites. */
431
- export declare const nativehostinstallerversion: "2.0.97";
431
+ export declare const nativehostinstallerversion: "2.0.98";
432
432
  /** The generated extension id placeholder the host manifest template carries: the installer replaces the token with the extension id of the installed build, so the template never pins an identity the user did not generate. */
433
433
  export declare const nativehostidplaceholder = "__generated_extension_id__";
434
434
  /** The native messaging directory name of the chromium user profile: the installer writes the host manifest beside it, never into a system directory without the explicit flag. */
package/bridge.js CHANGED
@@ -1,7 +1,7 @@
1
- /*! devthink 2.0.97 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
1
+ /*! devthink 2.0.98 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
2
2
 
3
3
  // version.ts
4
- var packageversion = "2.0.97";
4
+ var packageversion = "2.0.98";
5
5
  var protocolmajor = 2;
6
6
 
7
7
  // types.ts
package/bun.js CHANGED
@@ -1,7 +1,7 @@
1
- /*! devthink 2.0.97 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
1
+ /*! devthink 2.0.98 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
2
2
 
3
3
  // version.ts
4
- var packageversion = "2.0.97";
4
+ var packageversion = "2.0.98";
5
5
  var protocolmajor = 2;
6
6
  var protocolfloormajor = 2;
7
7
 
@@ -46057,7 +46057,7 @@ function onboardingsteps() {
46057
46057
  }
46058
46058
  ];
46059
46059
  }
46060
- function onboardingstart(previous, now) {
46060
+ function onboardingstart(_previous, now) {
46061
46061
  return { stepscompleted: [], done: false, startedat: now };
46062
46062
  }
46063
46063
  function onboardingcomplete(state, stepid, now) {
@@ -46319,7 +46319,9 @@ function focusorderof(controls = reviewdialogorder) {
46319
46319
  }
46320
46320
  if (controls.length === 0) throw new Error("The review dialog focus order needs its controls.");
46321
46321
  const order = controls.map((control, index) => ({ control, tabindex: index + 1 }));
46322
- return { order, focusfirst: controls[0] };
46322
+ const focusfirst = controls[0];
46323
+ if (!focusfirst) throw new Error("The review dialog focus order needs its controls.");
46324
+ return { order, focusfirst };
46323
46325
  }
46324
46326
  function statusbadgeof(input) {
46325
46327
  if (input.planstate === void 0) return { state: "idle", waitingcount: 0 };
@@ -46524,7 +46526,7 @@ function guidedtipdismiss(tips, dismissed, tipid) {
46524
46526
  if (tip === void 0) throw new Error(`The guidedtips know no ${tipid} tip.`);
46525
46527
  return [.../* @__PURE__ */ new Set([...dismissed, tipid])];
46526
46528
  }
46527
- function guidedtiprecall(dismissed) {
46529
+ function guidedtiprecall(_dismissed) {
46528
46530
  return [];
46529
46531
  }
46530
46532
  function pagechipof(input) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "surface": "background",
3
- "release": "2.0.97",
3
+ "release": "2.0.98",
4
4
  "protocolmajor": 2,
5
5
  "messages": [
6
6
  "applyprofile",
package/caps/cli.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "surface": "cli",
3
- "release": "2.0.97",
3
+ "release": "2.0.98",
4
4
  "protocolmajor": 2,
5
5
  "messages": [
6
6
  "commands",
package/caps/library.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "surface": "library",
3
- "release": "2.0.97",
3
+ "release": "2.0.98",
4
4
  "protocolmajor": 2,
5
5
  "messages": [
6
6
  "a11ycapture",
package/caps/mcp.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "surface": "mcp",
3
- "release": "2.0.97",
3
+ "release": "2.0.98",
4
4
  "protocolmajor": 2,
5
5
  "messages": [
6
6
  "browser.a11ytree",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "surface": "pagebridge",
3
- "release": "2.0.97",
3
+ "release": "2.0.98",
4
4
  "protocolmajor": 2,
5
5
  "messages": [
6
6
  "canvasdata",
package/caps/popup.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "surface": "popup",
3
- "release": "2.0.97",
3
+ "release": "2.0.98",
4
4
  "protocolmajor": 2,
5
5
  "messages": [
6
6
  "bridge",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "surface": "sidepanel",
3
- "release": "2.0.97",
3
+ "release": "2.0.98",
4
4
  "protocolmajor": 2,
5
5
  "messages": [
6
6
  "applyprofile",
package/checksums.txt CHANGED
@@ -1,34 +1,34 @@
1
- 8f57b46bec4563de6bdf9bb20fbaab2d0a033dbbe9f61b77e3415ba01ee96d2c CHANGELOG.md
1
+ 10b45cc76616255a87754cfb8efd4622a4aebfab7ed3c3f26021a668d174a745 CHANGELOG.md
2
2
  9dfe38a3b873d150550355596958cc83eb440c6e8ac2e4038dfc5609fc0f8f82 README.md
3
- d09cebc0182b8b7668def793e5a371946993ce27276317618a37911f9610de4f bridge.d.ts
3
+ 52c5a69427e571aad786c1ec3598a5277c51dbe46b2e2a3c2a7c941333f2e7ed bridge.d.ts
4
4
  a6d353d03e0e2d2cb116a057fcab7a2a6e3594290bcf66bc0ff5ea2656757c94 bridge.d.ts.map
5
- fa44e704fba5c8a5ecd67ce34fd5a859d8d793696948b9ad0ecf07c3dbe78e73 bridge.js
5
+ be5c6d35771b4f926f484b15914244879dcdeddddc3566213e23a7918a785f2e bridge.js
6
6
  9557339c2c57fb58212c3b90e8e5934ddba56066a2537d645e4cb34439fdc2ff bun.d.ts
7
7
  601a75f547bb845b8a81fa59a21d560691561eb17d598acb3fd1f4ac8421e424 bun.d.ts.map
8
- 53fb802b1b28071fc5e30a711af05a13f4ed143778dd6fea1645aaea6e8ba049 bun.js
9
- f464259acce20151ebcb1c62d31406f42db69244683785455e87039984d7308d caps/background.json
10
- 1469eabcf2486d0094cbec802bae6f6bf0d490ecc5d56d81497fe958b9ad4b6a caps/cli.json
11
- 1c5475fef33024d67587f5f1fa265ccf4833a8c4976abf05e1a367e1b51bce2a caps/library.json
12
- 00d8159c38f7353c5ba0e9d0869c443cf556e71b25cc322430f836ea18dd557f caps/mcp.json
13
- 84247749fcce757fee2dfde4a966ddb3b89720041be27a45a3d6cd400983fc9d caps/pagebridge.json
14
- 71d5f2c5c52fff6dd3bd0ab872cb8b85e31ab7178ad2ed4aac443e5354acc8c8 caps/popup.json
15
- bf2dddc63ce9149cd3cbdb133f17b1fbb38ea70b71da2281250155026e806380 caps/sidepanel.json
8
+ b8486aa6cf735b0feb46c5f7e257161c487078794bd7b6f7d8f1cf92234245c1 bun.js
9
+ d75e875e56c1ecc095cf100d81faab1e3690daef6d671a2f49cc192566547f86 caps/background.json
10
+ fe334f2dd9da018c786702730c6e802bc31474f6f43dc1c270f5900105f2317d caps/cli.json
11
+ fbbcdbfe4bfd1e23289c109593118e3a536b0cd2bb2a51620cf81e4017e95c41 caps/library.json
12
+ cbcf563a21c1199056d6bf5466cfbe3a963883603785dade54fa2c05ccd9b3e1 caps/mcp.json
13
+ 19cc3ccc39a9b352ac98ce46e9f7db61ce6a126a5dc75b6184c93913676189db caps/pagebridge.json
14
+ 33250c44e04d0dd0411451f87b3e463e88dd6a10c62e42994602054101aff4e5 caps/popup.json
15
+ 1efa59c25918ca83072662d7f661f5f8d843042338d3c898a996b984664b677f caps/sidepanel.json
16
16
  d35d001526d77c8f37371a39146587ea6ad86179167d82862284557adcd70f17 cli.d.ts
17
17
  f7bb3e1903702366effe6c081837b1060c26479740a808f11e0a08ea85e849c9 cli.d.ts.map
18
- 870515b691209f2fbe1bd6da05a6e60f20ace3676db3f526c43bdca35f33ff2f cli.js
18
+ d43978c84cd5e431eda270c21f7d76d95fe48e5fe162061088b5acd914055677 cli.js
19
19
  6d47383663f5efa626bfbc31977bc3df7cfb383725b243ce08057c059234e42f companion.d.ts
20
20
  df25256c8176fc547298c2fb5666bcbf0f01bec284a0dc94f66350f6c29a38be companion.d.ts.map
21
- 98f9b986661305e5abe8f230d52059536d2947349e3d57b299628a448684da3f companion.js
21
+ 4a160c3174c13fea7c01c93666794e60c0f48075c75684febde6ffbcd1ea7822 companion.js
22
22
  85824f4b1603769f1c117b524925f05a42d37f2bcb41e9d4d377e5408615721f crossbrowser.d.ts
23
23
  a7c4cd26ce8402a9ec1d11bd8dab4222d3c73a0e6f84915402c2fd60f8282d95 crossbrowser.d.ts.map
24
- 70021cbb6d613af5b734e7da5b9cfd3208d6cd5c989258e16ef3c5d650711cae crossbrowser.js
24
+ f280349125debade9a622dc86d30f03484b4afaf3e4fc8957f3adb05d113cc68 crossbrowser.js
25
25
  bc8f0d95430875b0fd8aff5c0744580d3dd07c5a0927aad4f2c54d34b83be016 dashdone.d.ts
26
26
  4d7e32ac75985463dd38a5c408e154276c902c1a1a9ba032d610bffc2b89eee5 dashdone.d.ts.map
27
- 0391cfd14347f0b80a78f6155c91cb67b71c47730dafa83f9c4937f9ac55bb9f dashdone.js
27
+ f9bab4981bacd2f3b4cc7966a01d03377c28e337a7f15fd10e961efde76ca885 dashdone.js
28
28
  fea8d906a8c3b0608a9ae4b622c0b88c78d535ed151aa9db29922d817c387495 deno.d.ts
29
29
  3b07bf585688565ff818934d7d38f26c0188fcaf44ddbc8727ad3c76999b826c deno.d.ts.map
30
- d8c5f272097ddf38810f36fb1f27549b6235c8e50cacc980dc5a98e306f1006b deno.js
31
- 052869a06747676d2855b3fd2987878b3f189fc97126717549395dd11072ec56 devthink.umd.js
30
+ d46a8689a9e87e802fce15c473ee86882a7654866a00b4c89494d52b933dd7f2 deno.js
31
+ dd5392560d3cb32d2b933dbf20c258a333abc48a260fceb6f5a878d2af69d3b5 devthink.umd.js
32
32
  d8b6d1f6446da72d359dae978c5495244257dc70660415f8aaad96dd5075e241 fixtures/bun.ts
33
33
  702c21459e5d6d8d0b914a86bb6c3646a0be40e132b2d40cc04f2994cfbd1cf3 fixtures/cjs.js
34
34
  6bd268717a28a23405e5200264d47bb68aaf9c0d6d911674eaa22477bf19d003 fixtures/deno.ts
@@ -86,42 +86,42 @@ c93c417dbf3a43736845e653598624ee48e79f69bf93d36e3b19655e0a23b792 fixtures/recip
86
86
  6b757866f79c4a16098879f7cfffdb85557b7fb6ca4ec7b1c0cd1d1169c3e3c0 gallery.json
87
87
  16f6a0cdd78820a257d0fbb501784ed031dcffcdc4b9841d5279c8273e3776f4 hardening.d.ts
88
88
  eb153f3fa619ca8f59dd8abb598f33213a98026392854a32a7c305a73688bc95 hardening.d.ts.map
89
- 1276c63f68fecf80f9c9f1d858d8edaa06277c819e0cfd18667f7d91003d2b4c hardening.js
89
+ 5d6aec7468c7a6309d96b00878556ceb8f21b9cff4d9569f26fa40fc519c72d5 hardening.js
90
90
  2e560159a8c3b121c91d83545e0dcfa03b79399ed052bc23a425b2d355839362 headless.d.ts
91
91
  f6a7bced8d6b26f05ca971e70aaa177b8be9fb5a7e25a17ab5f2235a8f9ed590 headless.d.ts.map
92
- 5923e934974e9e1621267ec22305873139b16ddd2113539fe1e7634777f78bcf headless.js
92
+ b9bb38a0289d317835818eec7ed1f83111573cd680038ec96b8010afc2704e61 headless.js
93
93
  7aed8c110caffd11caf27d63b993ad71328851905f4faeea2a8e1442eba8e257 http.d.ts
94
94
  b1ab1184756d92fb301a71d5a696ed4cd70bb4953f292002f01930c9e4893024 http.d.ts.map
95
- 6dba627f94d1533cd75d01fc5d1a8d7aaab511c4ed8d577ffcc3202ec1535489 http.js
96
- a1ba39c8ef94ff10429ae375f1484207280bae90670cf773c554a5c5af34ab5c index.cjs
95
+ 5c1342b495f2de99570faaada8b6d5820c0acb91a6e761e1bf0724cdc3a1ee14 http.js
96
+ a50fd600a0cc1096027d5b6a048c8b28d259339b9d6edd59e79a1f06b083e1a2 index.cjs
97
97
  31b2f3e15bb0b8cbef623b438f01bb8424909686424a98dd88366412d063d7ed index.d.ts
98
98
  9398106d8b2277fb1c40892eff062a8cc8e605837d01f191fb783517367860fc index.d.ts.map
99
- cc1da3f4096efc90145a3d90743bfabfa7d7071339b43f0125bdf53de276591c index.js
100
- 6909bf801dfb840c5968448f5d9874c3041b01fcdd8fd6985f59cc65844fdcea index.neutral.js
101
- 05a16ddba14e2988dcca9d7c911dc470d3ac1b1b727ecdd2618213777bd03015 manifest.json
99
+ 70f60d57895a2979b7962e174c7e15b29b584485f72d7bead1aea4b5e3e241de index.js
100
+ ee0456253c281ff93482a1b9b663d5eaa842791da4b1e8b9b1916d8afb1ea663 index.neutral.js
101
+ 6373240b4de634c2f4966a148e40aa54eb1099f24e157d3aa92f2ae3ccb633c9 manifest.json
102
102
  4a4a38d5c2f25f6e33d7fea853a074d4c82dfe5c721506ca4636b1d65c130f10 mcp.d.ts
103
103
  dd22f998da99d77485e863c4e7f1f906bb46dc03ee500efe99a5c09a935f4539 mcp.d.ts.map
104
- 87df915616f857d257d03f71766c8dcfcd575b3b1c8b27ce15d9bd1abc245942 mcp.js
104
+ bc4d233383a82fd7588b98a8484f920453fcbc66ccdb922e4312e0a1ae6150db mcp.js
105
105
  ce98408283eccac2d435ac0e0ceb6bb5456e1eb70edb03a03e347a9f82f99c69 memory.d.ts
106
106
  9f4c19494bb1b2260a4d15c4c2dce4d2b3f5da96f07b8fbe9037f9b5fe31c8e1 memory.d.ts.map
107
- 776210cd2fe5abc8fe7b07fd12cc16f6586b4e088c5c953e94101aef12227b9a memory.js
108
- 9c31d0d4eddf37d3004ee8ceb46b6dfbf4357e9087a0204c9c7c38e7d13e76df nativehost.template.json
109
- 3b75b4fefcaea7b6edd5ddcd6b9d7bf1e0d8d029fb9afee657eb2049b6549699 node.cjs
107
+ 7eac1e1318530939c4596d932d6f1652e7b1a1caf032f6e80584b5928e5fb0a1 memory.js
108
+ 5b197043efe5b195a0d7cb48f7b8f2584138d8f0091dcac6b1e86781db338a42 nativehost.template.json
109
+ d914b6de62eacf045039dd15eb1da476dfb774e1973f6351aea89a63716db3e8 node.cjs
110
110
  705d895c58fe6816958f0fed4bef0a6f79e5fc521ab49d9cf83e0fbcd9d71afe node.d.ts
111
111
  45f4394eca20fc889fe1128059ce20130d26a5ae0d89008a7ca93f0e4d52841b node.d.ts.map
112
112
  5ec83bc409bed888ae13ab55d1f329ac630a3cf2f0db0e2414c28324329c055b pack.d.ts
113
113
  619d43a5239d770c3382af3dd57e2588dd067ded81ca8c106d404e6709324a63 pack.d.ts.map
114
- 2e6e671aa0f451a3981eb60688e4e3f15c885356eeea1e983960a29e9764e1eb pack.js
115
- fc4dc636ebee6c10af6e44d8751d14896bda0064e0496dc3900c44edba57407c package.json
114
+ d42e5ffb6139c4312c142e2bfb2b877143837820438ea12b708e51f8658e2b0e pack.js
115
+ ac95df21190234cd9173a67c03e6d74d7ea8d77e6a957c8108c6c99eb3dd064c package.json
116
116
  e3a2ed944a0bc1ef4943ee250a57e428ce49d781d30de6072571e0bc5d8c0259 policy.d.ts
117
117
  8f4fabc57c883e12ac7c7ab280749dc7c2d402c4fce401bef235c5e451b6975a policy.d.ts.map
118
- 961edaf853cd94671b8bbcfcd798c293dec0f530efd155080a0acc61fd778ab1 policy.js
118
+ e23e2bb2b89bff08298144dfdd4e2014cce87e225c02c7b35969d711fe6cb8e6 policy.js
119
119
  ea621ab35e610fbe8acb8e91f21ed2c74a6b20bba537c5982f31458d6878b90b progress.d.ts
120
120
  33383e690d77faf6f5959846839603079e7f90e1e3dd17cbcc9a4e3fcf1c5641 progress.d.ts.map
121
- 8ea7b1520aa5627cbeaf4e68310debb7c512c40ea9b536352ad188c6bd92c759 progress.js
121
+ 3f48dda73a5b022cc4588f799e672f13f2225e6aa7464fe2c144ab31422e1b71 progress.js
122
122
  d2e54016f0cad51928752882d780066ccf2267d383deb2407ea7b2f97dfd26e7 protocol.d.ts
123
123
  487f8fc63061cb26cbda7f122409d9952810ba3a76b19d147c98d151d4f45d64 protocol.d.ts.map
124
- 4dcc68d3992b8b89e0ee141daacb45f0223daee24a41ef8e5e05dbe81e57c1c0 protocol.js
124
+ 9dc8b1a01697535202f2cfcd9036b187fcf830786824d73183c52b5ab85bd737 protocol.js
125
125
  456c4a26fd65c728f2dcb9e615ec6e4d446d7e4228bfa3f70ce2b17ee3d6a2c2 schemas/audit.schema.json
126
126
  ea272aa6bf4df585ae1ca8ca63e36d7ec713c46187f37ed86ff3620a0e8509b2 schemas/capability.schema.json
127
127
  6e9d2291dc54f7d01463e5f70c8f0793d952a63f4096d61ee4dbc4bfd6f6b0a0 schemas/envelope.schema.json
@@ -134,8 +134,8 @@ d0e0365a7641c0127338c14a5318c4591dc598b7d2a36b7b2944219921d1ce4e schemas/sessio
134
134
  5bb7d16534b52ca3a7171178065fb7b283947accd1b616ce89e330eb7a91b82e schemas/tool.schema.json
135
135
  57dfca40f53706c5c5070ea49068c828ae7cfceab04e1e095b9b466821a9110c server.d.ts
136
136
  e2315b703aaa63041f8907025f810f80c6d6fe39e825815e9564d3a7ac58ea92 server.d.ts.map
137
- ccbc2cfbf8fb2483f70953e010abad81bd53b01ca3bfdd1e9ffe3d3a33cc324d server.js
138
- cd05cb67c70c98bbe8cf07ece6a6ad20235fa65d962667a7a9ab03cea34269f4 umd-example.html
137
+ 5fb9400e15854232d95720c4bbe1be7d5963e6c68889c613ee484bfa54acad0f server.js
138
+ 1e94d064c73966be851f16dc9aaae435af39015b49922515e69569e8b52a9a25 umd-example.html
139
139
  16f66af22e038e4f9328420a0ed0ee34145ca79c938940e8c2e6d232e25a7c09 umd.d.ts
140
140
  ac25f7481155ac9321c5a657e7c4a53570bee8b3f63fe3527045260523a494c8 umd.d.ts.map
141
141
  58e21373cec5ade3e6698da5b36ecc2bf7e7e2f755c6fb5e3a6605b535b93985 manifest.json key
package/cli.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- /*! devthink 2.0.97 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
2
+ /*! devthink 2.0.98 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
3
3
 
4
4
  // cli.ts
5
5
  import { createInterface } from "node:readline/promises";
@@ -569,7 +569,7 @@ function endcall(input) {
569
569
  }
570
570
 
571
571
  // version.ts
572
- var packageversion = "2.0.97";
572
+ var packageversion = "2.0.98";
573
573
  var protocolmajor = 2;
574
574
  var protocolfloormajor = 2;
575
575
 
package/companion.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! devthink 2.0.97 companion — the optional native host of the native bridge — GPL-3.0-only — built with plain node, no native compiler */
1
+ /*! devthink 2.0.98 companion — the optional native host of the native bridge — GPL-3.0-only — built with plain node, no native compiler */
2
2
 
3
3
  // companion.ts
4
4
  import { createHash, randomBytes } from "node:crypto";
@@ -16,7 +16,7 @@ var nativehosttemplatejson = `{
16
16
  "devthinkBanner": "devthink __devthink_version__ native host manifest template \u2014 GPL-3.0-only \u2014 the chromium host manifest of the optional companion process"
17
17
  }
18
18
  `;
19
- var companionbuild = "2.0.97";
19
+ var companionbuild = "2.0.98";
20
20
  var companionprotocol = 1;
21
21
  var companionsurfaces = ["osdialog", "notification"];
22
22
  var maxnativemessage = 1024 * 1024;
package/crossbrowser.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! devthink 2.0.97 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
1
+ /*! devthink 2.0.98 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
2
2
 
3
3
  // crossbrowser.ts
4
4
  var browserpolyfillflags = [
package/dashdone.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! devthink 2.0.97 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
1
+ /*! devthink 2.0.98 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
2
2
 
3
3
  // dashdone.ts
4
4
  function dashboardviewerof(input) {
package/deno.js CHANGED
@@ -1,7 +1,7 @@
1
- /*! devthink 2.0.97 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
1
+ /*! devthink 2.0.98 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
2
2
 
3
3
  // version.ts
4
- var packageversion = "2.0.97";
4
+ var packageversion = "2.0.98";
5
5
  var protocolmajor = 2;
6
6
  var protocolfloormajor = 2;
7
7
 
@@ -46057,7 +46057,7 @@ function onboardingsteps() {
46057
46057
  }
46058
46058
  ];
46059
46059
  }
46060
- function onboardingstart(previous, now) {
46060
+ function onboardingstart(_previous, now) {
46061
46061
  return { stepscompleted: [], done: false, startedat: now };
46062
46062
  }
46063
46063
  function onboardingcomplete(state, stepid, now) {
@@ -46319,7 +46319,9 @@ function focusorderof(controls = reviewdialogorder) {
46319
46319
  }
46320
46320
  if (controls.length === 0) throw new Error("The review dialog focus order needs its controls.");
46321
46321
  const order = controls.map((control, index) => ({ control, tabindex: index + 1 }));
46322
- return { order, focusfirst: controls[0] };
46322
+ const focusfirst = controls[0];
46323
+ if (!focusfirst) throw new Error("The review dialog focus order needs its controls.");
46324
+ return { order, focusfirst };
46323
46325
  }
46324
46326
  function statusbadgeof(input) {
46325
46327
  if (input.planstate === void 0) return { state: "idle", waitingcount: 0 };
@@ -46524,7 +46526,7 @@ function guidedtipdismiss(tips, dismissed, tipid) {
46524
46526
  if (tip === void 0) throw new Error(`The guidedtips know no ${tipid} tip.`);
46525
46527
  return [.../* @__PURE__ */ new Set([...dismissed, tipid])];
46526
46528
  }
46527
- function guidedtiprecall(dismissed) {
46529
+ function guidedtiprecall(_dismissed) {
46528
46530
  return [];
46529
46531
  }
46530
46532
  function pagechipof(input) {
package/devthink.umd.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! devthink 2.0.97 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
1
+ /*! devthink 2.0.98 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
2
2
  (function (root, factory) {
3
3
  if (typeof define === "function" && define.amd) { define([], factory); }
4
4
  else if (typeof module === "object" && module.exports) { module.exports = factory(); }
@@ -2365,7 +2365,7 @@ __export(umd_exports, {
2365
2365
  module.exports = __toCommonJS(umd_exports);
2366
2366
 
2367
2367
  // version.ts
2368
- var packageversion = "2.0.97";
2368
+ var packageversion = "2.0.98";
2369
2369
  var protocolmajor = 2;
2370
2370
  var protocolfloormajor = 2;
2371
2371
 
@@ -48421,7 +48421,7 @@ function onboardingsteps() {
48421
48421
  }
48422
48422
  ];
48423
48423
  }
48424
- function onboardingstart(previous, now) {
48424
+ function onboardingstart(_previous, now) {
48425
48425
  return { stepscompleted: [], done: false, startedat: now };
48426
48426
  }
48427
48427
  function onboardingcomplete(state, stepid, now) {
@@ -48683,7 +48683,9 @@ function focusorderof(controls = reviewdialogorder) {
48683
48683
  }
48684
48684
  if (controls.length === 0) throw new Error("The review dialog focus order needs its controls.");
48685
48685
  const order = controls.map((control, index) => ({ control, tabindex: index + 1 }));
48686
- return { order, focusfirst: controls[0] };
48686
+ const focusfirst = controls[0];
48687
+ if (!focusfirst) throw new Error("The review dialog focus order needs its controls.");
48688
+ return { order, focusfirst };
48687
48689
  }
48688
48690
  function statusbadgeof(input) {
48689
48691
  if (input.planstate === void 0) return { state: "idle", waitingcount: 0 };
@@ -48888,7 +48890,7 @@ function guidedtipdismiss(tips, dismissed, tipid) {
48888
48890
  if (tip === void 0) throw new Error(`The guidedtips know no ${tipid} tip.`);
48889
48891
  return [.../* @__PURE__ */ new Set([...dismissed, tipid])];
48890
48892
  }
48891
- function guidedtiprecall(dismissed) {
48893
+ function guidedtiprecall(_dismissed) {
48892
48894
  return [];
48893
48895
  }
48894
48896
  function pagechipof(input) {
package/hardening.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! devthink 2.0.97 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
1
+ /*! devthink 2.0.98 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
2
2
 
3
3
  // security.ts
4
4
  var maskmarker = "[redacted]";
package/headless.js CHANGED
@@ -1,7 +1,7 @@
1
- /*! devthink 2.0.97 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
1
+ /*! devthink 2.0.98 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
2
2
 
3
3
  // version.ts
4
- var packageversion = "2.0.97";
4
+ var packageversion = "2.0.98";
5
5
  var protocolmajor = 2;
6
6
 
7
7
  // runtime.ts
package/http.js CHANGED
@@ -1,7 +1,7 @@
1
- /*! devthink 2.0.97 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
1
+ /*! devthink 2.0.98 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
2
2
 
3
3
  // version.ts
4
- var packageversion = "2.0.97";
4
+ var packageversion = "2.0.98";
5
5
  var protocolmajor = 2;
6
6
 
7
7
  // types.ts
package/index.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! devthink 2.0.97 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
1
+ /*! devthink 2.0.98 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
2
2
  "use strict";
3
3
  var __defProp = Object.defineProperty;
4
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -2356,7 +2356,7 @@ __export(cjs_exports, {
2356
2356
  module.exports = __toCommonJS(cjs_exports);
2357
2357
 
2358
2358
  // version.ts
2359
- var packageversion = "2.0.97";
2359
+ var packageversion = "2.0.98";
2360
2360
  var protocolmajor = 2;
2361
2361
  var protocolfloormajor = 2;
2362
2362
 
@@ -48412,7 +48412,7 @@ function onboardingsteps() {
48412
48412
  }
48413
48413
  ];
48414
48414
  }
48415
- function onboardingstart(previous, now) {
48415
+ function onboardingstart(_previous, now) {
48416
48416
  return { stepscompleted: [], done: false, startedat: now };
48417
48417
  }
48418
48418
  function onboardingcomplete(state, stepid, now) {
@@ -48674,7 +48674,9 @@ function focusorderof(controls = reviewdialogorder) {
48674
48674
  }
48675
48675
  if (controls.length === 0) throw new Error("The review dialog focus order needs its controls.");
48676
48676
  const order = controls.map((control, index) => ({ control, tabindex: index + 1 }));
48677
- return { order, focusfirst: controls[0] };
48677
+ const focusfirst = controls[0];
48678
+ if (!focusfirst) throw new Error("The review dialog focus order needs its controls.");
48679
+ return { order, focusfirst };
48678
48680
  }
48679
48681
  function statusbadgeof(input) {
48680
48682
  if (input.planstate === void 0) return { state: "idle", waitingcount: 0 };
@@ -48879,7 +48881,7 @@ function guidedtipdismiss(tips, dismissed, tipid) {
48879
48881
  if (tip === void 0) throw new Error(`The guidedtips know no ${tipid} tip.`);
48880
48882
  return [.../* @__PURE__ */ new Set([...dismissed, tipid])];
48881
48883
  }
48882
- function guidedtiprecall(dismissed) {
48884
+ function guidedtiprecall(_dismissed) {
48883
48885
  return [];
48884
48886
  }
48885
48887
  function pagechipof(input) {
package/index.js CHANGED
@@ -1,7 +1,7 @@
1
- /*! devthink 2.0.97 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
1
+ /*! devthink 2.0.98 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
2
2
 
3
3
  // version.ts
4
- var packageversion = "2.0.97";
4
+ var packageversion = "2.0.98";
5
5
  var protocolmajor = 2;
6
6
  var protocolfloormajor = 2;
7
7
 
@@ -46057,7 +46057,7 @@ function onboardingsteps() {
46057
46057
  }
46058
46058
  ];
46059
46059
  }
46060
- function onboardingstart(previous, now) {
46060
+ function onboardingstart(_previous, now) {
46061
46061
  return { stepscompleted: [], done: false, startedat: now };
46062
46062
  }
46063
46063
  function onboardingcomplete(state, stepid, now) {
@@ -46319,7 +46319,9 @@ function focusorderof(controls = reviewdialogorder) {
46319
46319
  }
46320
46320
  if (controls.length === 0) throw new Error("The review dialog focus order needs its controls.");
46321
46321
  const order = controls.map((control, index) => ({ control, tabindex: index + 1 }));
46322
- return { order, focusfirst: controls[0] };
46322
+ const focusfirst = controls[0];
46323
+ if (!focusfirst) throw new Error("The review dialog focus order needs its controls.");
46324
+ return { order, focusfirst };
46323
46325
  }
46324
46326
  function statusbadgeof(input) {
46325
46327
  if (input.planstate === void 0) return { state: "idle", waitingcount: 0 };
@@ -46524,7 +46526,7 @@ function guidedtipdismiss(tips, dismissed, tipid) {
46524
46526
  if (tip === void 0) throw new Error(`The guidedtips know no ${tipid} tip.`);
46525
46527
  return [.../* @__PURE__ */ new Set([...dismissed, tipid])];
46526
46528
  }
46527
- function guidedtiprecall(dismissed) {
46529
+ function guidedtiprecall(_dismissed) {
46528
46530
  return [];
46529
46531
  }
46530
46532
  function pagechipof(input) {
package/index.neutral.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! devthink 2.0.97 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
1
+ /*! devthink 2.0.98 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
2
2
 
3
3
  // debug.ts
4
4
  var cdpkinds = [
@@ -2010,7 +2010,7 @@ function sessionbundleof(input) {
2010
2010
  }
2011
2011
 
2012
2012
  // version.ts
2013
- var packageversion = "2.0.97";
2013
+ var packageversion = "2.0.98";
2014
2014
  var protocolmajor = 2;
2015
2015
  var protocolfloormajor = 2;
2016
2016
 
@@ -39900,7 +39900,7 @@ function onboardingsteps() {
39900
39900
  }
39901
39901
  ];
39902
39902
  }
39903
- function onboardingstart(previous, now) {
39903
+ function onboardingstart(_previous, now) {
39904
39904
  return { stepscompleted: [], done: false, startedat: now };
39905
39905
  }
39906
39906
  function onboardingcomplete(state, stepid, now) {
@@ -40162,7 +40162,9 @@ function focusorderof(controls = reviewdialogorder) {
40162
40162
  }
40163
40163
  if (controls.length === 0) throw new Error("The review dialog focus order needs its controls.");
40164
40164
  const order = controls.map((control, index) => ({ control, tabindex: index + 1 }));
40165
- return { order, focusfirst: controls[0] };
40165
+ const focusfirst = controls[0];
40166
+ if (!focusfirst) throw new Error("The review dialog focus order needs its controls.");
40167
+ return { order, focusfirst };
40166
40168
  }
40167
40169
  function statusbadgeof(input) {
40168
40170
  if (input.planstate === void 0) return { state: "idle", waitingcount: 0 };
@@ -40367,7 +40369,7 @@ function guidedtipdismiss(tips, dismissed, tipid) {
40367
40369
  if (tip === void 0) throw new Error(`The guidedtips know no ${tipid} tip.`);
40368
40370
  return [.../* @__PURE__ */ new Set([...dismissed, tipid])];
40369
40371
  }
40370
- function guidedtiprecall(dismissed) {
40372
+ function guidedtiprecall(_dismissed) {
40371
40373
  return [];
40372
40374
  }
40373
40375
  function pagechipof(input) {
package/manifest.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "manifest_version": 3,
3
3
  "key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnOEjO8Z0PDgQyfvawGcaO2j+o0GLCFTLNj7TkYC/Avo9l2NenMRq7gp90Nfd7E9MViv/OMcCKSYZ5unv12QPRtv31C+a5UQWDFAOP/cH5mwMd6hsayElrSoW8ta+FwFqmr9dIFkn7cQEU3YhZr4Gcbs+ycUHOxVgDA4NBKB0rQ6e9VW5LvTw0isRYUrqM+M72vKxHk9zUIYYn/LGPvottKBYi2GLr0PHSeC2UE+Shmq7vcFIXj6hDjvD4kLJ5sKoUllEcZ1TPuBcnHUQ9ndKA5iktXDQOIJCUJmi7a0YJ2PGg7fvpYfT9k0ai/qZ+pIoRfoOEwE01bPoDn7NjeYnNQIDAQAB",
4
4
  "name": "DevThink",
5
- "version": "2.0.97",
5
+ "version": "2.0.98",
6
6
  "description": "A consent-first bridge for reviewed browser-agent tasks.",
7
7
  "icons": {
8
8
  "16": "icons/16.png",
package/mcp.js CHANGED
@@ -1,7 +1,7 @@
1
- /*! devthink 2.0.97 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
1
+ /*! devthink 2.0.98 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
2
2
 
3
3
  // version.ts
4
- var packageversion = "2.0.97";
4
+ var packageversion = "2.0.98";
5
5
  var protocolmajor = 2;
6
6
  var protocolfloormajor = 2;
7
7
 
package/memory.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! devthink 2.0.97 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
1
+ /*! devthink 2.0.98 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
2
2
 
3
3
  // debug.ts
4
4
  function expireprofilerecords(input) {
@@ -6,5 +6,5 @@
6
6
  "allowed_origins": [
7
7
  "chrome-extension://__generated_extension_id__/"
8
8
  ],
9
- "devthinkBanner": "devthink 2.0.97 native host manifest template — GPL-3.0-only — the chromium host manifest of the optional companion process"
9
+ "devthinkBanner": "devthink 2.0.98 native host manifest template — GPL-3.0-only — the chromium host manifest of the optional companion process"
10
10
  }
package/node.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! devthink 2.0.97 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
1
+ /*! devthink 2.0.98 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
2
2
  "use strict";
3
3
  var __defProp = Object.defineProperty;
4
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -2357,7 +2357,7 @@ __export(node_exports, {
2357
2357
  module.exports = __toCommonJS(node_exports);
2358
2358
 
2359
2359
  // version.ts
2360
- var packageversion = "2.0.97";
2360
+ var packageversion = "2.0.98";
2361
2361
  var protocolmajor = 2;
2362
2362
  var protocolfloormajor = 2;
2363
2363
 
@@ -48413,7 +48413,7 @@ function onboardingsteps() {
48413
48413
  }
48414
48414
  ];
48415
48415
  }
48416
- function onboardingstart(previous, now) {
48416
+ function onboardingstart(_previous, now) {
48417
48417
  return { stepscompleted: [], done: false, startedat: now };
48418
48418
  }
48419
48419
  function onboardingcomplete(state, stepid, now) {
@@ -48675,7 +48675,9 @@ function focusorderof(controls = reviewdialogorder) {
48675
48675
  }
48676
48676
  if (controls.length === 0) throw new Error("The review dialog focus order needs its controls.");
48677
48677
  const order = controls.map((control, index) => ({ control, tabindex: index + 1 }));
48678
- return { order, focusfirst: controls[0] };
48678
+ const focusfirst = controls[0];
48679
+ if (!focusfirst) throw new Error("The review dialog focus order needs its controls.");
48680
+ return { order, focusfirst };
48679
48681
  }
48680
48682
  function statusbadgeof(input) {
48681
48683
  if (input.planstate === void 0) return { state: "idle", waitingcount: 0 };
@@ -48880,7 +48882,7 @@ function guidedtipdismiss(tips, dismissed, tipid) {
48880
48882
  if (tip === void 0) throw new Error(`The guidedtips know no ${tipid} tip.`);
48881
48883
  return [.../* @__PURE__ */ new Set([...dismissed, tipid])];
48882
48884
  }
48883
- function guidedtiprecall(dismissed) {
48885
+ function guidedtiprecall(_dismissed) {
48884
48886
  return [];
48885
48887
  }
48886
48888
  function pagechipof(input) {
package/pack.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! devthink 2.0.97 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
1
+ /*! devthink 2.0.98 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
2
2
 
3
3
  // pack.ts
4
4
  function artifactchannels() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wenathlan/devthink",
3
- "version": "2.0.97",
3
+ "version": "2.0.98",
4
4
  "description": "DevThink is the merged AI development workbench: the provider-owned gateway engine, the DevThink browser extension (the agent surface), the Antigravity engine and the workbench CLI — one product, one binary, one metadata.",
5
5
  "type": "module",
6
6
  "license": "GPL-3.0-only",
@@ -24,19 +24,19 @@
24
24
  "web-workbench"
25
25
  ],
26
26
  "dependencies": {
27
- "@hono/node-server": "^2.1.4",
27
+ "@hono/node-server": "^2.1.5",
28
28
  "@libsql/client": "^0.18.0",
29
- "@prisma/adapter-libsql": "^7.10.0",
30
- "@prisma/client": "^7.10.0",
29
+ "@prisma/adapter-libsql": "^7.10.1",
30
+ "@prisma/client": "^7.10.1",
31
31
  "hono": "^4.13.13",
32
32
  "ink": "^7.1.1",
33
- "react": "^19.3.0",
33
+ "react": "^19.3.1",
34
34
  "react-devtools-core": "^8.0.0",
35
35
  "z-ai-web-dev-sdk": "^0.0.18"
36
36
  },
37
37
  "engines": {
38
38
  "bun": ">=1.4.3 <2",
39
- "node": ">=26.11.1 <27",
39
+ "node": ">=26.12.0 <27",
40
40
  "npm": ">=12.2.0 <13",
41
41
  "deno": ">=2.0.0 <3"
42
42
  },
package/policy.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! devthink 2.0.97 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
1
+ /*! devthink 2.0.98 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
2
2
 
3
3
  // debug.ts
4
4
  var cdpdomains = ["Runtime", "Log", "Debugger", "DOM", "Network", "Page"];
@@ -350,7 +350,7 @@ function sessionrecordvalid(value) {
350
350
  }
351
351
 
352
352
  // version.ts
353
- var packageversion = "2.0.97";
353
+ var packageversion = "2.0.98";
354
354
  var protocolmajor = 2;
355
355
  var protocolfloormajor = 2;
356
356
 
package/progress.js CHANGED
@@ -1,7 +1,7 @@
1
- /*! devthink 2.0.97 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
1
+ /*! devthink 2.0.98 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
2
2
 
3
3
  // version.ts
4
- var packageversion = "2.0.97";
4
+ var packageversion = "2.0.98";
5
5
  var protocolmajor = 2;
6
6
 
7
7
  // progress.ts
package/protocol.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! devthink 2.0.97 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
1
+ /*! devthink 2.0.98 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
2
2
 
3
3
  // debug.ts
4
4
  var cdpdomains = ["Runtime", "Log", "Debugger", "DOM", "Network", "Page"];
@@ -1255,7 +1255,7 @@ function cronvalue(value, min, max, names) {
1255
1255
  }
1256
1256
 
1257
1257
  // version.ts
1258
- var packageversion = "2.0.97";
1258
+ var packageversion = "2.0.98";
1259
1259
  var protocolmajor = 2;
1260
1260
 
1261
1261
  // types.ts
package/server.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! devthink 2.0.97 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
1
+ /*! devthink 2.0.98 — consent-first browser agent library — GPL-3.0-only — https://github.com/wenathlan/devthink */
2
2
  var __defProp = Object.defineProperty;
3
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
4
4
  var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
@@ -18526,7 +18526,7 @@ function cleanSemver(raw) {
18526
18526
  const trimmed = raw.trim();
18527
18527
  if (SEMVER_RE.test(trimmed)) return trimmed;
18528
18528
  const m = trimmed.match(SEMVER_EXTRACT_RE);
18529
- if (m && m[1] && SEMVER_RE.test(m[1])) return m[1];
18529
+ if (m?.[1] && SEMVER_RE.test(m[1])) return m[1];
18530
18530
  return null;
18531
18531
  }
18532
18532
  function compareSemver(a, b) {
@@ -18571,13 +18571,13 @@ function parseVersionFromPayload(payload) {
18571
18571
  if (!payload || typeof payload !== "object") return null;
18572
18572
  const obj = payload;
18573
18573
  const candidates = [
18574
- obj["version"],
18575
- obj["latestVersion"],
18576
- obj["latest"],
18577
- obj["tag_name"],
18578
- obj["name"],
18579
- obj["data"]?.["version"],
18580
- obj["data"]?.["latestVersion"]
18574
+ obj.version,
18575
+ obj.latestVersion,
18576
+ obj.latest,
18577
+ obj.tag_name,
18578
+ obj.name,
18579
+ obj.data?.version,
18580
+ obj.data?.latestVersion
18581
18581
  ];
18582
18582
  for (const cand of candidates) {
18583
18583
  if (typeof cand === "string") {
@@ -18588,7 +18588,7 @@ function parseVersionFromPayload(payload) {
18588
18588
  try {
18589
18589
  const asString = JSON.stringify(payload);
18590
18590
  const m = asString.match(SEMVER_EXTRACT_RE);
18591
- if (m && m[1]) {
18591
+ if (m?.[1]) {
18592
18592
  const cleaned = cleanSemver(m[1]);
18593
18593
  if (cleaned) return cleaned;
18594
18594
  }
@@ -18603,7 +18603,7 @@ function parseAntigravityVersion(raw) {
18603
18603
  const trimmed = raw.trim();
18604
18604
  const m = trimmed.match(/(\d+\.\d+\.\d+(?:\.\d+)?)/);
18605
18605
  if (!m) {
18606
- const cleaned = trimmed.replace(/[^0-9.\-]/g, "");
18606
+ const cleaned = trimmed.replace(/[^0-9.-]/g, "");
18607
18607
  return {
18608
18608
  normalized: cleaned.split("-")[0] || FALLBACK_VERSION,
18609
18609
  full: trimmed
@@ -18737,7 +18737,8 @@ async function writeObserverCacheFileAtomic(cachePath, entry) {
18737
18737
  await fsp3.chmod(dir, OBSERVER_DIR_MODE);
18738
18738
  } catch {
18739
18739
  }
18740
- const content = JSON.stringify(entry, null, 2) + "\n";
18740
+ const content = `${JSON.stringify(entry, null, 2)}
18741
+ `;
18741
18742
  const rand = crypto6.randomBytes(6).toString("hex");
18742
18743
  const tmp = path6.join(dir, `.${path6.basename(cachePath)}.${process.pid}.${rand}.tmp`);
18743
18744
  try {
@@ -18841,20 +18842,22 @@ async function fetchFromChangelog() {
18841
18842
  if (!res.ok) continue;
18842
18843
  const text = await res.text();
18843
18844
  if (!text || text.length < 10) continue;
18844
- let match;
18845
+ let match = versionRegex.exec(text);
18845
18846
  const found = [];
18846
- while ((match = versionRegex.exec(text)) !== null) {
18847
+ while (match !== null) {
18847
18848
  if (match[1]) found.push(match[1]);
18848
18849
  if (found.length >= 10) break;
18850
+ match = versionRegex.exec(text);
18849
18851
  }
18850
18852
  if (found.length === 0) {
18851
- let m2;
18852
- while ((m2 = semverOnly.exec(text)) !== null) {
18853
- if (m2 && m2[1]) {
18853
+ let m2 = semverOnly.exec(text);
18854
+ while (m2 !== null) {
18855
+ if (m2?.[1]) {
18854
18856
  const parts = m2[1].split(".").map(Number);
18855
18857
  if ((parts[0] ?? 0) >= 1) found.push(m2[1]);
18856
18858
  }
18857
18859
  if (found.length >= 20) break;
18860
+ m2 = semverOnly.exec(text);
18858
18861
  }
18859
18862
  }
18860
18863
  if (found.length === 0) continue;
@@ -18963,7 +18966,7 @@ async function fetchAntigravityVersion() {
18963
18966
  for (const p of manifestPromises) {
18964
18967
  try {
18965
18968
  const result = await p;
18966
- if (result && result.version) {
18969
+ if (result?.version) {
18967
18970
  memoryCache = result;
18968
18971
  await writeCacheFile(result);
18969
18972
  return result;
@@ -18973,7 +18976,7 @@ async function fetchAntigravityVersion() {
18973
18976
  }
18974
18977
  try {
18975
18978
  const changelogResult = await fetchFromChangelog();
18976
- if (changelogResult && changelogResult.version) {
18979
+ if (changelogResult?.version) {
18977
18980
  memoryCache = changelogResult;
18978
18981
  await writeCacheFile(changelogResult);
18979
18982
  return changelogResult;
@@ -19085,7 +19088,7 @@ async function getVersion(opts = {}) {
19085
19088
  if (!resolved) {
19086
19089
  try {
19087
19090
  const legacy = await fetchAntigravityVersion();
19088
- if (legacy && legacy.version && legacy.source !== "hardcoded-fallback" && !isBlockedVersion(legacy.version)) {
19091
+ if (legacy?.version && legacy.source !== "hardcoded-fallback" && !isBlockedVersion(legacy.version)) {
19089
19092
  resolved = legacy.version;
19090
19093
  versionMemoryCache.set(MEMORY_CACHE_KEY, {
19091
19094
  version: legacy.version,
package/umd-example.html CHANGED
@@ -1,4 +1,4 @@
1
- <!-- devthink 2.0.97 umd example page — GPL-3.0-only -->
1
+ <!-- devthink 2.0.98 umd example page — GPL-3.0-only -->
2
2
  <!doctype html>
3
3
  <html lang="en">
4
4
  <head>