dsh-fast 0.1.3 → 0.2.0
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/CHANGELOG.md +6 -0
- package/README.es.md +3 -1
- package/README.hi.md +3 -1
- package/README.md +3 -1
- package/README.pt.md +3 -1
- package/README.zh.md +3 -1
- package/lib/index.js +224 -15
- package/lib/types/analyze.d.ts.map +1 -1
- package/lib/types/analyze.js +6 -0
- package/lib/types/analyze.js.map +1 -1
- package/lib/types/collector.d.ts +5 -1
- package/lib/types/collector.d.ts.map +1 -1
- package/lib/types/collector.js +14 -2
- package/lib/types/collector.js.map +1 -1
- package/lib/types/estimate.d.ts +19 -2
- package/lib/types/estimate.d.ts.map +1 -1
- package/lib/types/estimate.js +49 -2
- package/lib/types/estimate.js.map +1 -1
- package/lib/types/index.d.ts +2 -1
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/index.js +34 -8
- package/lib/types/index.js.map +1 -1
- package/lib/types/model.d.ts +23 -1
- package/lib/types/model.d.ts.map +1 -1
- package/lib/types/store.d.ts +22 -0
- package/lib/types/store.d.ts.map +1 -1
- package/lib/types/store.js +14 -0
- package/lib/types/store.js.map +1 -1
- package/lib/types/version.d.ts +1 -1
- package/lib/types/version.js +1 -1
- package/package.json +1 -1
- package/src/analyze.ts +6 -0
- package/src/collector.ts +16 -2
- package/src/estimate.ts +54 -2
- package/src/index.ts +41 -8
- package/src/model.ts +25 -1
- package/src/store.ts +16 -0
- package/src/version.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,12 @@ All notable changes to this project are documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.2.0] - 2026-08-26
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- System prompt bucket breakdown (AGENTS.md / skills / persona).
|
|
13
|
+
|
|
8
14
|
## [0.1.3] - 2026-08-22
|
|
9
15
|
|
|
10
16
|
### Changed
|
package/README.es.md
CHANGED
|
@@ -123,7 +123,9 @@ pnpm pack
|
|
|
123
123
|
|
|
124
124
|
## Contributors
|
|
125
125
|
|
|
126
|
-
`dsh-fast
|
|
126
|
+
Gracias a todas las personas que han contribuido a `dsh-fast`:
|
|
127
|
+
|
|
128
|
+
- **[PerryLink](https://github.com/PerryLink)** — autor y mantenedor: diseñó y construyó los diagnósticos de solo lectura (latencia de carga de sesión, recuentos de spill, métricas de compactación, volumen de inyección de contexto, tasa de aciertos de la caché LLM), el comando `/fast` y la herramienta `fast_report`, el dominio de almacenamiento `dsh_fast` y la documentación en cinco idiomas.
|
|
127
129
|
|
|
128
130
|
## PerryLink DSH Plugin Family
|
|
129
131
|
|
package/README.hi.md
CHANGED
|
@@ -123,7 +123,9 @@ pnpm pack
|
|
|
123
123
|
|
|
124
124
|
## Contributors
|
|
125
125
|
|
|
126
|
-
`dsh-fast`
|
|
126
|
+
`dsh-fast` में योगदान देने वाले सभी लोगों का धन्यवाद:
|
|
127
|
+
|
|
128
|
+
- **[PerryLink](https://github.com/PerryLink)** — लेखक और अनुरक्षक: रीड-ओनली डायग्नोस्टिक्स (सेशन-लोड विलंब, स्पिल-हिट गणना, कम्पैक्शन मीट्रिक्स, कॉन्टेक्स्ट-इंजेक्शन वॉल्यूम, LLM कैश हिट रेट), `/fast` कमांड और `fast_report` टूल, `dsh_fast` स्टोरेज डोमेन तथा पाँच-भाषा दस्तावेज़ का डिज़ाइन व निर्माण किया।
|
|
127
129
|
|
|
128
130
|
## PerryLink DSH Plugin Family
|
|
129
131
|
|
package/README.md
CHANGED
|
@@ -124,7 +124,9 @@ pnpm pack
|
|
|
124
124
|
|
|
125
125
|
## Contributors
|
|
126
126
|
|
|
127
|
-
`dsh-fast
|
|
127
|
+
Thanks to everyone who has contributed to `dsh-fast`:
|
|
128
|
+
|
|
129
|
+
- **[PerryLink](https://github.com/PerryLink)** — author and maintainer: designed and built the read-only diagnostics (session-load timing, spill-hit counts, compaction metrics, context-injection volume, LLM cache hit rate), the `/fast` command and `fast_report` tool, the `dsh_fast` storage domain, and the five-language documentation.
|
|
128
130
|
|
|
129
131
|
## PerryLink DSH Plugin Family
|
|
130
132
|
|
package/README.pt.md
CHANGED
|
@@ -123,7 +123,9 @@ pnpm pack
|
|
|
123
123
|
|
|
124
124
|
## Contributors
|
|
125
125
|
|
|
126
|
-
`dsh-fast
|
|
126
|
+
Obrigado a todas as pessoas que contribuíram com o `dsh-fast`:
|
|
127
|
+
|
|
128
|
+
- **[PerryLink](https://github.com/PerryLink)** — autor e mantenedor: projetou e construiu os diagnósticos somente leitura (latência de carregamento de sessão, contagens de spill, métricas de compactação, volume de injeção de contexto, taxa de acertos de cache do LLM), o comando `/fast` e a ferramenta `fast_report`, o domínio de armazenamento `dsh_fast` e a documentação em cinco idiomas.
|
|
127
129
|
|
|
128
130
|
## PerryLink DSH Plugin Family
|
|
129
131
|
|
package/README.zh.md
CHANGED
|
@@ -123,7 +123,9 @@ pnpm pack
|
|
|
123
123
|
|
|
124
124
|
## Contributors
|
|
125
125
|
|
|
126
|
-
`dsh-fast`
|
|
126
|
+
感谢所有为 `dsh-fast` 做出贡献的人:
|
|
127
|
+
|
|
128
|
+
- **[PerryLink](https://github.com/PerryLink)** —— 作者与维护者:设计并实现了只读诊断(会话加载耗时、spill 命中统计、compaction 指标、上下文注入体量、LLM 缓存命中率)、`/fast` 命令与 `fast_report` 工具、`dsh_fast` 存储域以及五语文档。
|
|
127
129
|
|
|
128
130
|
## PerryLink DSH Plugin Family
|
|
129
131
|
|
package/lib/index.js
CHANGED
|
@@ -97,9 +97,70 @@ const CHARS_PER_TOKEN = 4;
|
|
|
97
97
|
const ROLE_OVERHEAD = 4;
|
|
98
98
|
/** Per-block structural overhead for JSON framing and type tags. */
|
|
99
99
|
const BLOCK_OVERHEAD = 4;
|
|
100
|
+
/** Which tracked bucket a section name belongs to. */
|
|
101
|
+
function bucketOf(name) {
|
|
102
|
+
if (name === "deployment:persona") return "persona";
|
|
103
|
+
if (name.toLowerCase().includes("skill")) return "skills";
|
|
104
|
+
if (/agent|instructions?/iu.test(name)) return "agentsMd";
|
|
105
|
+
return "other";
|
|
106
|
+
}
|
|
107
|
+
/** An empty breakdown (all buckets zeroed). */
|
|
108
|
+
function emptyBreakdown() {
|
|
109
|
+
return {
|
|
110
|
+
agentsMd: {
|
|
111
|
+
tokens: 0,
|
|
112
|
+
chars: 0,
|
|
113
|
+
share: 0
|
|
114
|
+
},
|
|
115
|
+
skills: {
|
|
116
|
+
tokens: 0,
|
|
117
|
+
chars: 0,
|
|
118
|
+
share: 0
|
|
119
|
+
},
|
|
120
|
+
persona: {
|
|
121
|
+
tokens: 0,
|
|
122
|
+
chars: 0,
|
|
123
|
+
share: 0
|
|
124
|
+
},
|
|
125
|
+
other: {
|
|
126
|
+
tokens: 0,
|
|
127
|
+
chars: 0,
|
|
128
|
+
share: 0
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
}
|
|
100
132
|
/**
|
|
101
|
-
*
|
|
102
|
-
*
|
|
133
|
+
* Classify the named system-prompt sections into the AGENTS.md / skills /
|
|
134
|
+
* persona / other buckets, with heuristic tokens and per-bucket shares. The
|
|
135
|
+
* caller supplies either the real assembled sections (via the optional
|
|
136
|
+
* `systemPrompt` service) or a single synthetic `{ name: 'other' }` section
|
|
137
|
+
* carrying the rendered prompt, so the breakdown always sums to the system
|
|
138
|
+
* prompt.
|
|
139
|
+
* @param sections - named sections (never empty in practice).
|
|
140
|
+
* @returns the per-bucket breakdown.
|
|
141
|
+
*/
|
|
142
|
+
function classifySystemSections(sections) {
|
|
143
|
+
const breakdown = emptyBreakdown();
|
|
144
|
+
for (const section of sections) {
|
|
145
|
+
const chars = section.text.length;
|
|
146
|
+
if (chars === 0) continue;
|
|
147
|
+
const bucket = breakdown[bucketOf(section.name)];
|
|
148
|
+
bucket.chars += chars;
|
|
149
|
+
bucket.tokens += Math.ceil(chars / CHARS_PER_TOKEN);
|
|
150
|
+
}
|
|
151
|
+
const total = breakdown.agentsMd.tokens + breakdown.skills.tokens + breakdown.persona.tokens + breakdown.other.tokens;
|
|
152
|
+
if (total <= 0) return breakdown;
|
|
153
|
+
for (const bucket of [
|
|
154
|
+
breakdown.agentsMd,
|
|
155
|
+
breakdown.skills,
|
|
156
|
+
breakdown.persona,
|
|
157
|
+
breakdown.other
|
|
158
|
+
]) bucket.share = bucket.tokens / total;
|
|
159
|
+
return breakdown;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Price the assembled system prompt (harness identity + persona + tool
|
|
163
|
+
* guidance + plugin sections).
|
|
103
164
|
* @param header - canonical request envelope, or undefined before any request.
|
|
104
165
|
* @returns heuristic system-prompt tokens; 0 when absent.
|
|
105
166
|
*/
|
|
@@ -234,9 +295,12 @@ var FastCollector = class {
|
|
|
234
295
|
* the optional token meter is consulted, so it never runs in the append path.
|
|
235
296
|
* @param session - the session to snapshot.
|
|
236
297
|
* @param measure - optional token-meter measure function.
|
|
298
|
+
* @param sections - optional named system-prompt sections (from the optional
|
|
299
|
+
* `systemPrompt` service); absent = the whole rendered system prompt is
|
|
300
|
+
* attributed to the `other` bucket.
|
|
237
301
|
* @returns the snapshot.
|
|
238
302
|
*/
|
|
239
|
-
snapshot(session, measure) {
|
|
303
|
+
snapshot(session, measure, sections) {
|
|
240
304
|
const state = this.live.get(session);
|
|
241
305
|
if (state === void 0) return emptySnapshot();
|
|
242
306
|
const measurement = measure === void 0 ? void 0 : measure(session);
|
|
@@ -244,6 +308,11 @@ var FastCollector = class {
|
|
|
244
308
|
const toolSchemaTokens = estimateToolsTokens(state.lastHeader);
|
|
245
309
|
const surfaceTokens = measurement?.surfaceTokens ?? 0;
|
|
246
310
|
const totalTokens = measurement?.totalTokens ?? systemTokens + toolSchemaTokens + surfaceTokens;
|
|
311
|
+
const systemChars = state.lastHeader?.system?.length ?? 0;
|
|
312
|
+
const systemBreakdown = classifySystemSections(sections ?? (systemChars > 0 ? [{
|
|
313
|
+
name: "other",
|
|
314
|
+
text: state.lastHeader.system
|
|
315
|
+
}] : []));
|
|
247
316
|
return {
|
|
248
317
|
load: {
|
|
249
318
|
kind: state.kind,
|
|
@@ -265,7 +334,8 @@ var FastCollector = class {
|
|
|
265
334
|
systemTokens,
|
|
266
335
|
toolSchemaTokens,
|
|
267
336
|
surfaceTokens,
|
|
268
|
-
...sharesOf(totalTokens, systemTokens, toolSchemaTokens, surfaceTokens)
|
|
337
|
+
...sharesOf(totalTokens, systemTokens, toolSchemaTokens, surfaceTokens),
|
|
338
|
+
systemBreakdown
|
|
269
339
|
},
|
|
270
340
|
cache: this.cacheStats(state)
|
|
271
341
|
};
|
|
@@ -340,7 +410,29 @@ function emptySnapshot() {
|
|
|
340
410
|
surfaceTokens: 0,
|
|
341
411
|
systemShare: 0,
|
|
342
412
|
toolsShare: 0,
|
|
343
|
-
surfaceShare: 0
|
|
413
|
+
surfaceShare: 0,
|
|
414
|
+
systemBreakdown: {
|
|
415
|
+
agentsMd: {
|
|
416
|
+
tokens: 0,
|
|
417
|
+
chars: 0,
|
|
418
|
+
share: 0
|
|
419
|
+
},
|
|
420
|
+
skills: {
|
|
421
|
+
tokens: 0,
|
|
422
|
+
chars: 0,
|
|
423
|
+
share: 0
|
|
424
|
+
},
|
|
425
|
+
persona: {
|
|
426
|
+
tokens: 0,
|
|
427
|
+
chars: 0,
|
|
428
|
+
share: 0
|
|
429
|
+
},
|
|
430
|
+
other: {
|
|
431
|
+
tokens: 0,
|
|
432
|
+
chars: 0,
|
|
433
|
+
share: 0
|
|
434
|
+
}
|
|
435
|
+
}
|
|
344
436
|
},
|
|
345
437
|
cache: {
|
|
346
438
|
inputTokens: 0,
|
|
@@ -467,6 +559,12 @@ function renderFastText(report) {
|
|
|
467
559
|
`tool schema: ${context.toolSchemaTokens} (${formatPercent(context.toolsShare)})`,
|
|
468
560
|
`surface: ${context.surfaceTokens} (${formatPercent(context.surfaceShare)})`,
|
|
469
561
|
"",
|
|
562
|
+
"## System prompt breakdown",
|
|
563
|
+
`persona: ${context.systemBreakdown.persona.tokens} tokens / ${context.systemBreakdown.persona.chars} chars (${formatPercent(context.systemBreakdown.persona.share)})`,
|
|
564
|
+
`skills: ${context.systemBreakdown.skills.tokens} tokens / ${context.systemBreakdown.skills.chars} chars (${formatPercent(context.systemBreakdown.skills.share)})`,
|
|
565
|
+
`AGENTS.md: ${context.systemBreakdown.agentsMd.tokens} tokens / ${context.systemBreakdown.agentsMd.chars} chars (${formatPercent(context.systemBreakdown.agentsMd.share)})`,
|
|
566
|
+
`other (harness identity + tool guidance): ${context.systemBreakdown.other.tokens} tokens / ${context.systemBreakdown.other.chars} chars (${formatPercent(context.systemBreakdown.other.share)})`,
|
|
567
|
+
"",
|
|
470
568
|
"## LLM cache",
|
|
471
569
|
`input: ${cache.inputTokens}, cache read: ${cache.cacheReadTokens}, cache write: ${cache.cacheWriteTokens}, output: ${cache.outputTokens}`,
|
|
472
570
|
`hit rate: ${formatPercent(cache.hitRate)}`
|
|
@@ -527,6 +625,19 @@ const compactionSchema = z$1.object({
|
|
|
527
625
|
automatic: z$1.number().int().nonnegative(),
|
|
528
626
|
shadowedTokens: z$1.number().int().nonnegative()
|
|
529
627
|
});
|
|
628
|
+
/** Zod schema for one prompt bucket. */
|
|
629
|
+
const bucketSchema = z$1.object({
|
|
630
|
+
tokens: z$1.number().nonnegative(),
|
|
631
|
+
chars: z$1.number().nonnegative(),
|
|
632
|
+
share: z$1.number()
|
|
633
|
+
});
|
|
634
|
+
/** Zod schema for the system-prompt breakdown. */
|
|
635
|
+
const breakdownSchema = z$1.object({
|
|
636
|
+
agentsMd: bucketSchema,
|
|
637
|
+
skills: bucketSchema,
|
|
638
|
+
persona: bucketSchema,
|
|
639
|
+
other: bucketSchema
|
|
640
|
+
});
|
|
530
641
|
/** Zod schema for the context section. */
|
|
531
642
|
const contextSchema = z$1.object({
|
|
532
643
|
totalTokens: z$1.number().nonnegative(),
|
|
@@ -535,7 +646,8 @@ const contextSchema = z$1.object({
|
|
|
535
646
|
surfaceTokens: z$1.number().nonnegative(),
|
|
536
647
|
systemShare: z$1.number(),
|
|
537
648
|
toolsShare: z$1.number(),
|
|
538
|
-
surfaceShare: z$1.number()
|
|
649
|
+
surfaceShare: z$1.number(),
|
|
650
|
+
systemBreakdown: breakdownSchema
|
|
539
651
|
});
|
|
540
652
|
/** Zod schema for the cache section. */
|
|
541
653
|
const cacheSchema = z$1.object({
|
|
@@ -579,7 +691,7 @@ function appendSample(history, sample, maxSamples) {
|
|
|
579
691
|
//#endregion
|
|
580
692
|
//#region src/version.ts
|
|
581
693
|
/** Single-source plugin version, bumped by `scripts/release.mjs`. @module dsh-fast/version */
|
|
582
|
-
const VERSION = "0.
|
|
694
|
+
const VERSION = "0.2.0";
|
|
583
695
|
//#endregion
|
|
584
696
|
//#region src/index.ts
|
|
585
697
|
const name = "fast";
|
|
@@ -620,17 +732,31 @@ async function apply(ctx, config = {}) {
|
|
|
620
732
|
return;
|
|
621
733
|
}
|
|
622
734
|
};
|
|
735
|
+
/** Assemble the named system-prompt sections for the per-section breakdown. */
|
|
736
|
+
const assembleSections = async () => {
|
|
737
|
+
const systemPrompt = ctx.get("systemPrompt");
|
|
738
|
+
if (systemPrompt === void 0) return void 0;
|
|
739
|
+
try {
|
|
740
|
+
return (await systemPrompt.assemble()).sections.map((section) => ({
|
|
741
|
+
name: section.name,
|
|
742
|
+
text: section.text
|
|
743
|
+
}));
|
|
744
|
+
} catch (error) {
|
|
745
|
+
logger.warn(`system-prompt section assembly failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
746
|
+
return;
|
|
747
|
+
}
|
|
748
|
+
};
|
|
623
749
|
/** Build the complete report for one session. */
|
|
624
|
-
const reportFor = (session) => {
|
|
625
|
-
return buildReport(collector.snapshot(session, measure), {
|
|
750
|
+
const reportFor = async (session) => {
|
|
751
|
+
return buildReport(collector.snapshot(session, measure, await assembleSections()), {
|
|
626
752
|
sessionId: session.id,
|
|
627
753
|
...resolved.includeCwd && session.header.cwd !== void 0 ? { cwd: session.header.cwd } : {},
|
|
628
754
|
generatedAt: Date.now()
|
|
629
755
|
}, resolved, VERSION);
|
|
630
756
|
};
|
|
631
757
|
/** Append one snapshot to the session's durable history (fire-and-forget). */
|
|
632
|
-
const persist = (session) => {
|
|
633
|
-
const snapshot = collector.snapshot(session, measure);
|
|
758
|
+
const persist = async (session) => {
|
|
759
|
+
const snapshot = collector.snapshot(session, measure, await assembleSections());
|
|
634
760
|
const next = appendSample(sessions.get(session.id), {
|
|
635
761
|
at: Date.now(),
|
|
636
762
|
snapshot
|
|
@@ -642,10 +768,10 @@ async function apply(ctx, config = {}) {
|
|
|
642
768
|
ctx.commands.register({
|
|
643
769
|
name: "fast",
|
|
644
770
|
description: "Print the dsh-fast performance report for the active session.",
|
|
645
|
-
handler
|
|
771
|
+
async handler(invocation) {
|
|
646
772
|
return {
|
|
647
773
|
kind: "success",
|
|
648
|
-
text: renderFastText(reportFor(invocation.agent.session))
|
|
774
|
+
text: renderFastText(await reportFor(invocation.agent.session))
|
|
649
775
|
};
|
|
650
776
|
}
|
|
651
777
|
});
|
|
@@ -761,6 +887,89 @@ async function apply(ctx, config = {}) {
|
|
|
761
887
|
surfaceShare: {
|
|
762
888
|
type: "number",
|
|
763
889
|
required: true
|
|
890
|
+
},
|
|
891
|
+
systemBreakdown: {
|
|
892
|
+
type: "object",
|
|
893
|
+
properties: {
|
|
894
|
+
agentsMd: {
|
|
895
|
+
type: "object",
|
|
896
|
+
properties: {
|
|
897
|
+
tokens: {
|
|
898
|
+
type: "number",
|
|
899
|
+
required: true
|
|
900
|
+
},
|
|
901
|
+
chars: {
|
|
902
|
+
type: "number",
|
|
903
|
+
required: true
|
|
904
|
+
},
|
|
905
|
+
share: {
|
|
906
|
+
type: "number",
|
|
907
|
+
required: true
|
|
908
|
+
}
|
|
909
|
+
},
|
|
910
|
+
additionalProperties: false,
|
|
911
|
+
required: true
|
|
912
|
+
},
|
|
913
|
+
skills: {
|
|
914
|
+
type: "object",
|
|
915
|
+
properties: {
|
|
916
|
+
tokens: {
|
|
917
|
+
type: "number",
|
|
918
|
+
required: true
|
|
919
|
+
},
|
|
920
|
+
chars: {
|
|
921
|
+
type: "number",
|
|
922
|
+
required: true
|
|
923
|
+
},
|
|
924
|
+
share: {
|
|
925
|
+
type: "number",
|
|
926
|
+
required: true
|
|
927
|
+
}
|
|
928
|
+
},
|
|
929
|
+
additionalProperties: false,
|
|
930
|
+
required: true
|
|
931
|
+
},
|
|
932
|
+
persona: {
|
|
933
|
+
type: "object",
|
|
934
|
+
properties: {
|
|
935
|
+
tokens: {
|
|
936
|
+
type: "number",
|
|
937
|
+
required: true
|
|
938
|
+
},
|
|
939
|
+
chars: {
|
|
940
|
+
type: "number",
|
|
941
|
+
required: true
|
|
942
|
+
},
|
|
943
|
+
share: {
|
|
944
|
+
type: "number",
|
|
945
|
+
required: true
|
|
946
|
+
}
|
|
947
|
+
},
|
|
948
|
+
additionalProperties: false,
|
|
949
|
+
required: true
|
|
950
|
+
},
|
|
951
|
+
other: {
|
|
952
|
+
type: "object",
|
|
953
|
+
properties: {
|
|
954
|
+
tokens: {
|
|
955
|
+
type: "number",
|
|
956
|
+
required: true
|
|
957
|
+
},
|
|
958
|
+
chars: {
|
|
959
|
+
type: "number",
|
|
960
|
+
required: true
|
|
961
|
+
},
|
|
962
|
+
share: {
|
|
963
|
+
type: "number",
|
|
964
|
+
required: true
|
|
965
|
+
}
|
|
966
|
+
},
|
|
967
|
+
additionalProperties: false,
|
|
968
|
+
required: true
|
|
969
|
+
}
|
|
970
|
+
},
|
|
971
|
+
additionalProperties: false,
|
|
972
|
+
required: true
|
|
764
973
|
}
|
|
765
974
|
},
|
|
766
975
|
additionalProperties: false,
|
|
@@ -810,7 +1019,7 @@ async function apply(ctx, config = {}) {
|
|
|
810
1019
|
async execute(_args, exec) {
|
|
811
1020
|
const session = exec.agent?.session;
|
|
812
1021
|
if (session === void 0) throw new Error("fast_report requires an agent-owned session");
|
|
813
|
-
return reportFor(session);
|
|
1022
|
+
return await reportFor(session);
|
|
814
1023
|
}
|
|
815
1024
|
}));
|
|
816
1025
|
ctx.on("session/created", (session) => {
|
|
@@ -841,4 +1050,4 @@ async function apply(ctx, config = {}) {
|
|
|
841
1050
|
});
|
|
842
1051
|
}
|
|
843
1052
|
//#endregion
|
|
844
|
-
export { Config, FastCollector, VERSION, appendSample, apply, buildReport, buildSuggestions, detectSpilledResult, fastDomainSpec, flattenToolResultText, historySchema, hitRateOf, inject, name, renderFastText, resolveConfig, sanitizePath, sanitizeText, sharesOf, stripControl, truncate };
|
|
1053
|
+
export { Config, FastCollector, VERSION, appendSample, apply, buildReport, buildSuggestions, classifySystemSections, detectSpilledResult, fastDomainSpec, flattenToolResultText, historySchema, hitRateOf, inject, name, renderFastText, resolveConfig, sanitizePath, sanitizeText, sharesOf, stripControl, truncate };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../src/analyze.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAGjD,6EAA6E;AAC7E,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,GAAG,MAAM,EAAE,CA4CzF;AAYD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../src/analyze.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAGjD,6EAA6E;AAC7E,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,GAAG,MAAM,EAAE,CA4CzF;AAYD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CA4CzD;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,CAUzH"}
|
package/lib/types/analyze.js
CHANGED
|
@@ -80,6 +80,12 @@ export function renderFastText(report) {
|
|
|
80
80
|
`tool schema: ${context.toolSchemaTokens} (${formatPercent(context.toolsShare)})`,
|
|
81
81
|
`surface: ${context.surfaceTokens} (${formatPercent(context.surfaceShare)})`,
|
|
82
82
|
'',
|
|
83
|
+
'## System prompt breakdown',
|
|
84
|
+
`persona: ${context.systemBreakdown.persona.tokens} tokens / ${context.systemBreakdown.persona.chars} chars (${formatPercent(context.systemBreakdown.persona.share)})`,
|
|
85
|
+
`skills: ${context.systemBreakdown.skills.tokens} tokens / ${context.systemBreakdown.skills.chars} chars (${formatPercent(context.systemBreakdown.skills.share)})`,
|
|
86
|
+
`AGENTS.md: ${context.systemBreakdown.agentsMd.tokens} tokens / ${context.systemBreakdown.agentsMd.chars} chars (${formatPercent(context.systemBreakdown.agentsMd.share)})`,
|
|
87
|
+
`other (harness identity + tool guidance): ${context.systemBreakdown.other.tokens} tokens / ${context.systemBreakdown.other.chars} chars (${formatPercent(context.systemBreakdown.other.share)})`,
|
|
88
|
+
'',
|
|
83
89
|
'## LLM cache',
|
|
84
90
|
`input: ${cache.inputTokens}, cache read: ${cache.cacheReadTokens}, cache write: ${cache.cacheWriteTokens}, output: ${cache.outputTokens}`,
|
|
85
91
|
`hit rate: ${formatPercent(cache.hitRate)}`,
|
package/lib/types/analyze.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/analyze.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAS1D;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAsB,EAAE,MAAsB;IAC7E,MAAM,WAAW,GAAa,EAAE,CAAA;IAChC,MAAM,CAAC,GAAG,MAAM,CAAC,UAAU,CAAA;IAC3B,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAA;IAEtD,IAAI,OAAO,CAAC,YAAY,GAAG,CAAC,CAAC,kBAAkB,EAAE,CAAC;QAChD,WAAW,CAAC,IAAI,CACd,2BAA2B,OAAO,CAAC,YAAY,sBAAsB,CAAC,CAAC,kBAAkB,kEAAkE,CAC5J,CAAA;IACH,CAAC;IACD,IAAI,OAAO,CAAC,gBAAgB,GAAG,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAClD,WAAW,CAAC,IAAI,CACd,yBAAyB,OAAO,CAAC,gBAAgB,sBAAsB,CAAC,CAAC,gBAAgB,wEAAwE,CAClK,CAAA;IACH,CAAC;IACD,IAAI,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;QAC5C,WAAW,CAAC,IAAI,CACd,6BAA6B,OAAO,CAAC,aAAa,sBAAsB,CAAC,CAAC,aAAa,oDAAoD,CAC5I,CAAA;IACH,CAAC;IACD,IAAI,UAAU,CAAC,KAAK,IAAI,CAAC,CAAC,mBAAmB,EAAE,CAAC;QAC9C,WAAW,CAAC,IAAI,CACd,8BAA8B,UAAU,CAAC,KAAK,6FAA6F,CAC5I,CAAA;IACH,CAAC;IACD,IAAI,UAAU,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,GAAG,UAAU,CAAC,KAAK,CAAA;QAC5D,IAAI,OAAO,GAAG,CAAC,CAAC,sBAAsB,EAAE,CAAC;YACvC,WAAW,CAAC,IAAI,CACd,8BAA8B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,sBAAsB,sDAAsD,CACtJ,CAAA;QACH,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,iBAAiB,EAAE,CAAC;QAClE,WAAW,CAAC,IAAI,CACd,8BAA8B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,gBAAgB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB,GAAG,GAAG,CAAC,iDAAiD,CACpK,CAAA;IACH,CAAC;IACD,IAAI,KAAK,CAAC,sBAAsB,KAAK,CAAC,IAAI,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;QACtF,WAAW,CAAC,IAAI,CACd,gIAAgI,CACjI,CAAA;IACH,CAAC;IACD,OAAO,WAAW,CAAA;AACpB,CAAC;AAED,gDAAgD;AAChD,SAAS,QAAQ,CAAC,KAAoB;IACpC,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,CAAA;AAC/C,CAAC;AAED,iDAAiD;AACjD,SAAS,aAAa,CAAC,KAAoB;IACzC,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAA;AAC/D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,MAAkB;IAC/C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,CAAA;IAC1D,MAAM,KAAK,GAAG;QACZ,YAAY,MAAM,CAAC,OAAO,uBAAuB;QACjD,YAAY,MAAM,CAAC,SAAS,EAAE;QAC9B,EAAE;QACF,iBAAiB;QACjB,SAAS,IAAI,CAAC,IAAI,EAAE;QACpB,gBAAgB,IAAI,CAAC,UAAU,EAAE;QACjC,0BAA0B,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE;QAC/D,EAAE;QACF,UAAU;QACV,6BAA6B,KAAK,CAAC,sBAAsB,cAAc;QACvE,EAAE;QACF,eAAe;QACf,UAAU,UAAU,CAAC,KAAK,aAAa,UAAU,CAAC,MAAM,gBAAgB,UAAU,CAAC,SAAS,GAAG;QAC/F,oBAAoB,UAAU,CAAC,cAAc,EAAE;QAC/C,EAAE;QACF,mBAAmB;QACnB,UAAU,OAAO,CAAC,WAAW,SAAS;QACtC,sCAAsC,OAAO,CAAC,YAAY,KAAK,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG;QACpG,gBAAgB,OAAO,CAAC,gBAAgB,KAAK,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG;QACjF,YAAY,OAAO,CAAC,aAAa,KAAK,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG;QAC5E,EAAE;QACF,cAAc;QACd,UAAU,KAAK,CAAC,WAAW,iBAAiB,KAAK,CAAC,eAAe,kBAAkB,KAAK,CAAC,gBAAgB,aAAa,KAAK,CAAC,YAAY,EAAE;QAC1I,aAAa,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;KAC5C,CAAA;IACD,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QAC7B,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,MAAM,CAAC,GAAG,EAAE,CAAC,CAAA;IACrD,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAA;IAChC,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACtB,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,WAAW;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,UAAU,EAAE,CAAC,CAAA;IAC5E,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,WAAW,CAAC,QAAsB,EAAE,IAAgB,EAAE,MAAsB,EAAE,OAAe;IAC3G,OAAO;QACL,GAAG,QAAQ;QACX,SAAS,EAAE,UAAU;QACrB,OAAO;QACP,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC;QAC5C,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,WAAW,EAAE,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC/C,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;KACxE,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/analyze.ts"],"names":[],"mappings":"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"}
|
package/lib/types/collector.d.ts
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
import type { Session, SessionEvent, ToolResultMessage } from '@deepseek-ai/dsh-session';
|
|
11
11
|
import type { FastSnapshot, ContextStats } from './model.js';
|
|
12
12
|
import type { ResolvedConfig } from './config.js';
|
|
13
|
+
import { type SystemSection } from './estimate.js';
|
|
13
14
|
/**
|
|
14
15
|
* The structural surface of the optional `ctx.tokenMeter` service. Only the
|
|
15
16
|
* fields dsh-fast reads are declared; the service is optional, so a host
|
|
@@ -69,9 +70,12 @@ export declare class FastCollector {
|
|
|
69
70
|
* the optional token meter is consulted, so it never runs in the append path.
|
|
70
71
|
* @param session - the session to snapshot.
|
|
71
72
|
* @param measure - optional token-meter measure function.
|
|
73
|
+
* @param sections - optional named system-prompt sections (from the optional
|
|
74
|
+
* `systemPrompt` service); absent = the whole rendered system prompt is
|
|
75
|
+
* attributed to the `other` bucket.
|
|
72
76
|
* @returns the snapshot.
|
|
73
77
|
*/
|
|
74
|
-
snapshot(session: Session, measure?: MeasureFn): FastSnapshot;
|
|
78
|
+
snapshot(session: Session, measure?: MeasureFn, sections?: readonly SystemSection[]): FastSnapshot;
|
|
75
79
|
/** Aggregate cache counters into the report shape. */
|
|
76
80
|
private cacheStats;
|
|
77
81
|
/** Fold one provider usage record. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collector.d.ts","sourceRoot":"","sources":["../../src/collector.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAGxF,OAAO,KAAK,EAAE,YAAY,EAAc,YAAY,EAAE,MAAM,YAAY,CAAA;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"collector.d.ts","sourceRoot":"","sources":["../../src/collector.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAGxF,OAAO,KAAK,EAAE,YAAY,EAAc,YAAY,EAAE,MAAM,YAAY,CAAA;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAqE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAA;AAErH;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;CAC/B;AAED,+CAA+C;AAC/C,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,gBAAgB,GAAG,SAAS,CAAA;AAK1E,sEAAsE;AACtE,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAQxE;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAGvE;AAED,0EAA0E;AAC1E,wBAAgB,QAAQ,CACtB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACd,IAAI,CAAC,YAAY,EAAE,aAAa,GAAG,YAAY,GAAG,cAAc,CAAC,CAOnE;AAED,+EAA+E;AAC/E,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIzE;AAsBD;;;;GAIG;AACH,qBAAa,aAAa;IAIZ,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHnC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgC;IAErD,kDAAkD;gBACrB,MAAM,EAAE,cAAc;IAEnD,oDAAoD;IACpD,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAI5C,wCAAwC;IACxC,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAI7C;;;;OAIG;IACH,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI;IAmCxD,qDAAqD;IACrD,YAAY,IAAI,gBAAgB,CAAC,OAAO,CAAC;IAIzC,kEAAkE;IAClE,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAI9B,kDAAkD;IAClD,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAIlC,yDAAyD;IACzD,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAKjC;;;;;;;;;OASG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,SAAS,aAAa,EAAE,GAAG,YAAY;IAqClG,sDAAsD;IACtD,OAAO,CAAC,UAAU;IAUlB,sCAAsC;IACtC,OAAO,CAAC,SAAS;IAYjB,iEAAiE;IACjE,OAAO,CAAC,KAAK;CAwBd"}
|
package/lib/types/collector.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* `Map` keyed by the live Session so the timer can iterate it.
|
|
8
8
|
* @module dsh-fast/collector
|
|
9
9
|
*/
|
|
10
|
-
import { estimateSystemTokens, estimateToolsTokens } from "./estimate.js";
|
|
10
|
+
import { classifySystemSections, estimateSystemTokens, estimateToolsTokens } from "./estimate.js";
|
|
11
11
|
/** The durable marker every spill notice carries (`... Full ... stored at: <locator> ...`). */
|
|
12
12
|
const SPILL_NOTICE_MARKERS = ['Full', 'stored at:'];
|
|
13
13
|
/** Flatten a tool result's model-facing text blocks to one string. */
|
|
@@ -134,9 +134,12 @@ export class FastCollector {
|
|
|
134
134
|
* the optional token meter is consulted, so it never runs in the append path.
|
|
135
135
|
* @param session - the session to snapshot.
|
|
136
136
|
* @param measure - optional token-meter measure function.
|
|
137
|
+
* @param sections - optional named system-prompt sections (from the optional
|
|
138
|
+
* `systemPrompt` service); absent = the whole rendered system prompt is
|
|
139
|
+
* attributed to the `other` bucket.
|
|
137
140
|
* @returns the snapshot.
|
|
138
141
|
*/
|
|
139
|
-
snapshot(session, measure) {
|
|
142
|
+
snapshot(session, measure, sections) {
|
|
140
143
|
const state = this.live.get(session);
|
|
141
144
|
if (state === undefined)
|
|
142
145
|
return emptySnapshot();
|
|
@@ -145,6 +148,8 @@ export class FastCollector {
|
|
|
145
148
|
const toolSchemaTokens = estimateToolsTokens(state.lastHeader);
|
|
146
149
|
const surfaceTokens = measurement?.surfaceTokens ?? 0;
|
|
147
150
|
const totalTokens = measurement?.totalTokens ?? (systemTokens + toolSchemaTokens + surfaceTokens);
|
|
151
|
+
const systemChars = state.lastHeader?.system?.length ?? 0;
|
|
152
|
+
const systemBreakdown = classifySystemSections(sections ?? (systemChars > 0 ? [{ name: 'other', text: state.lastHeader.system }] : []));
|
|
148
153
|
return {
|
|
149
154
|
load: {
|
|
150
155
|
kind: state.kind,
|
|
@@ -164,6 +169,7 @@ export class FastCollector {
|
|
|
164
169
|
toolSchemaTokens,
|
|
165
170
|
surfaceTokens,
|
|
166
171
|
...sharesOf(totalTokens, systemTokens, toolSchemaTokens, surfaceTokens),
|
|
172
|
+
systemBreakdown,
|
|
167
173
|
},
|
|
168
174
|
cache: this.cacheStats(state),
|
|
169
175
|
};
|
|
@@ -229,6 +235,12 @@ function emptySnapshot() {
|
|
|
229
235
|
systemShare: 0,
|
|
230
236
|
toolsShare: 0,
|
|
231
237
|
surfaceShare: 0,
|
|
238
|
+
systemBreakdown: {
|
|
239
|
+
agentsMd: { tokens: 0, chars: 0, share: 0 },
|
|
240
|
+
skills: { tokens: 0, chars: 0, share: 0 },
|
|
241
|
+
persona: { tokens: 0, chars: 0, share: 0 },
|
|
242
|
+
other: { tokens: 0, chars: 0, share: 0 },
|
|
243
|
+
},
|
|
232
244
|
},
|
|
233
245
|
cache: { inputTokens: 0, cacheReadTokens: 0, cacheWriteTokens: 0, outputTokens: 0, hitRate: null },
|
|
234
246
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collector.js","sourceRoot":"","sources":["../../src/collector.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"collector.js","sourceRoot":"","sources":["../../src/collector.ts"],"names":[],"mappings":"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"}
|
package/lib/types/estimate.d.ts
CHANGED
|
@@ -8,9 +8,26 @@
|
|
|
8
8
|
* @module dsh-fast/estimate
|
|
9
9
|
*/
|
|
10
10
|
import type { EpochHeader } from '@deepseek-ai/dsh-session';
|
|
11
|
+
import type { SystemPromptBreakdown } from './model.js';
|
|
12
|
+
/** One named system-prompt section (name + resolved text). */
|
|
13
|
+
export interface SystemSection {
|
|
14
|
+
name: string;
|
|
15
|
+
text: string;
|
|
16
|
+
}
|
|
11
17
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
18
|
+
* Classify the named system-prompt sections into the AGENTS.md / skills /
|
|
19
|
+
* persona / other buckets, with heuristic tokens and per-bucket shares. The
|
|
20
|
+
* caller supplies either the real assembled sections (via the optional
|
|
21
|
+
* `systemPrompt` service) or a single synthetic `{ name: 'other' }` section
|
|
22
|
+
* carrying the rendered prompt, so the breakdown always sums to the system
|
|
23
|
+
* prompt.
|
|
24
|
+
* @param sections - named sections (never empty in practice).
|
|
25
|
+
* @returns the per-bucket breakdown.
|
|
26
|
+
*/
|
|
27
|
+
export declare function classifySystemSections(sections: readonly SystemSection[]): SystemPromptBreakdown;
|
|
28
|
+
/**
|
|
29
|
+
* Price the assembled system prompt (harness identity + persona + tool
|
|
30
|
+
* guidance + plugin sections).
|
|
14
31
|
* @param header - canonical request envelope, or undefined before any request.
|
|
15
32
|
* @returns heuristic system-prompt tokens; 0 when absent.
|
|
16
33
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"estimate.d.ts","sourceRoot":"","sources":["../../src/estimate.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"estimate.d.ts","sourceRoot":"","sources":["../../src/estimate.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAWvD,8DAA8D;AAC9D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAoBD;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,GAAG,qBAAqB,CAehG;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,CAG5E;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,CAG3E"}
|