acp-kernel 0.0.28 → 0.0.30
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/dist/boundaries.d.ts +1 -0
- package/dist/boundaries.d.ts.map +1 -1
- package/dist/compress.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +165 -55
- package/dist/index.js.map +1 -1
- package/dist/search/algorithms/bm25.d.ts +3 -3
- package/dist/search/algorithms/bm25.d.ts.map +1 -1
- package/dist/search/algorithms/fuzzy.d.ts +14 -4
- package/dist/search/algorithms/fuzzy.d.ts.map +1 -1
- package/dist/search/algorithms/substring.d.ts.map +1 -1
- package/dist/search/doc-cache.d.ts +41 -0
- package/dist/search/doc-cache.d.ts.map +1 -0
- package/dist/search/index.d.ts +2 -0
- package/dist/search/index.d.ts.map +1 -1
- package/dist/search/tokenizer.d.ts +13 -2
- package/dist/search/tokenizer.d.ts.map +1 -1
- package/dist/search.d.ts +2 -0
- package/dist/search.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/boundaries.d.ts
CHANGED
|
@@ -32,6 +32,7 @@ export interface ResolvedRange {
|
|
|
32
32
|
nestedBlockIds: string[];
|
|
33
33
|
boundaryKind: BoundaryKind;
|
|
34
34
|
protectedGaps: number[];
|
|
35
|
+
snappedBoundaries: string[];
|
|
35
36
|
}
|
|
36
37
|
export declare function resolveBoundaries(input: ResolveBoundariesInput): ResolvedRange;
|
|
37
38
|
export declare function earliestIndexOfIds(ids: string[], indexByRawId: Map<string, number>): number | null;
|
package/dist/boundaries.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boundaries.d.ts","sourceRoot":"","sources":["../src/boundaries.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACb;AAKD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAehE;AAED;;;;;;GAMG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,IAAI,wBAAwB;IACrC,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,UAAU,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,KAAK,CAAC;gBAGjC,IAAI,EAAE,SAAS,GAAG,UAAU,EAC5B,QAAQ,EAAE,OAAO,GAAG,KAAK,EACzB,OAAO,EAAE,MAAM;CAQlB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,EAAE,gBAAgB,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"boundaries.d.ts","sourceRoot":"","sources":["../src/boundaries.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACb;AAKD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAehE;AAED;;;;;;GAMG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,IAAI,wBAAwB;IACrC,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,UAAU,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,KAAK,CAAC;gBAGjC,IAAI,EAAE,SAAS,GAAG,UAAU,EAC5B,QAAQ,EAAE,OAAO,GAAG,KAAK,EACzB,OAAO,EAAE,MAAM;CAQlB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,EAAE,gBAAgB,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,sBAAsB,GAC5B,aAAa,CA0Df;AA2GD,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EAAE,EACb,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,MAAM,GAAG,IAAI,CASf;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,gBAAgB,CAMzE"}
|
package/dist/compress.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compress.d.ts","sourceRoot":"","sources":["../src/compress.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAapB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AASvD,OAAO,EAGL,KAAK,YAAY,EAElB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EACV,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAEhB,MAAM,EAEN,WAAW,EAGX,iBAAiB,EAEjB,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,KAAK;IACpB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACxC;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,CAAC;IACxD,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,sBAAsB,CAAC;IACvE,YAAY,IAAI,YAAY,EAAE,CAAC;IAC/B,UAAU,CACR,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,gBAAgB,GACtB,gBAAgB,GAAG,SAAS,CAAC;IAChC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,CAAC;IACnE,MAAM,CACJ,KAAK,EAAE,gBAAgB,EACvB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,YAAY,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,EAAE,CAAC;IACJ,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACnC;
|
|
1
|
+
{"version":3,"file":"compress.d.ts","sourceRoot":"","sources":["../src/compress.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAapB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AASvD,OAAO,EAGL,KAAK,YAAY,EAElB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EACV,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAEhB,MAAM,EAEN,WAAW,EAGX,iBAAiB,EAEjB,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,KAAK;IACpB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACxC;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,CAAC;IACxD,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,sBAAsB,CAAC;IACvE,YAAY,IAAI,YAAY,EAAE,CAAC;IAC/B,UAAU,CACR,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,gBAAgB,GACtB,gBAAgB,GAAG,SAAS,CAAC;IAChC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,gBAAgB,EAAE,CAAC;IACnE,MAAM,CACJ,KAAK,EAAE,gBAAgB,EACvB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,YAAY,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,EAAE,CAAC;IACJ,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACnC;AA2BD,wBAAgB,UAAU,CAAC,KAAK,GAAE,KAAU,GAAG,eAAe,CAyR7D;AAqxBD,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -29,6 +29,7 @@ export type { RenderStrategy } from "./render-refs.js";
|
|
|
29
29
|
export { resolveTransformChannel } from "./transform-channel.js";
|
|
30
30
|
export type { TransformChannel } from "./transform-channel.js";
|
|
31
31
|
export { searchBlocks, searchBlocksAsync, blockDocs, messageDocs } from "./search.js";
|
|
32
|
+
export { clearDocFeatures, docCacheInfo, docFeatures, setDocCacheCap } from "./search.js";
|
|
32
33
|
export type { SearchResult, SearchOptions, SearchAlgorithm, AsyncSearchAlgorithm, AnySearchAlgorithm, SearchDoc, SearchDocKind, ScoredBlock, MessageRole, RoleWeights, MessageInput } from "./search.js";
|
|
33
34
|
export { DEFAULT_ALGORITHM, DEFAULT_ROLE_WEIGHTS, registerSearchAlgorithm, getSearchAlgorithm, listSearchAlgorithms } from "./search.js";
|
|
34
35
|
export { isMessageProtected, matchToolPattern } from "./protected.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -442,8 +442,13 @@ function resolveBoundaries(input) {
|
|
|
442
442
|
input.messages.forEach(
|
|
443
443
|
(message, index) => indexByRawId.set(message.id, index)
|
|
444
444
|
);
|
|
445
|
-
let
|
|
446
|
-
|
|
445
|
+
let snappedBoundaries = [];
|
|
446
|
+
const startAnchor = resolveAnchorIndex(start, input.state, indexByRawId, "start");
|
|
447
|
+
if (startAnchor.snapped) snappedBoundaries.push(startAnchor.snapped);
|
|
448
|
+
const endAnchor = resolveAnchorIndex(end, input.state, indexByRawId, "end");
|
|
449
|
+
if (endAnchor.snapped) snappedBoundaries.push(endAnchor.snapped);
|
|
450
|
+
let startIndex = startAnchor.index;
|
|
451
|
+
let endIndex = endAnchor.index;
|
|
447
452
|
if (startIndex > endIndex) {
|
|
448
453
|
[startIndex, endIndex] = [endIndex, startIndex];
|
|
449
454
|
}
|
|
@@ -471,7 +476,8 @@ function resolveBoundaries(input) {
|
|
|
471
476
|
messageIds,
|
|
472
477
|
nestedBlockIds,
|
|
473
478
|
boundaryKind,
|
|
474
|
-
protectedGaps
|
|
479
|
+
protectedGaps,
|
|
480
|
+
snappedBoundaries
|
|
475
481
|
};
|
|
476
482
|
}
|
|
477
483
|
function resolveAnchorIndex(boundary, state, indexByRawId, endpoint) {
|
|
@@ -486,14 +492,21 @@ function resolveAnchorIndex(boundary, state, indexByRawId, endpoint) {
|
|
|
486
492
|
);
|
|
487
493
|
}
|
|
488
494
|
const index = indexByRawId.get(rawId);
|
|
489
|
-
if (index
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
+
if (index !== void 0) {
|
|
496
|
+
return { index, snapped: null };
|
|
497
|
+
}
|
|
498
|
+
const owner2 = activeOwnerAnchor(state, [rawId], indexByRawId);
|
|
499
|
+
if (owner2 !== null) {
|
|
500
|
+
return {
|
|
501
|
+
index: owner2,
|
|
502
|
+
snapped: `${label}="${boundary.raw}" refers to a message already compressed into an active block \u2014 anchored to that block's summary instead.`
|
|
503
|
+
};
|
|
495
504
|
}
|
|
496
|
-
|
|
505
|
+
throw new BoundaryNotFoundError(
|
|
506
|
+
"consumed",
|
|
507
|
+
endpoint,
|
|
508
|
+
`${label}="${boundary.raw}" not found in visible context (likely consumed by an existing block).`
|
|
509
|
+
);
|
|
497
510
|
}
|
|
498
511
|
const block = blockById(state, `b${boundary.numericId}`);
|
|
499
512
|
if (!block) {
|
|
@@ -503,6 +516,19 @@ function resolveAnchorIndex(boundary, state, indexByRawId, endpoint) {
|
|
|
503
516
|
`${label}="b${boundary.numericId}" does not exist in this session (typo or wrong session) \u2014 run acp_status for current refs.`
|
|
504
517
|
);
|
|
505
518
|
}
|
|
519
|
+
if (block.active) {
|
|
520
|
+
const anchor = earliestIndexOfIds(block.effectiveMessageIds, indexByRawId);
|
|
521
|
+
if (anchor !== null) {
|
|
522
|
+
return { index: anchor, snapped: null };
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
const owner = activeOwnerAnchor(state, block.effectiveMessageIds, indexByRawId);
|
|
526
|
+
if (owner !== null) {
|
|
527
|
+
return {
|
|
528
|
+
index: owner,
|
|
529
|
+
snapped: `${label}="b${boundary.numericId}" was consumed by a higher-tier block \u2014 anchored to the active block covering its content instead.`
|
|
530
|
+
};
|
|
531
|
+
}
|
|
506
532
|
if (!block.active) {
|
|
507
533
|
throw new BoundaryNotFoundError(
|
|
508
534
|
"consumed",
|
|
@@ -510,15 +536,26 @@ function resolveAnchorIndex(boundary, state, indexByRawId, endpoint) {
|
|
|
510
536
|
`${label}="b${boundary.numericId}" not found in visible context (block distilled/consumed by a higher-tier block).`
|
|
511
537
|
);
|
|
512
538
|
}
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
539
|
+
throw new BoundaryNotFoundError(
|
|
540
|
+
"consumed",
|
|
541
|
+
endpoint,
|
|
542
|
+
`${label}="b${boundary.numericId}" not found in visible context (block messages consumed by a higher-tier block).`
|
|
543
|
+
);
|
|
544
|
+
}
|
|
545
|
+
function activeOwnerAnchor(state, ownedIds, indexByRawId) {
|
|
546
|
+
if (ownedIds.length === 0) return null;
|
|
547
|
+
const owned = new Set(ownedIds);
|
|
548
|
+
let best = null;
|
|
549
|
+
for (const block of state.blocks) {
|
|
550
|
+
if (!block.active) continue;
|
|
551
|
+
const anchor = earliestIndexOfIds(block.effectiveMessageIds, indexByRawId);
|
|
552
|
+
if (anchor === null) continue;
|
|
553
|
+
const ownsContent = block.effectiveMessageIds.some((id) => owned.has(id));
|
|
554
|
+
if (ownsContent && (best === null || anchor < best)) {
|
|
555
|
+
best = anchor;
|
|
556
|
+
}
|
|
520
557
|
}
|
|
521
|
-
return
|
|
558
|
+
return best;
|
|
522
559
|
}
|
|
523
560
|
function formatPaddedRef(index) {
|
|
524
561
|
return `m${String(index).padStart(5, "0")}`;
|
|
@@ -1185,6 +1222,10 @@ function runPipeline(nodes, initial, ctx) {
|
|
|
1185
1222
|
function rangeError(spec, message) {
|
|
1186
1223
|
return `range ${spec.startRef}..${spec.endRef}: ${message}`;
|
|
1187
1224
|
}
|
|
1225
|
+
function numericBlockId(id) {
|
|
1226
|
+
const parsed = /^b(\d+)$/.exec(id);
|
|
1227
|
+
return parsed ? Number(parsed[1]) : 0;
|
|
1228
|
+
}
|
|
1188
1229
|
function createCore(ports = {}) {
|
|
1189
1230
|
const countTokens = ports.countTokens ?? defaultCountTokens;
|
|
1190
1231
|
function applyCompression(input) {
|
|
@@ -1230,6 +1271,12 @@ function createCore(ports = {}) {
|
|
|
1230
1271
|
}
|
|
1231
1272
|
}
|
|
1232
1273
|
}
|
|
1274
|
+
let resolvableCount = 0;
|
|
1275
|
+
let unknownCount = 0;
|
|
1276
|
+
for (const resolution of classifications.values()) {
|
|
1277
|
+
if (resolution.status === "ok") resolvableCount++;
|
|
1278
|
+
else if (resolution.status === "unknown") unknownCount++;
|
|
1279
|
+
}
|
|
1233
1280
|
const rangeIndexSets = [];
|
|
1234
1281
|
for (const [spec, resolution] of classifications) {
|
|
1235
1282
|
if (resolution.status !== "ok") continue;
|
|
@@ -1274,7 +1321,9 @@ function createCore(ports = {}) {
|
|
|
1274
1321
|
}
|
|
1275
1322
|
}
|
|
1276
1323
|
if (!hasBlockBoundaryRange && totalRangeChars < input.config.compress.minCompressRange) {
|
|
1277
|
-
const
|
|
1324
|
+
const live = activeBlocks(state).map((b) => b.blockId).sort((x, y) => numericBlockId(x) - numericBlockId(y));
|
|
1325
|
+
const liveHint = live.length > 0 ? ` Current active blocks span ${live[0]}..${live[live.length - 1]} \u2014 retry with startId/endId set to active block IDs in that span.` : "";
|
|
1326
|
+
const gateMessage = resolvableCount === 0 && consumedRanges.length === 0 && unknownCount > 0 ? `None of the ${input.ranges.length} requested range(s) resolved \u2014 every ref failed with "does not exist in this session". Refs recorded before an earlier compress are stale: each successful compress renumbers the remaining refs. Run acp_status, then re-issue the compress in the same turn using only the refs it reports.` : consumedRanges.length > 0 ? `Requested range(s) already compressed (e.g. ${consumedRanges[0].startRef}..${consumedRanges[0].endRef}); remaining compressible content ${totalRangeChars} chars < min ${input.config.compress.minCompressRange}. Nothing to do.${liveHint}` : `Total compressible content too small (${totalRangeChars} chars across ${countedRanges} range(s), min ${input.config.compress.minCompressRange}). Combine more messages into your range(s) to meet the threshold.`;
|
|
1278
1327
|
return {
|
|
1279
1328
|
state: input.state,
|
|
1280
1329
|
result: {
|
|
@@ -1300,6 +1349,7 @@ function createCore(ports = {}) {
|
|
|
1300
1349
|
errors.push(rangeError(spec, resolution.error.message));
|
|
1301
1350
|
continue;
|
|
1302
1351
|
}
|
|
1352
|
+
warnings.push(...resolution.resolved.snappedBoundaries);
|
|
1303
1353
|
try {
|
|
1304
1354
|
const outcome = applySingleRange({
|
|
1305
1355
|
spec,
|
|
@@ -2705,26 +2755,6 @@ function resolveTransformChannel(explicit, wireViable) {
|
|
|
2705
2755
|
return explicit ?? (wireViable ? "wire" : "message");
|
|
2706
2756
|
}
|
|
2707
2757
|
|
|
2708
|
-
// src/search/algorithms/substring.ts
|
|
2709
|
-
var substringAlgorithm = {
|
|
2710
|
-
name: "substring",
|
|
2711
|
-
description: "Exact substring counting (original baseline). Predictable, no normalization.",
|
|
2712
|
-
score(docs, query) {
|
|
2713
|
-
const terms = query.toLowerCase().trim().split(/\s+/).filter((t) => t.length > 0);
|
|
2714
|
-
if (terms.length === 0) return docs.map((d) => ({ ref: d.ref, score: 0 }));
|
|
2715
|
-
return docs.map((d) => {
|
|
2716
|
-
const haystack = d.text.toLowerCase();
|
|
2717
|
-
let score = 0;
|
|
2718
|
-
for (const term of terms) score += countOccurrences2(haystack, term);
|
|
2719
|
-
return { ref: d.ref, score };
|
|
2720
|
-
});
|
|
2721
|
-
}
|
|
2722
|
-
};
|
|
2723
|
-
function countOccurrences2(haystack, needle) {
|
|
2724
|
-
if (!needle) return 0;
|
|
2725
|
-
return haystack.split(needle).length - 1;
|
|
2726
|
-
}
|
|
2727
|
-
|
|
2728
2758
|
// src/search/stemmer.ts
|
|
2729
2759
|
function stem(word) {
|
|
2730
2760
|
let w = word;
|
|
@@ -2746,8 +2776,17 @@ function stem(word) {
|
|
|
2746
2776
|
|
|
2747
2777
|
// src/search/tokenizer.ts
|
|
2748
2778
|
var CJK = /[\u3400-\u9fff\uf900-\ufaff\u3040-\u30ff\uac00-\ud7af]/;
|
|
2749
|
-
var CJK_RUN = new RegExp(`${CJK.source}+`, "g");
|
|
2750
2779
|
var LATIN_WORD = /[a-z][a-z0-9_]*[a-z0-9]|[a-z0-9]/g;
|
|
2780
|
+
var cjkSegmenter = new Intl.Segmenter("zh", { granularity: "word" });
|
|
2781
|
+
function cjkRunTokens(segs) {
|
|
2782
|
+
const words = segs.filter((w) => w.length >= 2);
|
|
2783
|
+
if (words.length > 0) return words;
|
|
2784
|
+
const run = segs.join("");
|
|
2785
|
+
const out = [];
|
|
2786
|
+
for (let i = 0; i < run.length - 1; i++) out.push(run.slice(i, i + 2));
|
|
2787
|
+
for (const ch of run) out.push(ch);
|
|
2788
|
+
return out;
|
|
2789
|
+
}
|
|
2751
2790
|
function tokenize(text, opts = {}) {
|
|
2752
2791
|
const lower = text.toLowerCase();
|
|
2753
2792
|
const tokens = [];
|
|
@@ -2758,15 +2797,23 @@ function tokenize(text, opts = {}) {
|
|
|
2758
2797
|
tokens.push(w);
|
|
2759
2798
|
}
|
|
2760
2799
|
}
|
|
2761
|
-
|
|
2762
|
-
|
|
2763
|
-
|
|
2764
|
-
|
|
2765
|
-
|
|
2766
|
-
|
|
2767
|
-
|
|
2800
|
+
if (!CJK.test(lower)) return tokens;
|
|
2801
|
+
const runSegs = [];
|
|
2802
|
+
let cur = null;
|
|
2803
|
+
for (const s of cjkSegmenter.segment(lower)) {
|
|
2804
|
+
const t = s.segment;
|
|
2805
|
+
if (t.length === 0) continue;
|
|
2806
|
+
if (CJK.test(t)) {
|
|
2807
|
+
(cur ??= []).push(t);
|
|
2808
|
+
} else if (cur) {
|
|
2809
|
+
runSegs.push(cur);
|
|
2810
|
+
cur = null;
|
|
2768
2811
|
}
|
|
2769
2812
|
}
|
|
2813
|
+
if (cur) runSegs.push(cur);
|
|
2814
|
+
for (const segs of runSegs) {
|
|
2815
|
+
tokens.push(...cjkRunTokens(segs));
|
|
2816
|
+
}
|
|
2770
2817
|
return tokens;
|
|
2771
2818
|
}
|
|
2772
2819
|
function charBigrams(text) {
|
|
@@ -2783,6 +2830,69 @@ function tfMap(text, stem2) {
|
|
|
2783
2830
|
return m;
|
|
2784
2831
|
}
|
|
2785
2832
|
|
|
2833
|
+
// src/search/doc-cache.ts
|
|
2834
|
+
var DEFAULT_CAP_CHARS = 8 * 1024 * 1024;
|
|
2835
|
+
var capChars = DEFAULT_CAP_CHARS;
|
|
2836
|
+
var cache = /* @__PURE__ */ new Map();
|
|
2837
|
+
var cachedChars = 0;
|
|
2838
|
+
function build(text) {
|
|
2839
|
+
const tf = tfMap(text, true);
|
|
2840
|
+
let len = 0;
|
|
2841
|
+
for (const v of tf.values()) len += v;
|
|
2842
|
+
const lower = text.toLowerCase();
|
|
2843
|
+
return { tf, len, lower, grams: new Set(charBigrams(lower)) };
|
|
2844
|
+
}
|
|
2845
|
+
function docFeatures(text) {
|
|
2846
|
+
const hit = cache.get(text);
|
|
2847
|
+
if (hit) return hit;
|
|
2848
|
+
const f = build(text);
|
|
2849
|
+
if (text.length > 0 && text.length <= capChars) {
|
|
2850
|
+
while (cachedChars + text.length > capChars && cache.size > 0) {
|
|
2851
|
+
const k = cache.keys().next().value;
|
|
2852
|
+
cachedChars -= k.length;
|
|
2853
|
+
cache.delete(k);
|
|
2854
|
+
}
|
|
2855
|
+
cache.set(text, f);
|
|
2856
|
+
cachedChars += text.length;
|
|
2857
|
+
}
|
|
2858
|
+
return f;
|
|
2859
|
+
}
|
|
2860
|
+
function clearDocFeatures() {
|
|
2861
|
+
cache.clear();
|
|
2862
|
+
cachedChars = 0;
|
|
2863
|
+
}
|
|
2864
|
+
function setDocCacheCap(chars) {
|
|
2865
|
+
capChars = Math.max(1, chars);
|
|
2866
|
+
while (cachedChars > capChars && cache.size > 0) {
|
|
2867
|
+
const k = cache.keys().next().value;
|
|
2868
|
+
cachedChars -= k.length;
|
|
2869
|
+
cache.delete(k);
|
|
2870
|
+
}
|
|
2871
|
+
}
|
|
2872
|
+
function docCacheInfo() {
|
|
2873
|
+
return { entries: cache.size, chars: cachedChars };
|
|
2874
|
+
}
|
|
2875
|
+
|
|
2876
|
+
// src/search/algorithms/substring.ts
|
|
2877
|
+
var substringAlgorithm = {
|
|
2878
|
+
name: "substring",
|
|
2879
|
+
description: "Exact substring counting (original baseline). Predictable, no normalization.",
|
|
2880
|
+
score(docs, query) {
|
|
2881
|
+
const terms = query.toLowerCase().trim().split(/\s+/).filter((t) => t.length > 0);
|
|
2882
|
+
if (terms.length === 0) return docs.map((d) => ({ ref: d.ref, score: 0 }));
|
|
2883
|
+
return docs.map((d) => {
|
|
2884
|
+
const haystack = docFeatures(d.text).lower;
|
|
2885
|
+
let score = 0;
|
|
2886
|
+
for (const term of terms) score += countOccurrences2(haystack, term);
|
|
2887
|
+
return { ref: d.ref, score };
|
|
2888
|
+
});
|
|
2889
|
+
}
|
|
2890
|
+
};
|
|
2891
|
+
function countOccurrences2(haystack, needle) {
|
|
2892
|
+
if (!needle) return 0;
|
|
2893
|
+
return haystack.split(needle).length - 1;
|
|
2894
|
+
}
|
|
2895
|
+
|
|
2786
2896
|
// src/search/algorithms/bm25.ts
|
|
2787
2897
|
var bm25Algorithm = {
|
|
2788
2898
|
name: "bm25",
|
|
@@ -2792,11 +2902,8 @@ var bm25Algorithm = {
|
|
|
2792
2902
|
const k1 = 1.2;
|
|
2793
2903
|
const b = 0.75;
|
|
2794
2904
|
const parsed = docs.map((d) => {
|
|
2795
|
-
const
|
|
2796
|
-
|
|
2797
|
-
let len = 0;
|
|
2798
|
-
for (const v of tf.values()) len += v;
|
|
2799
|
-
return { id: d.ref, tf, len };
|
|
2905
|
+
const f = docFeatures(d.text);
|
|
2906
|
+
return { id: d.ref, tf: f.tf, len: f.len };
|
|
2800
2907
|
});
|
|
2801
2908
|
const avgdl = parsed.reduce((s, d) => s + d.len, 0) / (N || 1);
|
|
2802
2909
|
const qTerms = tokenize(query, { stem: true });
|
|
@@ -2825,14 +2932,13 @@ var fuzzyAlgorithm = {
|
|
|
2825
2932
|
name: "fuzzy",
|
|
2826
2933
|
description: "Character bigram overlap. Typo-tolerant, script-agnostic, high recall.",
|
|
2827
2934
|
score(docs, query) {
|
|
2828
|
-
const qTokens = query.toLowerCase().split(/[\s,]+/).filter((t) => t.length >= 4);
|
|
2935
|
+
const qTokens = query.toLowerCase().split(/[\s,]+/).filter((t) => t.length >= 4 || t.length >= 2 && CJK.test(t));
|
|
2829
2936
|
if (qTokens.length === 0) return docs.map((d) => ({ ref: d.ref, score: 0 }));
|
|
2830
2937
|
const qGrams = /* @__PURE__ */ new Set();
|
|
2831
2938
|
for (const t of qTokens) for (const g of charBigrams(t)) qGrams.add(g);
|
|
2832
2939
|
if (qGrams.size === 0) return docs.map((d) => ({ ref: d.ref, score: 0 }));
|
|
2833
2940
|
return docs.map((d) => {
|
|
2834
|
-
const
|
|
2835
|
-
const docGrams = new Set(charBigrams(haystack));
|
|
2941
|
+
const docGrams = docFeatures(d.text).grams;
|
|
2836
2942
|
let hits = 0;
|
|
2837
2943
|
for (const g of qGrams) if (docGrams.has(g)) hits++;
|
|
2838
2944
|
return { ref: d.ref, score: hits / qGrams.size };
|
|
@@ -3006,6 +3112,7 @@ export {
|
|
|
3006
3112
|
buildRecap,
|
|
3007
3113
|
buildRestoredContentPreview,
|
|
3008
3114
|
buildStatusReport,
|
|
3115
|
+
clearDocFeatures,
|
|
3009
3116
|
clearMessageFilters,
|
|
3010
3117
|
collectBlockContent,
|
|
3011
3118
|
coveredMessageIds,
|
|
@@ -3017,6 +3124,8 @@ export {
|
|
|
3017
3124
|
defaultConfig,
|
|
3018
3125
|
defaultCountTokens,
|
|
3019
3126
|
defaultPrompts,
|
|
3127
|
+
docCacheInfo,
|
|
3128
|
+
docFeatures,
|
|
3020
3129
|
emptyRefMap,
|
|
3021
3130
|
estimateTokensFast,
|
|
3022
3131
|
findActiveAncestor,
|
|
@@ -3052,6 +3161,7 @@ export {
|
|
|
3052
3161
|
runPipeline,
|
|
3053
3162
|
searchBlocks,
|
|
3054
3163
|
searchBlocksAsync,
|
|
3164
|
+
setDocCacheCap,
|
|
3055
3165
|
syncBlocks,
|
|
3056
3166
|
truncateLargeToolOutputs,
|
|
3057
3167
|
validateConfig
|