@xrkseek/harness 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.
- package/node_modules/@xrkseek/core-agent-loop/dist/index.d.ts +6 -0
- package/node_modules/@xrkseek/core-agent-loop/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-agent-loop/dist/index.js +3 -0
- package/node_modules/@xrkseek/core-agent-loop/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/core-agent-loop/dist/tool-result-bound.d.ts +7 -2
- package/node_modules/@xrkseek/core-agent-loop/dist/tool-result-bound.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-agent-loop/dist/tool-result-bound.js +7 -3
- package/node_modules/@xrkseek/core-agent-loop/dist/tool-result-bound.js.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/compaction.d.ts +9 -2
- package/node_modules/@xrkseek/core-session/dist/compaction.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/compaction.js +9 -2
- package/node_modules/@xrkseek/core-session/dist/compaction.js.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/drain-hub.d.ts +2 -2
- package/node_modules/@xrkseek/core-session/dist/drain-hub.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/drain-hub.js +2 -2
- package/node_modules/@xrkseek/core-session/dist/drain-hub.js.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/index.d.ts +1 -1
- package/node_modules/@xrkseek/core-session/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/latch.d.ts +25 -3
- package/node_modules/@xrkseek/core-session/dist/latch.d.ts.map +1 -1
- package/node_modules/@xrkseek/core-session/dist/latch.js +33 -12
- package/node_modules/@xrkseek/core-session/dist/latch.js.map +1 -1
- package/node_modules/@xrkseek/exec-shell/dist/index.d.ts +8 -1
- package/node_modules/@xrkseek/exec-shell/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/exec-shell/dist/index.js +3 -1
- package/node_modules/@xrkseek/exec-shell/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/preset-harness/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@xrkseek/preset-minimal/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@xrkseek/preset-server/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@xrkseek/server-face/dist/context.d.ts +2 -2
- package/node_modules/@xrkseek/server-face/dist/context.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/session.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/handlers/session.js +31 -5
- package/node_modules/@xrkseek/server-face/dist/handlers/session.js.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/subagent-tools.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-face/dist/subagent-tools.js +32 -1
- package/node_modules/@xrkseek/server-face/dist/subagent-tools.js.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/drain-status.d.ts +2 -2
- package/node_modules/@xrkseek/server-host/dist/drain-status.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/drain-status.js +2 -2
- package/node_modules/@xrkseek/server-host/dist/drain-status.js.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/index.d.ts +16 -0
- package/node_modules/@xrkseek/server-host/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-host/dist/index.js +91 -6
- package/node_modules/@xrkseek/server-host/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/audit-community-client.d.ts +13 -0
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/audit-community-client.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/audit-community-client.js +24 -0
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/audit-community-client.js.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-client-scan.d.ts +1 -0
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-client-scan.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-client-scan.js +18 -2
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-client-scan.js.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-compat-matrix.d.ts +6 -0
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-compat-matrix.d.ts.map +1 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-compat-matrix.js +26 -1
- package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-compat-matrix.js.map +1 -1
- package/node_modules/@xrkseek/spill/dist/index.d.ts +1 -1
- package/node_modules/@xrkseek/spill/dist/index.d.ts.map +1 -1
- package/node_modules/@xrkseek/spill/dist/index.js +1 -1
- package/node_modules/@xrkseek/spill/dist/index.js.map +1 -1
- package/node_modules/@xrkseek/spill/dist/policy.d.ts +35 -0
- package/node_modules/@xrkseek/spill/dist/policy.d.ts.map +1 -1
- package/node_modules/@xrkseek/spill/dist/policy.js +45 -4
- package/node_modules/@xrkseek/spill/dist/policy.js.map +1 -1
- package/package.json +1 -1
|
@@ -14,6 +14,12 @@ export declare const DSH_COMPAT_GENERIC_CAPABILITIES: readonly DshCompatCapabili
|
|
|
14
14
|
/**
|
|
15
15
|
* Product gaps / honest stubs that must not be treated as Working.
|
|
16
16
|
* Synced with docs/status.md · docs/community-plugins.md「待补」.
|
|
17
|
+
*
|
|
18
|
+
* coverage semantics:
|
|
19
|
+
* - "missing": DSH ecosystem shape with no landing seat in this repo (real gap).
|
|
20
|
+
* - "honest-stub": deliberately NOT implemented (out of product scope by the
|
|
21
|
+
* "no third-party Host kernel embedding" boundary); the Host answers with an
|
|
22
|
+
* honest envelope instead of faking the shape.
|
|
17
23
|
*/
|
|
18
24
|
export declare const DSH_COMPAT_KNOWN_GAPS: readonly DshCompatCapabilityRow[];
|
|
19
25
|
export declare function listDshCompatGenericIds(): readonly string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dsh-compat-matrix.d.ts","sourceRoot":"","sources":["../../src/dsh-compat/dsh-compat-matrix.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,QAAQ,GAAG,aAAa,GAAG,SAAS,CAAC;AAE9E,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,gFAAgF;AAChF,eAAO,MAAM,+BAA+B,EAAE,SAAS,sBAAsB,EA2PnE,CAAC;AAEX
|
|
1
|
+
{"version":3,"file":"dsh-compat-matrix.d.ts","sourceRoot":"","sources":["../../src/dsh-compat/dsh-compat-matrix.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,QAAQ,GAAG,aAAa,GAAG,SAAS,CAAC;AAE9E,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,gFAAgF;AAChF,eAAO,MAAM,+BAA+B,EAAE,SAAS,sBAAsB,EA2PnE,CAAC;AAEX;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,sBAAsB,EAmBzD,CAAC;AAEX,wBAAgB,uBAAuB,IAAI,SAAS,MAAM,EAAE,CAE3D;AAED,wBAAgB,mBAAmB,IAAI,SAAS,MAAM,EAAE,CAEvD"}
|
|
@@ -244,8 +244,33 @@ export const DSH_COMPAT_GENERIC_CAPABILITIES = [
|
|
|
244
244
|
/**
|
|
245
245
|
* Product gaps / honest stubs that must not be treated as Working.
|
|
246
246
|
* Synced with docs/status.md · docs/community-plugins.md「待补」.
|
|
247
|
+
*
|
|
248
|
+
* coverage semantics:
|
|
249
|
+
* - "missing": DSH ecosystem shape with no landing seat in this repo (real gap).
|
|
250
|
+
* - "honest-stub": deliberately NOT implemented (out of product scope by the
|
|
251
|
+
* "no third-party Host kernel embedding" boundary); the Host answers with an
|
|
252
|
+
* honest envelope instead of faking the shape.
|
|
247
253
|
*/
|
|
248
|
-
export const DSH_COMPAT_KNOWN_GAPS = [
|
|
254
|
+
export const DSH_COMPAT_KNOWN_GAPS = [
|
|
255
|
+
{
|
|
256
|
+
id: "web-panel-global-registry",
|
|
257
|
+
coverage: "missing",
|
|
258
|
+
genericModule: "client ui-layout seat map (src/client/index.ts SlotMap)",
|
|
259
|
+
note: "DSH 0.1.5-alpha.2+ clients register global panels via `sidebar.panellist` and `main` (`main.conversation`); XRK shell only declares sidebar/conversation/details/shell.overlay seats — panellist registrations have no seat to land in.",
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
id: "cordis-dual-half-inspect",
|
|
263
|
+
coverage: "honest-stub",
|
|
264
|
+
genericModule: "cordis-registry · cordis-fiber-runner",
|
|
265
|
+
note: "Official @deepseek-ai/dsh-cordis-host-runner 0.1.6-alpha.2 model-mounted dual-half registry (cordis_inspect_list / cordis_inspect_query + mount/dispose lifecycle) is out of scope: XRK does not embed a third-party Host kernel; fiber fallback stays apply-driven.",
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
id: "third-party-di",
|
|
269
|
+
coverage: "honest-stub",
|
|
270
|
+
genericModule: "cordis-registry",
|
|
271
|
+
note: "Full third-party DI for arbitrary cordis services is not a product goal (Host-native /first-party injections only); unknown service references get an honest envelope, never a fake provider.",
|
|
272
|
+
},
|
|
273
|
+
];
|
|
249
274
|
export function listDshCompatGenericIds() {
|
|
250
275
|
return DSH_COMPAT_GENERIC_CAPABILITIES.map((r) => r.id);
|
|
251
276
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dsh-compat-matrix.js","sourceRoot":"","sources":["../../src/dsh-compat/dsh-compat-matrix.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"dsh-compat-matrix.js","sourceRoot":"","sources":["../../src/dsh-compat/dsh-compat-matrix.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,5 +7,5 @@
|
|
|
7
7
|
*/
|
|
8
8
|
export { SpillLocator, type SpillOwner, type SpillSource, type SaveTextSpill, type SpillRef, type SpillStore, } from "./types.js";
|
|
9
9
|
export { LocalSpillStore, defaultLocalSpillStore, defaultSpillRoot, encodeSpillSegment, resetDefaultLocalSpillStore, type LocalSpillStoreOptions, } from "./local-store.js";
|
|
10
|
-
export { NO_SPILL_TOOLS, DEFAULT_SPILL_INLINE_BYTES, utf8Bytes, utf8Prefix, utf8Suffix, headTail, formatSpillNotice, parseSpillLocator, alreadySavedPath, fitInlineNotice, applySpillPolicy, type ApplySpillPolicyInput, type ApplySpillPolicyResult, } from "./policy.js";
|
|
10
|
+
export { NO_SPILL_TOOLS, DEFAULT_SPILL_INLINE_BYTES, DEFAULT_SPILL_INLINE_TOKENS, estimateSpillTokens, resolveInlineBudget, utf8Bytes, utf8Prefix, utf8Suffix, headTail, formatSpillNotice, parseSpillLocator, alreadySavedPath, fitInlineNotice, applySpillPolicy, type ApplySpillPolicyInput, type ApplySpillPolicyResult, } from "./policy.js";
|
|
11
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,YAAY,EACZ,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,UAAU,GAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,EAClB,2BAA2B,EAC3B,KAAK,sBAAsB,GAC5B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,cAAc,EACd,0BAA0B,EAC1B,SAAS,EACT,UAAU,EACV,UAAU,EACV,QAAQ,EACR,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,GAC5B,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,YAAY,EACZ,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,UAAU,GAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,EAClB,2BAA2B,EAC3B,KAAK,sBAAsB,GAC5B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,cAAc,EACd,0BAA0B,EAC1B,2BAA2B,EAC3B,mBAAmB,EACnB,mBAAmB,EACnB,SAAS,EACT,UAAU,EACV,UAAU,EACV,QAAQ,EACR,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,GAC5B,MAAM,aAAa,CAAC"}
|
|
@@ -7,5 +7,5 @@
|
|
|
7
7
|
*/
|
|
8
8
|
export { SpillLocator, } from "./types.js";
|
|
9
9
|
export { LocalSpillStore, defaultLocalSpillStore, defaultSpillRoot, encodeSpillSegment, resetDefaultLocalSpillStore, } from "./local-store.js";
|
|
10
|
-
export { NO_SPILL_TOOLS, DEFAULT_SPILL_INLINE_BYTES, utf8Bytes, utf8Prefix, utf8Suffix, headTail, formatSpillNotice, parseSpillLocator, alreadySavedPath, fitInlineNotice, applySpillPolicy, } from "./policy.js";
|
|
10
|
+
export { NO_SPILL_TOOLS, DEFAULT_SPILL_INLINE_BYTES, DEFAULT_SPILL_INLINE_TOKENS, estimateSpillTokens, resolveInlineBudget, utf8Bytes, utf8Prefix, utf8Suffix, headTail, formatSpillNotice, parseSpillLocator, alreadySavedPath, fitInlineNotice, applySpillPolicy, } from "./policy.js";
|
|
11
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,YAAY,GAMb,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,EAClB,2BAA2B,GAE5B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,cAAc,EACd,0BAA0B,EAC1B,SAAS,EACT,UAAU,EACV,UAAU,EACV,QAAQ,EACR,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,GAGjB,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,YAAY,GAMb,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,EAClB,2BAA2B,GAE5B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,cAAc,EACd,0BAA0B,EAC1B,2BAA2B,EAC3B,mBAAmB,EACnB,mBAAmB,EACnB,SAAS,EACT,UAAU,EACV,UAAU,EACV,QAAQ,EACR,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,GAGjB,MAAM,aAAa,CAAC"}
|
|
@@ -7,6 +7,20 @@ import type { SpillLocator, SpillRef, SpillStore } from "./types.js";
|
|
|
7
7
|
export declare const NO_SPILL_TOOLS: Set<string>;
|
|
8
8
|
/** Default inline ceiling (UTF-8 bytes); Face may override. */
|
|
9
9
|
export declare const DEFAULT_SPILL_INLINE_BYTES = 64000;
|
|
10
|
+
/**
|
|
11
|
+
* Default inline ceiling in tokens (DSH `maxInlineTokens` semantics).
|
|
12
|
+
* 16_000 tokens ≈ 64_000 UTF-8 bytes of ASCII (~4 bytes/token); multi-byte
|
|
13
|
+
* languages (CJK ~3+ bytes/token) would otherwise be truncated earlier than
|
|
14
|
+
* English at the same byte budget — the token meter makes the ceiling
|
|
15
|
+
* language-neutral. `0` disables spill, same as bytes.
|
|
16
|
+
*/
|
|
17
|
+
export declare const DEFAULT_SPILL_INLINE_TOKENS = 16000;
|
|
18
|
+
/**
|
|
19
|
+
* Fixed-density heuristic token meter (chars/4) — same rule as
|
|
20
|
+
* `@xrkseek/core-session` `surface-estimate.ts`, duplicated locally so
|
|
21
|
+
* `@xrkseek/spill` stays leaf (no core-session dependency).
|
|
22
|
+
*/
|
|
23
|
+
export declare function estimateSpillTokens(text: string): number;
|
|
10
24
|
export declare function utf8Bytes(text: string): number;
|
|
11
25
|
/** Prefix of `text` with at most `maxBytes` UTF-8 bytes (no mid-sequence cut). */
|
|
12
26
|
export declare function utf8Prefix(text: string, maxBytes: number): string;
|
|
@@ -26,6 +40,8 @@ export declare function formatSpillNotice(args: {
|
|
|
26
40
|
* “(omitted ~N bytes…)” prefix so markers stay short.
|
|
27
41
|
*/
|
|
28
42
|
readonly alreadyPersisted?: boolean;
|
|
43
|
+
/** Include a token-denominated omitted hint when the budget was token-based. */
|
|
44
|
+
readonly omittedTokens?: number;
|
|
29
45
|
}): string;
|
|
30
46
|
/**
|
|
31
47
|
* Parse a spill locator from pipeline / loop notices.
|
|
@@ -42,6 +58,14 @@ export interface ApplySpillPolicyInput {
|
|
|
42
58
|
readonly plainText: string;
|
|
43
59
|
/** UTF-8 inline ceiling; omit → {@link DEFAULT_SPILL_INLINE_BYTES}; `0` → no spill. */
|
|
44
60
|
readonly maxInlineBytes?: number;
|
|
61
|
+
/**
|
|
62
|
+
* Token inline ceiling (DSH `maxInlineTokens` semantics). When set, the
|
|
63
|
+
* ceiling is measured on {@link estimateSpillTokens} and the byte budget is
|
|
64
|
+
* derived (`tokens × 4`, plus headroom) before the existing byte-based
|
|
65
|
+
* prefix/suffix cutting — tokens are the budget language, bytes stay the
|
|
66
|
+
* cutting implementation so UTF-8 sequences are never split. Omit → bytes.
|
|
67
|
+
*/
|
|
68
|
+
readonly maxInlineTokens?: number;
|
|
45
69
|
/** Authoritative full-body path from pipeline `outputPaths`. */
|
|
46
70
|
readonly savedPath?: string;
|
|
47
71
|
readonly store: SpillStore;
|
|
@@ -51,6 +75,17 @@ export interface ApplySpillPolicyResult {
|
|
|
51
75
|
readonly spilled: boolean;
|
|
52
76
|
readonly ref?: SpillRef;
|
|
53
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* Resolve the effective byte budget for {@link applySpillPolicy}.
|
|
80
|
+
* `maxInlineTokens` wins when set (DSH semantics: token meter decides whether
|
|
81
|
+
* to spill, byte cutting stays exact); otherwise `maxInlineBytes`; otherwise
|
|
82
|
+
* the byte default. A token budget is widened ×4 (the meter's chars/token)
|
|
83
|
+
* so the byte cutter never has to make the spill decision itself.
|
|
84
|
+
*/
|
|
85
|
+
export declare function resolveInlineBudget(input: {
|
|
86
|
+
readonly maxInlineBytes?: number;
|
|
87
|
+
readonly maxInlineTokens?: number;
|
|
88
|
+
}): number;
|
|
54
89
|
/**
|
|
55
90
|
* Apply spill policy against a {@link SpillStore}.
|
|
56
91
|
* Sync when `store.saveTextSync` exists; otherwise throws (agent-loop needs sync).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGrE,qEAAqE;AACrE,eAAO,MAAM,cAAc,aAA+C,CAAC;AAE3E,+DAA+D;AAC/D,eAAO,MAAM,0BAA0B,QAAS,CAAC;AAEjD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED,kFAAkF;AAClF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAUjE;AAED,4DAA4D;AAC5D,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAUjE;AAED,gEAAgE;AAChE,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAQ7D;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGrE,qEAAqE;AACrE,eAAO,MAAM,cAAc,aAA+C,CAAC;AAE3E,+DAA+D;AAC/D,eAAO,MAAM,0BAA0B,QAAS,CAAC;AAEjD;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,QAAS,CAAC;AAElD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGxD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED,kFAAkF;AAClF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAUjE;AAED,4DAA4D;AAC5D,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAUjE;AAED,gEAAgE;AAChE,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAQ7D;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,gFAAgF;IAChF,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC,GAAG,MAAM,CAcT;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAOxE;AAED,oDAAoD;AACpD,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,KAAG,MAAM,GAAG,SACV,CAAC;AAEhD,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB,MAAM,CAMR;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,uFAAuF;IACvF,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC;;;;;;OAMG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,gEAAgE;IAChE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC;CACzB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC,GAAG,MAAM,CAST;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,qBAAqB,GAC3B,sBAAsB,CA8DxB"}
|
|
@@ -7,6 +7,24 @@ import { SpillLocator as asSpillLocator } from "./types.js";
|
|
|
7
7
|
export const NO_SPILL_TOOLS = new Set(["read_file", "read", "read_image"]);
|
|
8
8
|
/** Default inline ceiling (UTF-8 bytes); Face may override. */
|
|
9
9
|
export const DEFAULT_SPILL_INLINE_BYTES = 64_000;
|
|
10
|
+
/**
|
|
11
|
+
* Default inline ceiling in tokens (DSH `maxInlineTokens` semantics).
|
|
12
|
+
* 16_000 tokens ≈ 64_000 UTF-8 bytes of ASCII (~4 bytes/token); multi-byte
|
|
13
|
+
* languages (CJK ~3+ bytes/token) would otherwise be truncated earlier than
|
|
14
|
+
* English at the same byte budget — the token meter makes the ceiling
|
|
15
|
+
* language-neutral. `0` disables spill, same as bytes.
|
|
16
|
+
*/
|
|
17
|
+
export const DEFAULT_SPILL_INLINE_TOKENS = 16_000;
|
|
18
|
+
/**
|
|
19
|
+
* Fixed-density heuristic token meter (chars/4) — same rule as
|
|
20
|
+
* `@xrkseek/core-session` `surface-estimate.ts`, duplicated locally so
|
|
21
|
+
* `@xrkseek/spill` stays leaf (no core-session dependency).
|
|
22
|
+
*/
|
|
23
|
+
export function estimateSpillTokens(text) {
|
|
24
|
+
if (!text)
|
|
25
|
+
return 0;
|
|
26
|
+
return Math.ceil(text.length / 4);
|
|
27
|
+
}
|
|
10
28
|
export function utf8Bytes(text) {
|
|
11
29
|
return Buffer.byteLength(text, "utf8");
|
|
12
30
|
}
|
|
@@ -59,7 +77,10 @@ export function formatSpillNotice(args) {
|
|
|
59
77
|
if (args.alreadyPersisted) {
|
|
60
78
|
return `Full formatted result stored at: ${loc}. ${hint}\n\n`;
|
|
61
79
|
}
|
|
62
|
-
|
|
80
|
+
const omitted = args.omittedTokens !== undefined
|
|
81
|
+
? `~${args.omittedTokens} tokens`
|
|
82
|
+
: `~${args.omittedBytes} bytes`;
|
|
83
|
+
return (`(omitted ${omitted}. Full formatted result stored at: ${loc}. ` +
|
|
63
84
|
`${hint})\n\n`);
|
|
64
85
|
}
|
|
65
86
|
/**
|
|
@@ -83,6 +104,23 @@ export function fitInlineNotice(notice, plain, maxInline) {
|
|
|
83
104
|
body = utf8Prefix(body, maxInline);
|
|
84
105
|
return body;
|
|
85
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* Resolve the effective byte budget for {@link applySpillPolicy}.
|
|
109
|
+
* `maxInlineTokens` wins when set (DSH semantics: token meter decides whether
|
|
110
|
+
* to spill, byte cutting stays exact); otherwise `maxInlineBytes`; otherwise
|
|
111
|
+
* the byte default. A token budget is widened ×4 (the meter's chars/token)
|
|
112
|
+
* so the byte cutter never has to make the spill decision itself.
|
|
113
|
+
*/
|
|
114
|
+
export function resolveInlineBudget(input) {
|
|
115
|
+
const tokens = input.maxInlineTokens;
|
|
116
|
+
if (tokens !== undefined) {
|
|
117
|
+
const t = Math.max(0, Math.floor(tokens));
|
|
118
|
+
return t === 0 ? 0 : t * 4;
|
|
119
|
+
}
|
|
120
|
+
return input.maxInlineBytes === undefined
|
|
121
|
+
? DEFAULT_SPILL_INLINE_BYTES
|
|
122
|
+
: Math.max(0, Math.floor(input.maxInlineBytes));
|
|
123
|
+
}
|
|
86
124
|
/**
|
|
87
125
|
* Apply spill policy against a {@link SpillStore}.
|
|
88
126
|
* Sync when `store.saveTextSync` exists; otherwise throws (agent-loop needs sync).
|
|
@@ -91,9 +129,7 @@ export function applySpillPolicy(input) {
|
|
|
91
129
|
if (NO_SPILL_TOOLS.has(input.toolName)) {
|
|
92
130
|
return { content: input.plainText, spilled: false };
|
|
93
131
|
}
|
|
94
|
-
const maxInline = input
|
|
95
|
-
? DEFAULT_SPILL_INLINE_BYTES
|
|
96
|
-
: Math.max(0, Math.floor(input.maxInlineBytes));
|
|
132
|
+
const maxInline = resolveInlineBudget(input);
|
|
97
133
|
if (maxInline === 0) {
|
|
98
134
|
return { content: input.plainText, spilled: false };
|
|
99
135
|
}
|
|
@@ -131,6 +167,11 @@ export function applySpillPolicy(input) {
|
|
|
131
167
|
}
|
|
132
168
|
const notice = formatSpillNotice({
|
|
133
169
|
omittedBytes: total - maxInline,
|
|
170
|
+
...(input.maxInlineTokens !== undefined
|
|
171
|
+
? {
|
|
172
|
+
omittedTokens: Math.max(0, estimateSpillTokens(input.plainText) - input.maxInlineTokens),
|
|
173
|
+
}
|
|
174
|
+
: {}),
|
|
134
175
|
ref,
|
|
135
176
|
alreadyPersisted,
|
|
136
177
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,YAAY,IAAI,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5D,qEAAqE;AACrE,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;AAE3E,+DAA+D;AAC/D,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC;AAEjD,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACzC,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,QAAgB;IACvD,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAC7B,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC7C,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC1C,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC7B,OAAO,GAAG,GAAG,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,QAAQ,EAAE,CAAC;QAC5C,GAAG,IAAI,CAAC,CAAC;QACT,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,QAAgB;IACvD,IAAI,QAAQ,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IAC7B,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC7C,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC;IAChD,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5B,OAAO,KAAK,GAAG,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,QAAQ,EAAE,CAAC;QACxD,KAAK,IAAI,CAAC,CAAC;QACX,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,MAAc;IACnD,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,MAAM;QAAE,OAAO,IAAI,CAAC;IAC3C,MAAM,MAAM,GAAG,kCAAkC,CAAC;IAClD,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IACvC,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;AACjF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,
|
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"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"}
|