@framers/agentos 0.2.11 → 0.2.12
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/ingest-router/executors/RawChunksIngestExecutor.d.ts +36 -0
- package/dist/ingest-router/executors/RawChunksIngestExecutor.d.ts.map +1 -0
- package/dist/ingest-router/executors/RawChunksIngestExecutor.js +33 -0
- package/dist/ingest-router/executors/RawChunksIngestExecutor.js.map +1 -0
- package/dist/ingest-router/executors/SkipIngestExecutor.d.ts +20 -0
- package/dist/ingest-router/executors/SkipIngestExecutor.d.ts.map +1 -0
- package/dist/ingest-router/executors/SkipIngestExecutor.js +28 -0
- package/dist/ingest-router/executors/SkipIngestExecutor.js.map +1 -0
- package/dist/ingest-router/executors/SummarizedIngestExecutor.d.ts +68 -0
- package/dist/ingest-router/executors/SummarizedIngestExecutor.d.ts.map +1 -0
- package/dist/ingest-router/executors/SummarizedIngestExecutor.js +56 -0
- package/dist/ingest-router/executors/SummarizedIngestExecutor.js.map +1 -0
- package/dist/ingest-router/executors/index.d.ts +30 -0
- package/dist/ingest-router/executors/index.d.ts.map +1 -0
- package/dist/ingest-router/executors/index.js +31 -0
- package/dist/ingest-router/executors/index.js.map +1 -0
- package/dist/ingest-router/index.d.ts +2 -0
- package/dist/ingest-router/index.d.ts.map +1 -1
- package/dist/ingest-router/index.js +14 -0
- package/dist/ingest-router/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file RawChunksIngestExecutor.ts
|
|
3
|
+
* @description Trivial reference executor for the IngestRouter
|
|
4
|
+
* `raw-chunks` strategy. Passes content through unchanged so the
|
|
5
|
+
* downstream embedder sees the original chunks.
|
|
6
|
+
*
|
|
7
|
+
* Use case: high-volume / cost-sensitive workloads where retrieval
|
|
8
|
+
* does the work and per-session preprocessing isn't worth the LLM
|
|
9
|
+
* cost. The default IngestRouter preset (`raw-chunks`) routes every
|
|
10
|
+
* content kind through this executor.
|
|
11
|
+
*
|
|
12
|
+
* @module @framers/agentos/ingest-router/executors/RawChunksIngestExecutor
|
|
13
|
+
*/
|
|
14
|
+
import type { IngestPayload } from './SummarizedIngestExecutor.js';
|
|
15
|
+
/**
|
|
16
|
+
* Outcome shape returned by {@link RawChunksIngestExecutor.ingest}.
|
|
17
|
+
* Mirrors the shape returned by {@link SummarizedIngestExecutor.ingest}
|
|
18
|
+
* so consumers can swap executors without rewriting downstream code.
|
|
19
|
+
* `summary` is always the empty string for raw chunks.
|
|
20
|
+
*/
|
|
21
|
+
export interface RawChunksOutcome {
|
|
22
|
+
writtenTraces: number;
|
|
23
|
+
summary: string;
|
|
24
|
+
embedTexts: string[];
|
|
25
|
+
tokensIn: number;
|
|
26
|
+
tokensOut: number;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* No-op preprocessor: returns chunks as-is. Zero LLM cost.
|
|
30
|
+
*/
|
|
31
|
+
export declare class RawChunksIngestExecutor {
|
|
32
|
+
/** Strategy ID expected by IngestRouter's FunctionIngestDispatcher registry. */
|
|
33
|
+
readonly strategyId: "raw-chunks";
|
|
34
|
+
ingest(content: string, payload: IngestPayload): Promise<RawChunksOutcome>;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=RawChunksIngestExecutor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RawChunksIngestExecutor.d.ts","sourceRoot":"","sources":["../../../src/ingest-router/executors/RawChunksIngestExecutor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEnE;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,uBAAuB;IAClC,gFAAgF;IAChF,QAAQ,CAAC,UAAU,EAAG,YAAY,CAAU;IAEtC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAUjF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file RawChunksIngestExecutor.ts
|
|
3
|
+
* @description Trivial reference executor for the IngestRouter
|
|
4
|
+
* `raw-chunks` strategy. Passes content through unchanged so the
|
|
5
|
+
* downstream embedder sees the original chunks.
|
|
6
|
+
*
|
|
7
|
+
* Use case: high-volume / cost-sensitive workloads where retrieval
|
|
8
|
+
* does the work and per-session preprocessing isn't worth the LLM
|
|
9
|
+
* cost. The default IngestRouter preset (`raw-chunks`) routes every
|
|
10
|
+
* content kind through this executor.
|
|
11
|
+
*
|
|
12
|
+
* @module @framers/agentos/ingest-router/executors/RawChunksIngestExecutor
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* No-op preprocessor: returns chunks as-is. Zero LLM cost.
|
|
16
|
+
*/
|
|
17
|
+
export class RawChunksIngestExecutor {
|
|
18
|
+
constructor() {
|
|
19
|
+
/** Strategy ID expected by IngestRouter's FunctionIngestDispatcher registry. */
|
|
20
|
+
this.strategyId = 'raw-chunks';
|
|
21
|
+
}
|
|
22
|
+
async ingest(content, payload) {
|
|
23
|
+
const chunks = payload.chunks ?? [content];
|
|
24
|
+
return {
|
|
25
|
+
writtenTraces: chunks.length,
|
|
26
|
+
summary: '',
|
|
27
|
+
embedTexts: chunks,
|
|
28
|
+
tokensIn: 0,
|
|
29
|
+
tokensOut: 0,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=RawChunksIngestExecutor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RawChunksIngestExecutor.js","sourceRoot":"","sources":["../../../src/ingest-router/executors/RawChunksIngestExecutor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAkBH;;GAEG;AACH,MAAM,OAAO,uBAAuB;IAApC;QACE,gFAAgF;QACvE,eAAU,GAAG,YAAqB,CAAC;IAY9C,CAAC;IAVC,KAAK,CAAC,MAAM,CAAC,OAAe,EAAE,OAAsB;QAClD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3C,OAAO;YACL,aAAa,EAAE,MAAM,CAAC,MAAM;YAC5B,OAAO,EAAE,EAAE;YACX,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,CAAC;YACX,SAAS,EAAE,CAAC;SACb,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file SkipIngestExecutor.ts
|
|
3
|
+
* @description No-op executor for the IngestRouter `skip` strategy.
|
|
4
|
+
* Discards content; writes nothing. Useful for the routing-table case
|
|
5
|
+
* where short conversations or low-value content shouldn't pollute the
|
|
6
|
+
* memory store.
|
|
7
|
+
*
|
|
8
|
+
* @module @framers/agentos/ingest-router/executors/SkipIngestExecutor
|
|
9
|
+
*/
|
|
10
|
+
import type { IngestPayload } from './SummarizedIngestExecutor.js';
|
|
11
|
+
import type { RawChunksOutcome } from './RawChunksIngestExecutor.js';
|
|
12
|
+
/**
|
|
13
|
+
* Discards content. Returns the same shape as other executors so the
|
|
14
|
+
* dispatcher's outcome type stays uniform.
|
|
15
|
+
*/
|
|
16
|
+
export declare class SkipIngestExecutor {
|
|
17
|
+
readonly strategyId: "skip";
|
|
18
|
+
ingest(_content: string, _payload: IngestPayload): Promise<RawChunksOutcome>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=SkipIngestExecutor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SkipIngestExecutor.d.ts","sourceRoot":"","sources":["../../../src/ingest-router/executors/SkipIngestExecutor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAErE;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,QAAQ,CAAC,UAAU,EAAG,MAAM,CAAU;IAEhC,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC;CASnF"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file SkipIngestExecutor.ts
|
|
3
|
+
* @description No-op executor for the IngestRouter `skip` strategy.
|
|
4
|
+
* Discards content; writes nothing. Useful for the routing-table case
|
|
5
|
+
* where short conversations or low-value content shouldn't pollute the
|
|
6
|
+
* memory store.
|
|
7
|
+
*
|
|
8
|
+
* @module @framers/agentos/ingest-router/executors/SkipIngestExecutor
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Discards content. Returns the same shape as other executors so the
|
|
12
|
+
* dispatcher's outcome type stays uniform.
|
|
13
|
+
*/
|
|
14
|
+
export class SkipIngestExecutor {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.strategyId = 'skip';
|
|
17
|
+
}
|
|
18
|
+
async ingest(_content, _payload) {
|
|
19
|
+
return {
|
|
20
|
+
writtenTraces: 0,
|
|
21
|
+
summary: '',
|
|
22
|
+
embedTexts: [],
|
|
23
|
+
tokensIn: 0,
|
|
24
|
+
tokensOut: 0,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=SkipIngestExecutor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SkipIngestExecutor.js","sourceRoot":"","sources":["../../../src/ingest-router/executors/SkipIngestExecutor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH;;;GAGG;AACH,MAAM,OAAO,kBAAkB;IAA/B;QACW,eAAU,GAAG,MAAe,CAAC;IAWxC,CAAC;IATC,KAAK,CAAC,MAAM,CAAC,QAAgB,EAAE,QAAuB;QACpD,OAAO;YACL,aAAa,EAAE,CAAC;YAChB,OAAO,EAAE,EAAE;YACX,UAAU,EAAE,EAAE;YACd,QAAQ,EAAE,CAAC;YACX,SAAS,EAAE,CAAC;SACb,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file SummarizedIngestExecutor.ts
|
|
3
|
+
* @description Anthropic Contextual Retrieval reference executor for
|
|
4
|
+
* the IngestRouter `summarized` strategy.
|
|
5
|
+
*
|
|
6
|
+
* Wraps the existing {@link SessionSummarizer} (in
|
|
7
|
+
* `@framers/agentos/memory`) which carries the conversation-tuned
|
|
8
|
+
* summarization prompt + persistent disk cache + cost-tracking. This
|
|
9
|
+
* executor is the IngestRouter-shaped facade over that primitive, so
|
|
10
|
+
* the production SessionSummarizer is the single source of truth for
|
|
11
|
+
* session-level summarization across both the bench and the
|
|
12
|
+
* IngestRouter dispatcher path.
|
|
13
|
+
*
|
|
14
|
+
* Cost model: ~$0.003 per session at gpt-5-mini. SessionSummarizer's
|
|
15
|
+
* SHA-256 disk cache means re-runs against the same sessions are $0.
|
|
16
|
+
*
|
|
17
|
+
* @module @framers/agentos/ingest-router/executors/SummarizedIngestExecutor
|
|
18
|
+
*/
|
|
19
|
+
import { SessionSummarizer } from '../../memory/ingest/SessionSummarizer.js';
|
|
20
|
+
/**
|
|
21
|
+
* Outcome shape returned by {@link SummarizedIngestExecutor.ingest}.
|
|
22
|
+
* Mirrors the shape of every other executor's outcome so the dispatch
|
|
23
|
+
* type stays uniform across strategies.
|
|
24
|
+
*/
|
|
25
|
+
export interface IngestOutcome {
|
|
26
|
+
writtenTraces: number;
|
|
27
|
+
summary: string;
|
|
28
|
+
embedTexts: string[];
|
|
29
|
+
tokensIn: number;
|
|
30
|
+
tokensOut: number;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Per-call payload. The executor needs the sessionId for SessionSummarizer
|
|
34
|
+
* cache lookups (also used for stable identification in logging) and
|
|
35
|
+
* the optional chunks list for splitting content.
|
|
36
|
+
*/
|
|
37
|
+
export interface IngestPayload {
|
|
38
|
+
sessionId: string;
|
|
39
|
+
chunks?: string[];
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Reference executor for the IngestRouter `summarized` strategy. Wires
|
|
43
|
+
* the existing SessionSummarizer through the IngestRouter dispatcher
|
|
44
|
+
* pattern so consumers using IngestRouter get Anthropic Contextual
|
|
45
|
+
* Retrieval out of the box.
|
|
46
|
+
*/
|
|
47
|
+
export declare class SummarizedIngestExecutor {
|
|
48
|
+
/** Strategy ID expected by IngestRouter's FunctionIngestDispatcher registry. */
|
|
49
|
+
readonly strategyId: "summarized";
|
|
50
|
+
private readonly summarizer;
|
|
51
|
+
constructor(opts: {
|
|
52
|
+
summarizer: SessionSummarizer;
|
|
53
|
+
});
|
|
54
|
+
/**
|
|
55
|
+
* Ingest a session's content. Delegates to the wrapped
|
|
56
|
+
* SessionSummarizer for the LLM call (which handles caching, cost
|
|
57
|
+
* tracking, and prompt management). Returns the summary prepended
|
|
58
|
+
* to every chunk, ready for embedding.
|
|
59
|
+
*
|
|
60
|
+
* Per-call tokensIn/tokensOut are reported as 0 because the
|
|
61
|
+
* SessionSummarizer's disk cache obscures whether a particular
|
|
62
|
+
* `summarize()` call hit the cache or fired the LLM. Callers that
|
|
63
|
+
* need precise per-call cost should inspect
|
|
64
|
+
* {@link SessionSummarizer.stats} directly.
|
|
65
|
+
*/
|
|
66
|
+
ingest(content: string, payload: IngestPayload): Promise<IngestOutcome>;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=SummarizedIngestExecutor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SummarizedIngestExecutor.d.ts","sourceRoot":"","sources":["../../../src/ingest-router/executors/SummarizedIngestExecutor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAE7E;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;;GAKG;AACH,qBAAa,wBAAwB;IACnC,gFAAgF;IAChF,QAAQ,CAAC,UAAU,EAAG,YAAY,CAAU;IAE5C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;gBAEnC,IAAI,EAAE;QAAE,UAAU,EAAE,iBAAiB,CAAA;KAAE;IAInD;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;CAa9E"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file SummarizedIngestExecutor.ts
|
|
3
|
+
* @description Anthropic Contextual Retrieval reference executor for
|
|
4
|
+
* the IngestRouter `summarized` strategy.
|
|
5
|
+
*
|
|
6
|
+
* Wraps the existing {@link SessionSummarizer} (in
|
|
7
|
+
* `@framers/agentos/memory`) which carries the conversation-tuned
|
|
8
|
+
* summarization prompt + persistent disk cache + cost-tracking. This
|
|
9
|
+
* executor is the IngestRouter-shaped facade over that primitive, so
|
|
10
|
+
* the production SessionSummarizer is the single source of truth for
|
|
11
|
+
* session-level summarization across both the bench and the
|
|
12
|
+
* IngestRouter dispatcher path.
|
|
13
|
+
*
|
|
14
|
+
* Cost model: ~$0.003 per session at gpt-5-mini. SessionSummarizer's
|
|
15
|
+
* SHA-256 disk cache means re-runs against the same sessions are $0.
|
|
16
|
+
*
|
|
17
|
+
* @module @framers/agentos/ingest-router/executors/SummarizedIngestExecutor
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* Reference executor for the IngestRouter `summarized` strategy. Wires
|
|
21
|
+
* the existing SessionSummarizer through the IngestRouter dispatcher
|
|
22
|
+
* pattern so consumers using IngestRouter get Anthropic Contextual
|
|
23
|
+
* Retrieval out of the box.
|
|
24
|
+
*/
|
|
25
|
+
export class SummarizedIngestExecutor {
|
|
26
|
+
constructor(opts) {
|
|
27
|
+
/** Strategy ID expected by IngestRouter's FunctionIngestDispatcher registry. */
|
|
28
|
+
this.strategyId = 'summarized';
|
|
29
|
+
this.summarizer = opts.summarizer;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Ingest a session's content. Delegates to the wrapped
|
|
33
|
+
* SessionSummarizer for the LLM call (which handles caching, cost
|
|
34
|
+
* tracking, and prompt management). Returns the summary prepended
|
|
35
|
+
* to every chunk, ready for embedding.
|
|
36
|
+
*
|
|
37
|
+
* Per-call tokensIn/tokensOut are reported as 0 because the
|
|
38
|
+
* SessionSummarizer's disk cache obscures whether a particular
|
|
39
|
+
* `summarize()` call hit the cache or fired the LLM. Callers that
|
|
40
|
+
* need precise per-call cost should inspect
|
|
41
|
+
* {@link SessionSummarizer.stats} directly.
|
|
42
|
+
*/
|
|
43
|
+
async ingest(content, payload) {
|
|
44
|
+
const summary = await this.summarizer.summarize(payload.sessionId, content);
|
|
45
|
+
const chunks = payload.chunks ?? [content];
|
|
46
|
+
const embedTexts = chunks.map((chunk) => `${summary}\n\n${chunk}`);
|
|
47
|
+
return {
|
|
48
|
+
writtenTraces: chunks.length,
|
|
49
|
+
summary,
|
|
50
|
+
embedTexts,
|
|
51
|
+
tokensIn: 0,
|
|
52
|
+
tokensOut: 0,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=SummarizedIngestExecutor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SummarizedIngestExecutor.js","sourceRoot":"","sources":["../../../src/ingest-router/executors/SummarizedIngestExecutor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AA2BH;;;;;GAKG;AACH,MAAM,OAAO,wBAAwB;IAMnC,YAAY,IAAuC;QALnD,gFAAgF;QACvE,eAAU,GAAG,YAAqB,CAAC;QAK1C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IACpC,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,MAAM,CAAC,OAAe,EAAE,OAAsB;QAClD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,OAAO,OAAO,KAAK,EAAE,CAAC,CAAC;QAEnE,OAAO;YACL,aAAa,EAAE,MAAM,CAAC,MAAM;YAC5B,OAAO;YACP,UAAU;YACV,QAAQ,EAAE,CAAC;YACX,SAAS,EAAE,CAAC;SACb,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file executors/index.ts
|
|
3
|
+
* @description Sub-barrel for IngestRouter reference executors. The
|
|
4
|
+
* top-level `@framers/agentos/ingest-router` barrel re-exports these
|
|
5
|
+
* symbols so consumers can write
|
|
6
|
+
* `import { SummarizedIngestExecutor } from '../../ingest-router'`.
|
|
7
|
+
*
|
|
8
|
+
* Reference executors ship in agentos core (not in extension packages)
|
|
9
|
+
* so the IngestRouter strategy IDs (`summarized`, `raw-chunks`, `skip`)
|
|
10
|
+
* work out of the box rather than being empty promises.
|
|
11
|
+
*
|
|
12
|
+
* The summarized executor wraps the existing
|
|
13
|
+
* {@link SessionSummarizer} from `@framers/agentos/memory` so the
|
|
14
|
+
* production summarization primitive is the single source of truth.
|
|
15
|
+
*/
|
|
16
|
+
export { SummarizedIngestExecutor } from './SummarizedIngestExecutor.js';
|
|
17
|
+
export type { IngestOutcome, IngestPayload } from './SummarizedIngestExecutor.js';
|
|
18
|
+
export { RawChunksIngestExecutor } from './RawChunksIngestExecutor.js';
|
|
19
|
+
export type { RawChunksOutcome } from './RawChunksIngestExecutor.js';
|
|
20
|
+
export { SkipIngestExecutor } from './SkipIngestExecutor.js';
|
|
21
|
+
import { SummarizedIngestExecutor } from './SummarizedIngestExecutor.js';
|
|
22
|
+
import { RawChunksIngestExecutor } from './RawChunksIngestExecutor.js';
|
|
23
|
+
import { SkipIngestExecutor } from './SkipIngestExecutor.js';
|
|
24
|
+
import type { SessionSummarizer } from '../../memory/ingest/SessionSummarizer.js';
|
|
25
|
+
export declare function createSummarizedIngestExecutor(opts: {
|
|
26
|
+
summarizer: SessionSummarizer;
|
|
27
|
+
}): SummarizedIngestExecutor;
|
|
28
|
+
export declare function createRawChunksIngestExecutor(): RawChunksIngestExecutor;
|
|
29
|
+
export declare function createSkipIngestExecutor(): SkipIngestExecutor;
|
|
30
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ingest-router/executors/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAClF,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,YAAY,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAElF,wBAAgB,8BAA8B,CAAC,IAAI,EAAE;IACnD,UAAU,EAAE,iBAAiB,CAAC;CAC/B,GAAG,wBAAwB,CAE3B;AAED,wBAAgB,6BAA6B,IAAI,uBAAuB,CAEvE;AAED,wBAAgB,wBAAwB,IAAI,kBAAkB,CAE7D"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file executors/index.ts
|
|
3
|
+
* @description Sub-barrel for IngestRouter reference executors. The
|
|
4
|
+
* top-level `@framers/agentos/ingest-router` barrel re-exports these
|
|
5
|
+
* symbols so consumers can write
|
|
6
|
+
* `import { SummarizedIngestExecutor } from '../../ingest-router'`.
|
|
7
|
+
*
|
|
8
|
+
* Reference executors ship in agentos core (not in extension packages)
|
|
9
|
+
* so the IngestRouter strategy IDs (`summarized`, `raw-chunks`, `skip`)
|
|
10
|
+
* work out of the box rather than being empty promises.
|
|
11
|
+
*
|
|
12
|
+
* The summarized executor wraps the existing
|
|
13
|
+
* {@link SessionSummarizer} from `@framers/agentos/memory` so the
|
|
14
|
+
* production summarization primitive is the single source of truth.
|
|
15
|
+
*/
|
|
16
|
+
export { SummarizedIngestExecutor } from './SummarizedIngestExecutor.js';
|
|
17
|
+
export { RawChunksIngestExecutor } from './RawChunksIngestExecutor.js';
|
|
18
|
+
export { SkipIngestExecutor } from './SkipIngestExecutor.js';
|
|
19
|
+
import { SummarizedIngestExecutor } from './SummarizedIngestExecutor.js';
|
|
20
|
+
import { RawChunksIngestExecutor } from './RawChunksIngestExecutor.js';
|
|
21
|
+
import { SkipIngestExecutor } from './SkipIngestExecutor.js';
|
|
22
|
+
export function createSummarizedIngestExecutor(opts) {
|
|
23
|
+
return new SummarizedIngestExecutor(opts);
|
|
24
|
+
}
|
|
25
|
+
export function createRawChunksIngestExecutor() {
|
|
26
|
+
return new RawChunksIngestExecutor();
|
|
27
|
+
}
|
|
28
|
+
export function createSkipIngestExecutor() {
|
|
29
|
+
return new SkipIngestExecutor();
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ingest-router/executors/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,MAAM,UAAU,8BAA8B,CAAC,IAE9C;IACC,OAAO,IAAI,wBAAwB,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C,OAAO,IAAI,uBAAuB,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,OAAO,IAAI,kBAAkB,EAAE,CAAC;AAClC,CAAC"}
|
|
@@ -40,4 +40,6 @@ export { selectIngestStrategy, IngestRouterUnknownKindError, IngestRouterBudgetE
|
|
|
40
40
|
export { INGEST_CLASSIFIER_SYSTEM_PROMPT, INGEST_CLASSIFIER_SYSTEM_PROMPT_FEWSHOT, SAFE_INGEST_FALLBACK_KIND, LLMIngestClassifier, normalizeIngestClassifierOutput, parseIngestClassifierOutput, } from './classifier.js';
|
|
41
41
|
export { FunctionIngestDispatcher, UnsupportedIngestStrategyError, } from './dispatcher.js';
|
|
42
42
|
export { IngestRouter, IngestRouterDispatcherMissingError, } from './IngestRouter.js';
|
|
43
|
+
export { SummarizedIngestExecutor, RawChunksIngestExecutor, SkipIngestExecutor, createSummarizedIngestExecutor, createRawChunksIngestExecutor, createSkipIngestExecutor, } from './executors/index.js';
|
|
44
|
+
export type { IngestOutcome, IngestPayload, RawChunksOutcome, } from './executors/index.js';
|
|
43
45
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ingest-router/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,YAAY,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,iBAAiB,EACjB,oBAAoB,EACpB,0BAA0B,EAC1B,2BAA2B,EAC3B,+BAA+B,EAC/B,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,EACzB,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,SAAS,EACT,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC5B,+BAA+B,GAChC,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,+BAA+B,EAC/B,uCAAuC,EACvC,yBAAyB,EACzB,mBAAmB,EACnB,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,wBAAwB,EACxB,8BAA8B,GAC/B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,YAAY,EACZ,kCAAkC,GACnC,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ingest-router/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,YAAY,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,iBAAiB,EACjB,oBAAoB,EACpB,0BAA0B,EAC1B,2BAA2B,EAC3B,+BAA+B,EAC/B,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,EACzB,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,SAAS,EACT,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC5B,+BAA+B,GAChC,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,+BAA+B,EAC/B,uCAAuC,EACvC,yBAAyB,EACzB,mBAAmB,EACnB,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,wBAAwB,EACxB,8BAA8B,GAC/B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,YAAY,EACZ,kCAAkC,GACnC,MAAM,mBAAmB,CAAC;AAe3B,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,8BAA8B,EAC9B,6BAA6B,EAC7B,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,aAAa,EACb,aAAa,EACb,gBAAgB,GACjB,MAAM,sBAAsB,CAAC"}
|
|
@@ -34,4 +34,18 @@ export { selectIngestStrategy, IngestRouterUnknownKindError, IngestRouterBudgetE
|
|
|
34
34
|
export { INGEST_CLASSIFIER_SYSTEM_PROMPT, INGEST_CLASSIFIER_SYSTEM_PROMPT_FEWSHOT, SAFE_INGEST_FALLBACK_KIND, LLMIngestClassifier, normalizeIngestClassifierOutput, parseIngestClassifierOutput, } from './classifier.js';
|
|
35
35
|
export { FunctionIngestDispatcher, UnsupportedIngestStrategyError, } from './dispatcher.js';
|
|
36
36
|
export { IngestRouter, IngestRouterDispatcherMissingError, } from './IngestRouter.js';
|
|
37
|
+
// --- Reference executors ---
|
|
38
|
+
// Reference executors ship in agentos core so the IngestRouter strategy
|
|
39
|
+
// IDs work out of the box. See ./executors/ for the source.
|
|
40
|
+
//
|
|
41
|
+
// SummarizedIngestExecutor wraps the existing SessionSummarizer from
|
|
42
|
+
// `@framers/agentos/memory` so the production summarization primitive is
|
|
43
|
+
// the single source of truth across the bench and the IngestRouter
|
|
44
|
+
// dispatcher path.
|
|
45
|
+
//
|
|
46
|
+
// Strategy ID coverage today: summarized (Stage L), raw-chunks, skip.
|
|
47
|
+
// Observational + fact-graph + hybrid executors land in later phases;
|
|
48
|
+
// consumers can register their own closures via FunctionIngestDispatcher
|
|
49
|
+
// in the meantime.
|
|
50
|
+
export { SummarizedIngestExecutor, RawChunksIngestExecutor, SkipIngestExecutor, createSummarizedIngestExecutor, createRawChunksIngestExecutor, createSkipIngestExecutor, } from './executors/index.js';
|
|
37
51
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ingest-router/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAQH,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAoC3D,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,SAAS,EACT,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC5B,+BAA+B,GAChC,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,+BAA+B,EAC/B,uCAAuC,EACvC,yBAAyB,EACzB,mBAAmB,EACnB,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,wBAAwB,EACxB,8BAA8B,GAC/B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,YAAY,EACZ,kCAAkC,GACnC,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ingest-router/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAQH,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAoC3D,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,SAAS,EACT,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC5B,+BAA+B,GAChC,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,+BAA+B,EAC/B,uCAAuC,EACvC,yBAAyB,EACzB,mBAAmB,EACnB,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,wBAAwB,EACxB,8BAA8B,GAC/B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,YAAY,EACZ,kCAAkC,GACnC,MAAM,mBAAmB,CAAC;AAE3B,8BAA8B;AAC9B,wEAAwE;AACxE,4DAA4D;AAC5D,EAAE;AACF,qEAAqE;AACrE,yEAAyE;AACzE,mEAAmE;AACnE,mBAAmB;AACnB,EAAE;AACF,sEAAsE;AACtE,sEAAsE;AACtE,yEAAyE;AACzE,mBAAmB;AACnB,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,8BAA8B,EAC9B,6BAA6B,EAC7B,wBAAwB,GACzB,MAAM,sBAAsB,CAAC"}
|