eddie-jekyll 0.4.2 → 0.4.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 56f4ecc3c1a2439f7ba81a89a21796b77788d41f6c680e33e5a670b9774a88b3
4
- data.tar.gz: 7be39673a95b7f16acfb687b67c895c35ac571eba29ac2bb79c72eae9165f32c
3
+ metadata.gz: e30d936ac2db36dc4550fc319f6363136171ee5ded61ca5bfc6ec018ca05cc5b
4
+ data.tar.gz: dad8345dfabf47b12f8625b63b28d6d8726ce3afe493da9d48a7761b40a24cdb
5
5
  SHA512:
6
- metadata.gz: 6ae9718c1cc120d595d89d4052bdd942870676f3d4ee1dda25d723ed8d7c228505f082726723bd83700af9cfb9b26353a06fdd4926ae4e22ce2bfc437b57ee6a
7
- data.tar.gz: 42b1041cfc4c9cd3060c99551ec9aecc9e352dc3233391aabe6af1b7678252ec8793b980679c0b580641b639ce1ad01dcb1f3c532d64ff0e989dbd9828fa0ac5
6
+ metadata.gz: c426e43b61d61f23e4e5617d75cb533df6f2fc211c8306d04c35d8a6739d71ef432180c299e0c8060e0b8e80496685bd3ebf63ea7a408085eec5294624e39d12
7
+ data.tar.gz: adffe63d3bcf4f8654bd0059c64c4c5524db041288b1eb95489019e76ddefa36b4626872b5e39f7e48618ccbd12fceea3fbd749931bc8eb8934f9399daccd59c
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-only
2
2
  // Generated by widget/build.sh from widget/src/eddie-agent-worker.js and widget/src/lib/*.js; edit those instead.
3
3
  "use strict";
4
- const EDDIE_ASSET_VERSION = "c0fdc503e01a";
4
+ const EDDIE_ASSET_VERSION = "ef9c02c2cb42";
5
5
  const EddieLib = {};
6
6
  // SPDX-License-Identifier: GPL-3.0-only
7
7
 
data/assets/eddie-boot.js CHANGED
@@ -2,7 +2,7 @@
2
2
  // Generated by widget/build.sh from widget/src/eddie-boot.js and widget/src/lib/*.js; edit those instead.
3
3
  (function () {
4
4
  "use strict";
5
- const EDDIE_ASSET_VERSION = "c0fdc503e01a";
5
+ const EDDIE_ASSET_VERSION = "ef9c02c2cb42";
6
6
  const EddieLib = {};
7
7
  // SPDX-License-Identifier: GPL-3.0-only
8
8
 
Binary file
Binary file
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-only
2
2
  // Generated by widget/build.sh from widget/src/eddie-sw.js and widget/src/lib/*.js; edit those instead.
3
3
  "use strict";
4
- const EDDIE_ASSET_VERSION = "c0fdc503e01a";
4
+ const EDDIE_ASSET_VERSION = "ef9c02c2cb42";
5
5
  import * as webllm from "https://cdn.jsdelivr.net/npm/@mlc-ai/web-llm@0.2.84/+esm";
6
6
  const EDDIE_SW_TIER = "agent";
7
7
  const initLiteWasm = null, liteWasmApi = null, EDDIE_LITE_WASM = null,
@@ -1,10 +1,10 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-only
2
2
  // Generated by widget/build.sh from widget/src/eddie-sw.js and widget/src/lib/*.js; edit those instead.
3
3
  "use strict";
4
- const EDDIE_ASSET_VERSION = "c0fdc503e01a";
5
- import initLiteWasm, * as liteWasmApi from "./eddie-lite-esm.js?v=c0fdc503e01a";
4
+ const EDDIE_ASSET_VERSION = "ef9c02c2cb42";
5
+ import initLiteWasm, * as liteWasmApi from "./eddie-lite-esm.js?v=ef9c02c2cb42";
6
6
  const EDDIE_LITE_WASM = "eddie-lite.wasm";
7
- import initDenseWasm, * as denseWasmApi from "./eddie-dense-esm.js?v=c0fdc503e01a";
7
+ import initDenseWasm, * as denseWasmApi from "./eddie-dense-esm.js?v=ef9c02c2cb42";
8
8
  const EDDIE_SW_TIER = "dense";
9
9
  const EDDIE_DENSE_WASM = "eddie-dense.wasm", webllm = null, transformers = null;
10
10
  const EddieLib = {};
@@ -792,7 +792,13 @@ const EddieLib = {};
792
792
  try {
793
793
  state.phase = "loading";
794
794
  await ensureWasm();
795
- await ensureIndex();
795
+ const reload = await ensureIndex();
796
+ // A worker that already holds this index does no fetching and posts
797
+ // nothing, but a page that has just connected to it still has to be
798
+ // told the index is there: `index_ready` is what makes the host
799
+ // searchable, and without it a second page's search box does nothing
800
+ // while the engine sits in awaiting_consent.
801
+ if (!reload) postIndexReady();
796
802
  await ensureDb();
797
803
  await ensureGpu();
798
804
  chooseLanes();
@@ -887,9 +893,10 @@ const EddieLib = {};
887
893
  state.sidecarBytes = Object.create(null);
888
894
  }
889
895
 
896
+ /** Loads the index if this host does not already hold it. True when it fetched. */
890
897
  async function ensureIndex() {
891
898
  if (!state.indexUrl) throw new Error("init: indexUrl is required");
892
- if (state.indexLoaded && state.loadedIndexUrl === state.indexUrl) return;
899
+ if (state.indexLoaded && state.loadedIndexUrl === state.indexUrl) return false;
893
900
  postStatus("loading_index", { progress: null });
894
901
  let last = 0;
895
902
  const bytes = await lib.fetchBytes(state.indexUrl, {
@@ -917,7 +924,17 @@ const EddieLib = {};
917
924
  state.laneIndex = 0;
918
925
  state.gpu = null;
919
926
  state.siteSizes = Object.create(null);
920
- postStatus("index_ready", { manifest: manifestSummary(), lanes: laneList(), hostSkippedLanes: state.hostSkipped.slice() });
927
+ postIndexReady();
928
+ return true;
929
+ }
930
+
931
+ function postIndexReady() {
932
+ if (!state.indexLoaded) return;
933
+ postStatus("index_ready", {
934
+ manifest: manifestSummary(),
935
+ lanes: laneList(),
936
+ hostSkippedLanes: state.hostSkipped.slice(),
937
+ });
921
938
  }
922
939
 
923
940
  async function ensureGpu() {
@@ -1,10 +1,10 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-only
2
2
  // Generated by widget/build.sh from widget/src/eddie-sw.js and widget/src/lib/*.js; edit those instead.
3
3
  "use strict";
4
- const EDDIE_ASSET_VERSION = "c0fdc503e01a";
5
- import initLiteWasm, * as liteWasmApi from "./eddie-lite-esm.js?v=c0fdc503e01a";
4
+ const EDDIE_ASSET_VERSION = "ef9c02c2cb42";
5
+ import initLiteWasm, * as liteWasmApi from "./eddie-lite-esm.js?v=ef9c02c2cb42";
6
6
  const EDDIE_LITE_WASM = "eddie-lite.wasm";
7
- import * as transformers from "./eddie-transformers-sw.js?v=c0fdc503e01a";
7
+ import * as transformers from "./eddie-transformers-sw.js?v=ef9c02c2cb42";
8
8
  const EDDIE_SW_TIER = "gpu";
9
9
  const initDenseWasm = null, denseWasmApi = null, EDDIE_DENSE_WASM = null, webllm = null;
10
10
  const EddieLib = {};
@@ -792,7 +792,13 @@ const EddieLib = {};
792
792
  try {
793
793
  state.phase = "loading";
794
794
  await ensureWasm();
795
- await ensureIndex();
795
+ const reload = await ensureIndex();
796
+ // A worker that already holds this index does no fetching and posts
797
+ // nothing, but a page that has just connected to it still has to be
798
+ // told the index is there: `index_ready` is what makes the host
799
+ // searchable, and without it a second page's search box does nothing
800
+ // while the engine sits in awaiting_consent.
801
+ if (!reload) postIndexReady();
796
802
  await ensureDb();
797
803
  await ensureGpu();
798
804
  chooseLanes();
@@ -887,9 +893,10 @@ const EddieLib = {};
887
893
  state.sidecarBytes = Object.create(null);
888
894
  }
889
895
 
896
+ /** Loads the index if this host does not already hold it. True when it fetched. */
890
897
  async function ensureIndex() {
891
898
  if (!state.indexUrl) throw new Error("init: indexUrl is required");
892
- if (state.indexLoaded && state.loadedIndexUrl === state.indexUrl) return;
899
+ if (state.indexLoaded && state.loadedIndexUrl === state.indexUrl) return false;
893
900
  postStatus("loading_index", { progress: null });
894
901
  let last = 0;
895
902
  const bytes = await lib.fetchBytes(state.indexUrl, {
@@ -917,7 +924,17 @@ const EddieLib = {};
917
924
  state.laneIndex = 0;
918
925
  state.gpu = null;
919
926
  state.siteSizes = Object.create(null);
920
- postStatus("index_ready", { manifest: manifestSummary(), lanes: laneList(), hostSkippedLanes: state.hostSkipped.slice() });
927
+ postIndexReady();
928
+ return true;
929
+ }
930
+
931
+ function postIndexReady() {
932
+ if (!state.indexLoaded) return;
933
+ postStatus("index_ready", {
934
+ manifest: manifestSummary(),
935
+ lanes: laneList(),
936
+ hostSkippedLanes: state.hostSkipped.slice(),
937
+ });
921
938
  }
922
939
 
923
940
  async function ensureGpu() {
@@ -1,8 +1,8 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-only
2
2
  // Generated by widget/build.sh from widget/src/eddie-sw.js and widget/src/lib/*.js; edit those instead.
3
3
  "use strict";
4
- const EDDIE_ASSET_VERSION = "c0fdc503e01a";
5
- import initLiteWasm, * as liteWasmApi from "./eddie-lite-esm.js?v=c0fdc503e01a";
4
+ const EDDIE_ASSET_VERSION = "ef9c02c2cb42";
5
+ import initLiteWasm, * as liteWasmApi from "./eddie-lite-esm.js?v=ef9c02c2cb42";
6
6
  const EDDIE_LITE_WASM = "eddie-lite.wasm";
7
7
  const EDDIE_SW_TIER = "lite";
8
8
  const initDenseWasm = null, denseWasmApi = null, EDDIE_DENSE_WASM = null, webllm = null, transformers = null;
@@ -791,7 +791,13 @@ const EddieLib = {};
791
791
  try {
792
792
  state.phase = "loading";
793
793
  await ensureWasm();
794
- await ensureIndex();
794
+ const reload = await ensureIndex();
795
+ // A worker that already holds this index does no fetching and posts
796
+ // nothing, but a page that has just connected to it still has to be
797
+ // told the index is there: `index_ready` is what makes the host
798
+ // searchable, and without it a second page's search box does nothing
799
+ // while the engine sits in awaiting_consent.
800
+ if (!reload) postIndexReady();
795
801
  await ensureDb();
796
802
  await ensureGpu();
797
803
  chooseLanes();
@@ -886,9 +892,10 @@ const EddieLib = {};
886
892
  state.sidecarBytes = Object.create(null);
887
893
  }
888
894
 
895
+ /** Loads the index if this host does not already hold it. True when it fetched. */
889
896
  async function ensureIndex() {
890
897
  if (!state.indexUrl) throw new Error("init: indexUrl is required");
891
- if (state.indexLoaded && state.loadedIndexUrl === state.indexUrl) return;
898
+ if (state.indexLoaded && state.loadedIndexUrl === state.indexUrl) return false;
892
899
  postStatus("loading_index", { progress: null });
893
900
  let last = 0;
894
901
  const bytes = await lib.fetchBytes(state.indexUrl, {
@@ -916,7 +923,17 @@ const EddieLib = {};
916
923
  state.laneIndex = 0;
917
924
  state.gpu = null;
918
925
  state.siteSizes = Object.create(null);
919
- postStatus("index_ready", { manifest: manifestSummary(), lanes: laneList(), hostSkippedLanes: state.hostSkipped.slice() });
926
+ postIndexReady();
927
+ return true;
928
+ }
929
+
930
+ function postIndexReady() {
931
+ if (!state.indexLoaded) return;
932
+ postStatus("index_ready", {
933
+ manifest: manifestSummary(),
934
+ lanes: laneList(),
935
+ hostSkippedLanes: state.hostSkipped.slice(),
936
+ });
920
937
  }
921
938
 
922
939
  async function ensureGpu() {
@@ -2,7 +2,7 @@
2
2
  // Generated by widget/build.sh from widget/src/eddie-widget.js and widget/src/lib/*.js; edit those instead.
3
3
  (function () {
4
4
  "use strict";
5
- const EDDIE_ASSET_VERSION = "c0fdc503e01a";
5
+ const EDDIE_ASSET_VERSION = "ef9c02c2cb42";
6
6
  const EddieLib = {};
7
7
  // SPDX-License-Identifier: GPL-3.0-only
8
8
 
@@ -2488,6 +2488,13 @@ const EddieLib = {};
2488
2488
  case "consent_required":
2489
2489
  setWorkerState("awaiting_consent");
2490
2490
  rememberLanes(msg);
2491
+ // The index is loaded whenever consent is asked for, so keyword and
2492
+ // sparse search work right now, whatever the visitor decides about
2493
+ // the model. Belt and braces with the engine's index_ready: a host
2494
+ // that never became searchable has a search box that silently does
2495
+ // nothing.
2496
+ searchable = true;
2497
+ resolveInitWaiters();
2491
2498
  showStatus(false);
2492
2499
  pendingConsentLane = msg.lane && msg.lane.id ? msg.lane.id : null;
2493
2500
  pendingConsentKind = msg.lane && msg.lane.kind ? msg.lane.kind : null;
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-only
2
2
  // Generated by widget/build.sh from widget/src/worker.js and widget/src/lib/*.js; edit those instead.
3
3
  "use strict";
4
- const EDDIE_ASSET_VERSION = "c0fdc503e01a";
4
+ const EDDIE_ASSET_VERSION = "ef9c02c2cb42";
5
5
  const EddieLib = {};
6
6
  // SPDX-License-Identifier: GPL-3.0-only
7
7
 
@@ -787,7 +787,13 @@ const EddieLib = {};
787
787
  try {
788
788
  state.phase = "loading";
789
789
  await ensureWasm();
790
- await ensureIndex();
790
+ const reload = await ensureIndex();
791
+ // A worker that already holds this index does no fetching and posts
792
+ // nothing, but a page that has just connected to it still has to be
793
+ // told the index is there: `index_ready` is what makes the host
794
+ // searchable, and without it a second page's search box does nothing
795
+ // while the engine sits in awaiting_consent.
796
+ if (!reload) postIndexReady();
791
797
  await ensureDb();
792
798
  await ensureGpu();
793
799
  chooseLanes();
@@ -882,9 +888,10 @@ const EddieLib = {};
882
888
  state.sidecarBytes = Object.create(null);
883
889
  }
884
890
 
891
+ /** Loads the index if this host does not already hold it. True when it fetched. */
885
892
  async function ensureIndex() {
886
893
  if (!state.indexUrl) throw new Error("init: indexUrl is required");
887
- if (state.indexLoaded && state.loadedIndexUrl === state.indexUrl) return;
894
+ if (state.indexLoaded && state.loadedIndexUrl === state.indexUrl) return false;
888
895
  postStatus("loading_index", { progress: null });
889
896
  let last = 0;
890
897
  const bytes = await lib.fetchBytes(state.indexUrl, {
@@ -912,7 +919,17 @@ const EddieLib = {};
912
919
  state.laneIndex = 0;
913
920
  state.gpu = null;
914
921
  state.siteSizes = Object.create(null);
915
- postStatus("index_ready", { manifest: manifestSummary(), lanes: laneList(), hostSkippedLanes: state.hostSkipped.slice() });
922
+ postIndexReady();
923
+ return true;
924
+ }
925
+
926
+ function postIndexReady() {
927
+ if (!state.indexLoaded) return;
928
+ postStatus("index_ready", {
929
+ manifest: manifestSummary(),
930
+ lanes: laneList(),
931
+ hostSkippedLanes: state.hostSkipped.slice(),
932
+ });
916
933
  }
917
934
 
918
935
  async function ensureGpu() {
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eddie-jekyll
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jason Grey
@@ -18,7 +18,7 @@ dependencies:
18
18
  version: '0.4'
19
19
  - - ">="
20
20
  - !ruby/object:Gem::Version
21
- version: 0.4.2
21
+ version: 0.4.3
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
@@ -28,7 +28,7 @@ dependencies:
28
28
  version: '0.4'
29
29
  - - ">="
30
30
  - !ruby/object:Gem::Version
31
- version: 0.4.2
31
+ version: 0.4.3
32
32
  description: Provides a CLI helper that runs Eddie's Jekyll installer script.
33
33
  executables:
34
34
  - eddie-jekyll-install