结构查询键与文本公共前缀
用于稳定比较与用量分析的小型纯函数,不是授权、散列或语义去重系统。
commonPrefixLength 比较字符串的 JS UTF-16 前缀长度,用于稳定前缀分析;它不是 token 数、字符字素数或缓存命中承诺。
retrievalQueryKey 对 JSON 可序列化的对象键排序,再保留数组顺序序列化,适合受控查询结构比较。它不是加密 hash、身份签名或适用于任意 JS 对象的唯一键;Date/Map/函数/循环对象等不属于示例的受控 JSON 查询输入。
由简到繁的同业务示例
比较两个真实输入的稳定前缀
入门 · Node.js
ts
import { commonPrefixLength } from '@jangts/agent-core';
console.log(commonPrefixLength('服务:正常', '服务:繁忙')); // 3js
import { commonPrefixLength } from '@jangts/agent-core';
console.log(commonPrefixLength('服务:正常', '服务:繁忙')); // 3对象键顺序不同,查询语义保持同一结构
配置 · Node.js
ts
import { retrievalQueryKey } from '@jangts/agent-core';
const first = retrievalQueryKey({ query: '服务状态', filters: { region: 'cn', active: true } });
const second = retrievalQueryKey({ filters: { active: true, region: 'cn' }, query: '服务状态' });
console.log(first === second); // true
console.log(retrievalQueryKey({ ids: ['a', 'b'] }) === retrievalQueryKey({ ids: ['b', 'a'] })); // falsejs
import { retrievalQueryKey } from '@jangts/agent-core';
const first = retrievalQueryKey({ query: '服务状态', filters: { region: 'cn', active: true } });
const second = retrievalQueryKey({ filters: { active: true, region: 'cn' }, query: '服务状态' });
console.log(first === second); // true
console.log(retrievalQueryKey({ ids: ['a', 'b'] }) === retrievalQueryKey({ ids: ['b', 'a'] })); // false