@andespindola/brainlink 0.1.0-beta.46 → 0.1.0-beta.47

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.
@@ -500,17 +500,17 @@ const fallbackViewportNodes = () => {
500
500
  return nodes
501
501
  }
502
502
 
503
- const sampleVisibleNodes = (limit = renderNodeBudget) => {
504
- if (state.visibleNodes.length === 0 || limit <= 0) {
503
+ const sampleVisibleNodes = (limit = renderNodeBudget, sourceNodes = state.visibleNodes) => {
504
+ if (sourceNodes.length === 0 || limit <= 0) {
505
505
  return []
506
506
  }
507
507
 
508
508
  const nodes = []
509
- const maxNodes = Math.min(Math.max(limit, 1), state.visibleNodes.length)
510
- const step = Math.max(1, Math.ceil(state.visibleNodes.length / maxNodes))
509
+ const maxNodes = Math.min(Math.max(limit, 1), sourceNodes.length)
510
+ const step = Math.max(1, Math.ceil(sourceNodes.length / maxNodes))
511
511
 
512
- for (let index = 0; index < state.visibleNodes.length && nodes.length < maxNodes; index += step) {
513
- nodes.push(state.visibleNodes[index])
512
+ for (let index = 0; index < sourceNodes.length && nodes.length < maxNodes; index += step) {
513
+ nodes.push(sourceNodes[index])
514
514
  }
515
515
 
516
516
  if (state.selected && !nodes.find(node => node.id === state.selected.id)) {
@@ -983,12 +983,12 @@ const computeRenderVisibility = () => {
983
983
  const sourceNodes = viewportNodes.length > 0 ? viewportNodes : state.visibleNodes
984
984
  const sampleLimit = nodeBudgetForScale(state.transform.scale)
985
985
  const sampled = sourceNodes.length > sampleLimit
986
- ? sampleVisibleNodes(Math.min(sampleLimit, renderNodeBudget))
986
+ ? sampleVisibleNodes(Math.min(sampleLimit, renderNodeBudget), sourceNodes)
987
987
  : sourceNodes.slice(0, Math.min(sourceNodes.length, renderNodeBudget))
988
988
  const sampledIds = new Set(sampled.map((node) => node.id))
989
989
  state.renderClusters = []
990
990
  state.renderNodes = sampled
991
- state.renderEdges = state.transform.scale >= 0.12 ? collectVisibleEdgesForNodes(sampledIds) : []
991
+ state.renderEdges = state.transform.scale >= 0.1 ? collectVisibleEdgesForNodes(sampledIds) : []
992
992
  return
993
993
  }
994
994
 
@@ -1143,9 +1143,15 @@ const render = now => {
1143
1143
  } else {
1144
1144
  state.offscreenFrameCount = 0
1145
1145
  }
1146
+ const minimumEdgeScale =
1147
+ state.nodes.length > massiveGraphNodeThreshold
1148
+ ? 0.1
1149
+ : state.nodes.length > largeGraphNodeThreshold
1150
+ ? 0.16
1151
+ : 0
1146
1152
  const drawEdges =
1147
1153
  state.renderClusters.length === 0 &&
1148
- !(state.nodes.length > largeGraphNodeThreshold && state.transform.scale < 0.22)
1154
+ state.transform.scale >= minimumEdgeScale
1149
1155
  if (drawEdges) {
1150
1156
  state.renderEdges.forEach(edge => {
1151
1157
  const selectedEdge = state.selected && (edge.source === state.selected.id || edge.target === state.selected.id)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@andespindola/brainlink",
3
- "version": "0.1.0-beta.46",
3
+ "version": "0.1.0-beta.47",
4
4
  "description": "Local-first knowledge memory for agents with Markdown, backlinks, indexing and context retrieval.",
5
5
  "type": "module",
6
6
  "license": "MIT",