@aid-framework/runtime 0.0.0 → 0.1.39
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/LICENSE +201 -0
- package/README.md +53 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/agents/deep_agents.d.ts +78 -0
- package/dist/agents/deep_agents.d.ts.map +1 -0
- package/dist/agents/deep_agents.js +477 -0
- package/dist/agents/deep_agents.js.map +1 -0
- package/dist/agents/engine.d.ts +85 -0
- package/dist/agents/engine.d.ts.map +1 -0
- package/dist/agents/engine.js +129 -0
- package/dist/agents/engine.js.map +1 -0
- package/dist/agents/gateway_chat_model.d.ts +151 -0
- package/dist/agents/gateway_chat_model.d.ts.map +1 -0
- package/dist/agents/gateway_chat_model.js +350 -0
- package/dist/agents/gateway_chat_model.js.map +1 -0
- package/dist/agents/guardrail_middleware.d.ts +57 -0
- package/dist/agents/guardrail_middleware.d.ts.map +1 -0
- package/dist/agents/guardrail_middleware.js +85 -0
- package/dist/agents/guardrail_middleware.js.map +1 -0
- package/dist/agents/guardrails.d.ts +124 -0
- package/dist/agents/guardrails.d.ts.map +1 -0
- package/dist/agents/guardrails.js +336 -0
- package/dist/agents/guardrails.js.map +1 -0
- package/dist/agents/index.d.ts +15 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +15 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/ir.d.ts +144 -0
- package/dist/agents/ir.d.ts.map +1 -0
- package/dist/agents/ir.js +513 -0
- package/dist/agents/ir.js.map +1 -0
- package/dist/agents/loop.d.ts +145 -0
- package/dist/agents/loop.d.ts.map +1 -0
- package/dist/agents/loop.js +1025 -0
- package/dist/agents/loop.js.map +1 -0
- package/dist/agents/memory.d.ts +115 -0
- package/dist/agents/memory.d.ts.map +1 -0
- package/dist/agents/memory.js +258 -0
- package/dist/agents/memory.js.map +1 -0
- package/dist/agents/state.d.ts +137 -0
- package/dist/agents/state.d.ts.map +1 -0
- package/dist/agents/state.js +255 -0
- package/dist/agents/state.js.map +1 -0
- package/dist/concurrency.d.ts +36 -0
- package/dist/concurrency.d.ts.map +1 -0
- package/dist/concurrency.js +86 -0
- package/dist/concurrency.js.map +1 -0
- package/dist/control.d.ts +116 -0
- package/dist/control.d.ts.map +1 -0
- package/dist/control.js +281 -0
- package/dist/control.js.map +1 -0
- package/dist/cost.d.ts +95 -0
- package/dist/cost.d.ts.map +1 -0
- package/dist/cost.js +161 -0
- package/dist/cost.js.map +1 -0
- package/dist/errors.d.ts +213 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +316 -0
- package/dist/errors.js.map +1 -0
- package/dist/evals/dataset.d.ts +45 -0
- package/dist/evals/dataset.d.ts.map +1 -0
- package/dist/evals/dataset.js +147 -0
- package/dist/evals/dataset.js.map +1 -0
- package/dist/evals/gate.d.ts +236 -0
- package/dist/evals/gate.d.ts.map +1 -0
- package/dist/evals/gate.js +572 -0
- package/dist/evals/gate.js.map +1 -0
- package/dist/evals/metrics.d.ts +141 -0
- package/dist/evals/metrics.d.ts.map +1 -0
- package/dist/evals/metrics.js +364 -0
- package/dist/evals/metrics.js.map +1 -0
- package/dist/evals/predicate.d.ts +79 -0
- package/dist/evals/predicate.d.ts.map +1 -0
- package/dist/evals/predicate.js +178 -0
- package/dist/evals/predicate.js.map +1 -0
- package/dist/evals/runner.d.ts +94 -0
- package/dist/evals/runner.d.ts.map +1 -0
- package/dist/evals/runner.js +202 -0
- package/dist/evals/runner.js.map +1 -0
- package/dist/gateway.d.ts +118 -0
- package/dist/gateway.d.ts.map +1 -0
- package/dist/gateway.js +250 -0
- package/dist/gateway.js.map +1 -0
- package/dist/index.d.ts +83 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +59 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/json.d.ts +44 -0
- package/dist/internal/json.d.ts.map +1 -0
- package/dist/internal/json.js +90 -0
- package/dist/internal/json.js.map +1 -0
- package/dist/internal/text.d.ts +17 -0
- package/dist/internal/text.d.ts.map +1 -0
- package/dist/internal/text.js +22 -0
- package/dist/internal/text.js.map +1 -0
- package/dist/pipeline.d.ts +80 -0
- package/dist/pipeline.d.ts.map +1 -0
- package/dist/pipeline.js +159 -0
- package/dist/pipeline.js.map +1 -0
- package/dist/policy.d.ts +52 -0
- package/dist/policy.d.ts.map +1 -0
- package/dist/policy.js +199 -0
- package/dist/policy.js.map +1 -0
- package/dist/prompts.d.ts +86 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/prompts.js +337 -0
- package/dist/prompts.js.map +1 -0
- package/dist/providers/base.d.ts +19 -0
- package/dist/providers/base.d.ts.map +1 -0
- package/dist/providers/base.js +13 -0
- package/dist/providers/base.js.map +1 -0
- package/dist/providers/fake.d.ts +98 -0
- package/dist/providers/fake.d.ts.map +1 -0
- package/dist/providers/fake.js +181 -0
- package/dist/providers/fake.js.map +1 -0
- package/dist/providers/http.d.ts +62 -0
- package/dist/providers/http.d.ts.map +1 -0
- package/dist/providers/http.js +245 -0
- package/dist/providers/http.js.map +1 -0
- package/dist/retrieval/chunking.d.ts +88 -0
- package/dist/retrieval/chunking.d.ts.map +1 -0
- package/dist/retrieval/chunking.js +188 -0
- package/dist/retrieval/chunking.js.map +1 -0
- package/dist/retrieval/citations.d.ts +98 -0
- package/dist/retrieval/citations.d.ts.map +1 -0
- package/dist/retrieval/citations.js +134 -0
- package/dist/retrieval/citations.js.map +1 -0
- package/dist/retrieval/connectors.d.ts +74 -0
- package/dist/retrieval/connectors.d.ts.map +1 -0
- package/dist/retrieval/connectors.js +218 -0
- package/dist/retrieval/connectors.js.map +1 -0
- package/dist/retrieval/embedding.d.ts +116 -0
- package/dist/retrieval/embedding.d.ts.map +1 -0
- package/dist/retrieval/embedding.js +282 -0
- package/dist/retrieval/embedding.js.map +1 -0
- package/dist/retrieval/gate.d.ts +52 -0
- package/dist/retrieval/gate.d.ts.map +1 -0
- package/dist/retrieval/gate.js +91 -0
- package/dist/retrieval/gate.js.map +1 -0
- package/dist/retrieval/hybrid.d.ts +76 -0
- package/dist/retrieval/hybrid.d.ts.map +1 -0
- package/dist/retrieval/hybrid.js +150 -0
- package/dist/retrieval/hybrid.js.map +1 -0
- package/dist/retrieval/metrics.d.ts +126 -0
- package/dist/retrieval/metrics.d.ts.map +1 -0
- package/dist/retrieval/metrics.js +200 -0
- package/dist/retrieval/metrics.js.map +1 -0
- package/dist/retrieval/pgvector.d.ts +62 -0
- package/dist/retrieval/pgvector.d.ts.map +1 -0
- package/dist/retrieval/pgvector.js +262 -0
- package/dist/retrieval/pgvector.js.map +1 -0
- package/dist/retrieval/rerank.d.ts +61 -0
- package/dist/retrieval/rerank.d.ts.map +1 -0
- package/dist/retrieval/rerank.js +105 -0
- package/dist/retrieval/rerank.js.map +1 -0
- package/dist/retrieval/retriever.d.ts +125 -0
- package/dist/retrieval/retriever.d.ts.map +1 -0
- package/dist/retrieval/retriever.js +281 -0
- package/dist/retrieval/retriever.js.map +1 -0
- package/dist/retrieval/stores.d.ts +106 -0
- package/dist/retrieval/stores.d.ts.map +1 -0
- package/dist/retrieval/stores.js +142 -0
- package/dist/retrieval/stores.js.map +1 -0
- package/dist/retrieval/types.d.ts +314 -0
- package/dist/retrieval/types.d.ts.map +1 -0
- package/dist/retrieval/types.js +388 -0
- package/dist/retrieval/types.js.map +1 -0
- package/dist/steps.d.ts +156 -0
- package/dist/steps.d.ts.map +1 -0
- package/dist/steps.js +199 -0
- package/dist/steps.js.map +1 -0
- package/dist/structured.d.ts +91 -0
- package/dist/structured.d.ts.map +1 -0
- package/dist/structured.js +155 -0
- package/dist/structured.js.map +1 -0
- package/dist/tools.d.ts +100 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +201 -0
- package/dist/tools.js.map +1 -0
- package/dist/tracing.d.ts +104 -0
- package/dist/tracing.d.ts.map +1 -0
- package/dist/tracing.js +155 -0
- package/dist/tracing.js.map +1 -0
- package/dist/types.d.ts +240 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +357 -0
- package/dist/types.js.map +1 -0
- package/package.json +80 -14
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/agents/loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent memory: thread scope, and one durable adapter.
|
|
3
|
+
*
|
|
4
|
+
* Ratified decision D5 draws the line this module implements: in-process memory is the
|
|
5
|
+
* default, exactly one store-backed adapter ships, and there is no plugin zoo. A `backend`
|
|
6
|
+
* naming a declared store is served by whatever store the caller registered under that id;
|
|
7
|
+
* with none registered, the in-process store answers.
|
|
8
|
+
*
|
|
9
|
+
* `thread` scope is the checkpointer unit -- the conversation the loop is already carrying
|
|
10
|
+
* -- so it needs no store and no key. `user` and `global` scope are the cross-run facts,
|
|
11
|
+
* keyed by a caller-supplied key and stored behind {@link MemoryStore}. The IR vocabulary is
|
|
12
|
+
* `thread`/`user`/`global`; the `session` spelling L1 removed is not reintroduced here.
|
|
13
|
+
*/
|
|
14
|
+
import type { Message } from '../types.js';
|
|
15
|
+
/** The IR's scope vocabulary. `session` is deliberately absent. */
|
|
16
|
+
export declare const MEMORY_SCOPES: readonly string[];
|
|
17
|
+
/**
|
|
18
|
+
* The kinds served without a summarizer or an embedding model. The rest are declared in
|
|
19
|
+
* the IR and refused by name, never silently downgraded.
|
|
20
|
+
*/
|
|
21
|
+
export declare const IMPLEMENTED_MEMORY_KINDS: readonly string[];
|
|
22
|
+
/** Append-only, scoped storage behind the memory scopes that outlive a run. */
|
|
23
|
+
export interface MemoryStore {
|
|
24
|
+
/** Every value recorded for `(scope, key)`, oldest first. */
|
|
25
|
+
read(options: {
|
|
26
|
+
readonly scope: string;
|
|
27
|
+
readonly key: string;
|
|
28
|
+
}): Promise<readonly string[]>;
|
|
29
|
+
/** Record one value. Append-only is what makes replay deterministic. */
|
|
30
|
+
append(options: {
|
|
31
|
+
readonly scope: string;
|
|
32
|
+
readonly key: string;
|
|
33
|
+
readonly value: string;
|
|
34
|
+
}): Promise<void>;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* The default: a map, lost when the process ends.
|
|
38
|
+
*
|
|
39
|
+
* That is the honest default for a library that must not decide where a host application
|
|
40
|
+
* keeps its data. A durable adapter is opt-in, and there is one.
|
|
41
|
+
*/
|
|
42
|
+
export declare class InProcessMemoryStore implements MemoryStore {
|
|
43
|
+
#private;
|
|
44
|
+
read(options: {
|
|
45
|
+
readonly scope: string;
|
|
46
|
+
readonly key: string;
|
|
47
|
+
}): Promise<readonly string[]>;
|
|
48
|
+
append(options: {
|
|
49
|
+
readonly scope: string;
|
|
50
|
+
readonly key: string;
|
|
51
|
+
readonly value: string;
|
|
52
|
+
}): Promise<void>;
|
|
53
|
+
clear(): void;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* One JSON file, one serialized writer.
|
|
57
|
+
*
|
|
58
|
+
* The file is rewritten through a temporary file and an atomic replace so a crash mid-write
|
|
59
|
+
* cannot leave a half-file that a later read would parse as truth. Writes are serialized
|
|
60
|
+
* through a promise chain, which is the single-writer guarantee without a lock: two appends
|
|
61
|
+
* that overlap would otherwise both read, both mutate, and one would win.
|
|
62
|
+
*/
|
|
63
|
+
export declare class FileMemoryStore implements MemoryStore {
|
|
64
|
+
#private;
|
|
65
|
+
readonly path: string;
|
|
66
|
+
constructor(path: string);
|
|
67
|
+
read(options: {
|
|
68
|
+
readonly scope: string;
|
|
69
|
+
readonly key: string;
|
|
70
|
+
}): Promise<readonly string[]>;
|
|
71
|
+
append(options: {
|
|
72
|
+
readonly scope: string;
|
|
73
|
+
readonly key: string;
|
|
74
|
+
readonly value: string;
|
|
75
|
+
}): Promise<void>;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Refuse a declared memory the runtime cannot honour exactly.
|
|
79
|
+
*
|
|
80
|
+
* `summary`, `semantic`, `episodic` and `vector` would each need a model or an index that
|
|
81
|
+
* this layer does not have, and so would `summarizeModel`; `ttl` needs a clock and `redact`
|
|
82
|
+
* needs redaction on the tracing path. Serving them approximately would make the
|
|
83
|
+
* declaration lie, so they are refused by name.
|
|
84
|
+
*/
|
|
85
|
+
export declare function checkMemorySupported(options: {
|
|
86
|
+
readonly memoryId: string;
|
|
87
|
+
readonly kind: string;
|
|
88
|
+
readonly summarizeModel: string | undefined;
|
|
89
|
+
readonly ttl: string | undefined;
|
|
90
|
+
readonly redact: readonly string[];
|
|
91
|
+
}): void;
|
|
92
|
+
/**
|
|
93
|
+
* Bounds the transcript a single agent turn may replay.
|
|
94
|
+
*
|
|
95
|
+
* `thread` scope is the conversation the loop is already carrying, so this is a trimmer
|
|
96
|
+
* rather than a store: when the transcript exceeds `tokenBudget`, whole tool-call groups are
|
|
97
|
+
* dropped oldest-first. A group is an assistant turn with its tool observations, because
|
|
98
|
+
* dropping one without the other would replay a tool result whose call is gone.
|
|
99
|
+
*
|
|
100
|
+
* A message larger than the whole budget is kept rather than truncated: half a tool
|
|
101
|
+
* observation is worse than an over-budget one, and the budget is a target for what to
|
|
102
|
+
* *replay*, not a hard accounting ceiling.
|
|
103
|
+
*/
|
|
104
|
+
export declare class ThreadMemory {
|
|
105
|
+
readonly tokenBudget: number | undefined;
|
|
106
|
+
constructor(tokenBudget?: number);
|
|
107
|
+
tokens(messages: readonly Message[]): number;
|
|
108
|
+
trim(messages: readonly Message[]): Message[];
|
|
109
|
+
}
|
|
110
|
+
/** Fit stored entries into `tokenBudget`, newest first. Returns text and tokens. */
|
|
111
|
+
export declare function renderContext(entries: readonly string[], tokenBudget: number): {
|
|
112
|
+
readonly text: string;
|
|
113
|
+
readonly tokens: number;
|
|
114
|
+
};
|
|
115
|
+
//# sourceMappingURL=memory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/agents/memory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent memory: thread scope, and one durable adapter.
|
|
3
|
+
*
|
|
4
|
+
* Ratified decision D5 draws the line this module implements: in-process memory is the
|
|
5
|
+
* default, exactly one store-backed adapter ships, and there is no plugin zoo. A `backend`
|
|
6
|
+
* naming a declared store is served by whatever store the caller registered under that id;
|
|
7
|
+
* with none registered, the in-process store answers.
|
|
8
|
+
*
|
|
9
|
+
* `thread` scope is the checkpointer unit -- the conversation the loop is already carrying
|
|
10
|
+
* -- so it needs no store and no key. `user` and `global` scope are the cross-run facts,
|
|
11
|
+
* keyed by a caller-supplied key and stored behind {@link MemoryStore}. The IR vocabulary is
|
|
12
|
+
* `thread`/`user`/`global`; the `session` spelling L1 removed is not reintroduced here.
|
|
13
|
+
*/
|
|
14
|
+
import { mkdir, readFile, rename, unlink, writeFile } from 'node:fs/promises';
|
|
15
|
+
import { dirname, join } from 'node:path';
|
|
16
|
+
import { estimateTokens } from '../cost.js';
|
|
17
|
+
import { ConfigurationError, FeatureDeferredError } from '../errors.js';
|
|
18
|
+
import { repr } from '../internal/json.js';
|
|
19
|
+
/** The IR's scope vocabulary. `session` is deliberately absent. */
|
|
20
|
+
export const MEMORY_SCOPES = ['thread', 'user', 'global'];
|
|
21
|
+
/**
|
|
22
|
+
* The kinds served without a summarizer or an embedding model. The rest are declared in
|
|
23
|
+
* the IR and refused by name, never silently downgraded.
|
|
24
|
+
*/
|
|
25
|
+
export const IMPLEMENTED_MEMORY_KINDS = ['buffer', 'window'];
|
|
26
|
+
/**
|
|
27
|
+
* The default: a map, lost when the process ends.
|
|
28
|
+
*
|
|
29
|
+
* That is the honest default for a library that must not decide where a host application
|
|
30
|
+
* keeps its data. A durable adapter is opt-in, and there is one.
|
|
31
|
+
*/
|
|
32
|
+
export class InProcessMemoryStore {
|
|
33
|
+
#values = new Map();
|
|
34
|
+
async read(options) {
|
|
35
|
+
return [...(this.#values.get(storageKey(options)) ?? [])];
|
|
36
|
+
}
|
|
37
|
+
async append(options) {
|
|
38
|
+
const key = storageKey(options);
|
|
39
|
+
const existing = this.#values.get(key);
|
|
40
|
+
if (existing === undefined)
|
|
41
|
+
this.#values.set(key, [options.value]);
|
|
42
|
+
else
|
|
43
|
+
existing.push(options.value);
|
|
44
|
+
}
|
|
45
|
+
clear() {
|
|
46
|
+
this.#values.clear();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* One JSON file, one serialized writer.
|
|
51
|
+
*
|
|
52
|
+
* The file is rewritten through a temporary file and an atomic replace so a crash mid-write
|
|
53
|
+
* cannot leave a half-file that a later read would parse as truth. Writes are serialized
|
|
54
|
+
* through a promise chain, which is the single-writer guarantee without a lock: two appends
|
|
55
|
+
* that overlap would otherwise both read, both mutate, and one would win.
|
|
56
|
+
*/
|
|
57
|
+
export class FileMemoryStore {
|
|
58
|
+
path;
|
|
59
|
+
#queue = Promise.resolve();
|
|
60
|
+
constructor(path) {
|
|
61
|
+
this.path = path;
|
|
62
|
+
}
|
|
63
|
+
async read(options) {
|
|
64
|
+
const data = await this.#load();
|
|
65
|
+
return [...(data.get(options.scope)?.get(options.key) ?? [])];
|
|
66
|
+
}
|
|
67
|
+
async append(options) {
|
|
68
|
+
const next = this.#queue.then(async () => {
|
|
69
|
+
const data = await this.#load();
|
|
70
|
+
let scope = data.get(options.scope);
|
|
71
|
+
if (scope === undefined) {
|
|
72
|
+
scope = new Map();
|
|
73
|
+
data.set(options.scope, scope);
|
|
74
|
+
}
|
|
75
|
+
const values = scope.get(options.key) ?? [];
|
|
76
|
+
values.push(options.value);
|
|
77
|
+
scope.set(options.key, values);
|
|
78
|
+
await this.#save(data);
|
|
79
|
+
});
|
|
80
|
+
this.#queue = next.catch(() => undefined);
|
|
81
|
+
await next;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Scopes and keys are read into `Map`s rather than into an object.
|
|
85
|
+
*
|
|
86
|
+
* A scope name comes from the caller and a key name from the caller, and both are
|
|
87
|
+
* written back verbatim. On a plain object a scope of `__proto__` does not create an
|
|
88
|
+
* entry: it resolves to `Object.prototype`, so the next write lands on the prototype
|
|
89
|
+
* every object in the process inherits from. `Map` has no inherited keys, so a scope
|
|
90
|
+
* named `__proto__` is an ordinary scope here.
|
|
91
|
+
*/
|
|
92
|
+
async #load() {
|
|
93
|
+
let raw;
|
|
94
|
+
try {
|
|
95
|
+
raw = await readFile(this.path, 'utf8');
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
if (error.code === 'ENOENT')
|
|
99
|
+
return new Map();
|
|
100
|
+
throw new ConfigurationError(`memory store ${this.path} is unreadable: ${String(error)}`);
|
|
101
|
+
}
|
|
102
|
+
let parsed;
|
|
103
|
+
try {
|
|
104
|
+
parsed = JSON.parse(raw);
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
throw new ConfigurationError(`memory store ${this.path} is unreadable: ${String(error)}`);
|
|
108
|
+
}
|
|
109
|
+
if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
|
|
110
|
+
throw new ConfigurationError(`memory store ${this.path} is not a JSON object`);
|
|
111
|
+
}
|
|
112
|
+
const data = new Map();
|
|
113
|
+
for (const [scope, keys] of Object.entries(parsed)) {
|
|
114
|
+
if (typeof keys !== 'object' || keys === null || Array.isArray(keys))
|
|
115
|
+
continue;
|
|
116
|
+
const resolved = new Map();
|
|
117
|
+
for (const [key, values] of Object.entries(keys)) {
|
|
118
|
+
if (!Array.isArray(values))
|
|
119
|
+
continue;
|
|
120
|
+
resolved.set(key, values.map((value) => String(value)));
|
|
121
|
+
}
|
|
122
|
+
data.set(scope, resolved);
|
|
123
|
+
}
|
|
124
|
+
return data;
|
|
125
|
+
}
|
|
126
|
+
async #save(data) {
|
|
127
|
+
await mkdir(dirname(this.path), { recursive: true });
|
|
128
|
+
const temporary = join(dirname(this.path), `.${this.path.split(/[\\/]/).pop() ?? 'memory'}.${process.pid}.${Date.now()}.tmp`);
|
|
129
|
+
try {
|
|
130
|
+
await writeFile(temporary, serialize(data), 'utf8');
|
|
131
|
+
await rename(temporary, this.path);
|
|
132
|
+
}
|
|
133
|
+
catch (error) {
|
|
134
|
+
await unlink(temporary).catch(() => undefined);
|
|
135
|
+
throw error;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* `json.dump(data, sort_keys=True, separators=(",", ":"))`, byte for byte.
|
|
141
|
+
*
|
|
142
|
+
* Built from the sorted scope and key names rather than from an object so that no caller
|
|
143
|
+
* string is ever used as a property name (see `#load`).
|
|
144
|
+
*/
|
|
145
|
+
function serialize(data) {
|
|
146
|
+
const scopes = [...data.keys()].sort(compare);
|
|
147
|
+
const body = scopes.map((scope) => {
|
|
148
|
+
const keys = [...(data.get(scope)?.keys() ?? [])].sort(compare);
|
|
149
|
+
const entries = keys.map((key) => {
|
|
150
|
+
const values = data.get(scope)?.get(key) ?? [];
|
|
151
|
+
return `${JSON.stringify(key)}:${JSON.stringify(values)}`;
|
|
152
|
+
});
|
|
153
|
+
return `${JSON.stringify(scope)}:{${entries.join(',')}}`;
|
|
154
|
+
});
|
|
155
|
+
return `{${body.join(',')}}`;
|
|
156
|
+
}
|
|
157
|
+
function compare(left, right) {
|
|
158
|
+
return left < right ? -1 : left > right ? 1 : 0;
|
|
159
|
+
}
|
|
160
|
+
function storageKey(options) {
|
|
161
|
+
return `${options.scope}\u0000${options.key}`;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Refuse a declared memory the runtime cannot honour exactly.
|
|
165
|
+
*
|
|
166
|
+
* `summary`, `semantic`, `episodic` and `vector` would each need a model or an index that
|
|
167
|
+
* this layer does not have, and so would `summarizeModel`; `ttl` needs a clock and `redact`
|
|
168
|
+
* needs redaction on the tracing path. Serving them approximately would make the
|
|
169
|
+
* declaration lie, so they are refused by name.
|
|
170
|
+
*/
|
|
171
|
+
export function checkMemorySupported(options) {
|
|
172
|
+
if (!IMPLEMENTED_MEMORY_KINDS.includes(options.kind)) {
|
|
173
|
+
throw new FeatureDeferredError(`memory ${repr(options.memoryId)} asks for kind ${repr(options.kind)}; this layer ` +
|
|
174
|
+
`implements ${IMPLEMENTED_MEMORY_KINDS.join(', ')} and refuses the rest by name`);
|
|
175
|
+
}
|
|
176
|
+
if (options.summarizeModel !== undefined) {
|
|
177
|
+
throw new FeatureDeferredError(`memory ${repr(options.memoryId)} names summarizeModel ` +
|
|
178
|
+
`${repr(options.summarizeModel)}; no summarizer is implemented, so an unbounded ` +
|
|
179
|
+
'buffer is served instead');
|
|
180
|
+
}
|
|
181
|
+
if (options.ttl !== undefined) {
|
|
182
|
+
throw new FeatureDeferredError(`memory ${repr(options.memoryId)} declares ttl ${repr(options.ttl)}; expiry ` +
|
|
183
|
+
'enforcement is not implemented');
|
|
184
|
+
}
|
|
185
|
+
if (options.redact.length > 0) {
|
|
186
|
+
throw new FeatureDeferredError(`memory ${repr(options.memoryId)} declares redaction rules; memory redaction is not implemented`);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Bounds the transcript a single agent turn may replay.
|
|
191
|
+
*
|
|
192
|
+
* `thread` scope is the conversation the loop is already carrying, so this is a trimmer
|
|
193
|
+
* rather than a store: when the transcript exceeds `tokenBudget`, whole tool-call groups are
|
|
194
|
+
* dropped oldest-first. A group is an assistant turn with its tool observations, because
|
|
195
|
+
* dropping one without the other would replay a tool result whose call is gone.
|
|
196
|
+
*
|
|
197
|
+
* A message larger than the whole budget is kept rather than truncated: half a tool
|
|
198
|
+
* observation is worse than an over-budget one, and the budget is a target for what to
|
|
199
|
+
* *replay*, not a hard accounting ceiling.
|
|
200
|
+
*/
|
|
201
|
+
export class ThreadMemory {
|
|
202
|
+
tokenBudget;
|
|
203
|
+
constructor(tokenBudget) {
|
|
204
|
+
if (tokenBudget !== undefined && tokenBudget < 1) {
|
|
205
|
+
throw new ConfigurationError('thread memory tokenBudget must be positive');
|
|
206
|
+
}
|
|
207
|
+
this.tokenBudget = tokenBudget;
|
|
208
|
+
}
|
|
209
|
+
tokens(messages) {
|
|
210
|
+
return messages.reduce((total, message) => total + estimateTokens(message.content), 0);
|
|
211
|
+
}
|
|
212
|
+
trim(messages) {
|
|
213
|
+
if (this.tokenBudget === undefined)
|
|
214
|
+
return [...messages];
|
|
215
|
+
const kept = [...messages];
|
|
216
|
+
let total = this.tokens(kept);
|
|
217
|
+
let start = kept.findIndex((message) => (message.toolCalls?.length ?? 0) > 0);
|
|
218
|
+
if (start === -1)
|
|
219
|
+
start = kept.length;
|
|
220
|
+
while (total > this.tokenBudget && start < kept.length) {
|
|
221
|
+
let end = start + 1;
|
|
222
|
+
while (end < kept.length && kept[end]?.role === 'tool')
|
|
223
|
+
end += 1;
|
|
224
|
+
total -= this.tokens(kept.slice(start, end));
|
|
225
|
+
kept.splice(start, end - start);
|
|
226
|
+
}
|
|
227
|
+
while (total > this.tokenBudget) {
|
|
228
|
+
let victim = -1;
|
|
229
|
+
for (let index = 0; index < kept.length; index += 1) {
|
|
230
|
+
if (kept[index]?.role !== 'system' && index < kept.length - 1) {
|
|
231
|
+
victim = index;
|
|
232
|
+
break;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
if (victim === -1)
|
|
236
|
+
break;
|
|
237
|
+
total -= estimateTokens(kept[victim]?.content ?? '');
|
|
238
|
+
kept.splice(victim, 1);
|
|
239
|
+
}
|
|
240
|
+
return kept;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
/** Fit stored entries into `tokenBudget`, newest first. Returns text and tokens. */
|
|
244
|
+
export function renderContext(entries, tokenBudget) {
|
|
245
|
+
const chosen = [];
|
|
246
|
+
let tokens = 0;
|
|
247
|
+
for (const entry of [...entries].reverse()) {
|
|
248
|
+
const cost = estimateTokens(entry) + 1;
|
|
249
|
+
if (chosen.length > 0 && tokens + cost > tokenBudget)
|
|
250
|
+
break;
|
|
251
|
+
chosen.push(entry);
|
|
252
|
+
tokens += cost;
|
|
253
|
+
if (tokens >= tokenBudget)
|
|
254
|
+
break;
|
|
255
|
+
}
|
|
256
|
+
return { text: [...chosen].reverse().join('\n'), tokens };
|
|
257
|
+
}
|
|
258
|
+
//# sourceMappingURL=memory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/agents/memory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { Message, ToolCall } from '../types.js';
|
|
2
|
+
import type { GuardrailEscalation, GuardrailRecord } from './guardrails.js';
|
|
3
|
+
/**
|
|
4
|
+
* The value types of a run: its steps, its result, and its pause.
|
|
5
|
+
*
|
|
6
|
+
* These live together because they are one shape: a checkpoint *is* a result that stopped
|
|
7
|
+
* early, and a resumed result is a checkpoint plus more steps. Keeping them in one module
|
|
8
|
+
* is also what lets `agents/loop` and a caller share the types without an import cycle.
|
|
9
|
+
*
|
|
10
|
+
* A checkpoint carries the steps completed so far, so a run that paused and resumed
|
|
11
|
+
* reports the whole transcript of steps rather than only the part that happened after the
|
|
12
|
+
* resume -- a trace that forgets the pre-pause steps is not a trace of the run.
|
|
13
|
+
*
|
|
14
|
+
* `caller` is the frame that was awaiting a *delegated* result when the pause happened
|
|
15
|
+
* inside the delegate. Transfer has no caller to return to, which is the distinction the
|
|
16
|
+
* loop is built on; a transfer checkpoint never has one.
|
|
17
|
+
*/
|
|
18
|
+
/** How a run ended. */
|
|
19
|
+
export type RunStatus = 'completed' | 'paused' | 'max-steps' | 'blocked';
|
|
20
|
+
/**
|
|
21
|
+
* `PAUSED` is an outcome, not an error. So is `BLOCKED`: a human rejected an escalation
|
|
22
|
+
* the guardrails raised, which is a decision the run respected rather than a failure it
|
|
23
|
+
* suffered.
|
|
24
|
+
*/
|
|
25
|
+
export declare const RUN_STATUSES: readonly RunStatus[];
|
|
26
|
+
/** What one model step did with its output. */
|
|
27
|
+
export type StepKind = 'answer' | 'tools' | 'transfer' | 'delegate';
|
|
28
|
+
export declare const STEP_KINDS: readonly StepKind[];
|
|
29
|
+
/**
|
|
30
|
+
* One model call, and what was done with its output.
|
|
31
|
+
*
|
|
32
|
+
* `degradedFrom` is set only on the step that stepped down the alias ladder, so "did this
|
|
33
|
+
* run degrade?" is a question the trace answers without arithmetic.
|
|
34
|
+
*/
|
|
35
|
+
export interface StepRecord {
|
|
36
|
+
readonly index: number;
|
|
37
|
+
readonly agentId: string;
|
|
38
|
+
readonly kind: StepKind;
|
|
39
|
+
readonly alias: string;
|
|
40
|
+
readonly model: string;
|
|
41
|
+
readonly costUsd: number;
|
|
42
|
+
readonly totalTokens: number;
|
|
43
|
+
readonly toolNames: readonly string[];
|
|
44
|
+
readonly target: string | undefined;
|
|
45
|
+
readonly degradedFrom: string | undefined;
|
|
46
|
+
}
|
|
47
|
+
/** What a human answered. Rejection is a normal answer, not an error. */
|
|
48
|
+
export type HumanDecision = 'approve' | 'reject';
|
|
49
|
+
/** Everything a paused agent needs to continue, and nothing that is derived. */
|
|
50
|
+
export interface AgentCheckpoint {
|
|
51
|
+
readonly agentId: string;
|
|
52
|
+
readonly step: number;
|
|
53
|
+
readonly messages: readonly Message[];
|
|
54
|
+
readonly steps: readonly StepRecord[];
|
|
55
|
+
readonly calls: readonly ToolCall[];
|
|
56
|
+
readonly channel: string;
|
|
57
|
+
readonly when: Readonly<Record<string, unknown>>;
|
|
58
|
+
/**
|
|
59
|
+
* `approve`: `calls` are awaiting a person. `delegate`: `calls` holds the one control
|
|
60
|
+
* call whose delegate paused, and the resumed frame must append the delegate's answer
|
|
61
|
+
* rather than execute anything.
|
|
62
|
+
*/
|
|
63
|
+
readonly resumeKind: 'approve' | 'delegate';
|
|
64
|
+
readonly costAnchorUsd: number;
|
|
65
|
+
readonly tokenAnchor: number;
|
|
66
|
+
readonly spentUsd: number;
|
|
67
|
+
readonly spentTokens: number;
|
|
68
|
+
readonly degraded: boolean;
|
|
69
|
+
/**
|
|
70
|
+
* The alias the paused frame was actually calling. A resumed run has to keep it:
|
|
71
|
+
* `degraded` records that this run already stepped down, and resuming on the dear alias
|
|
72
|
+
* would silently undo a bounded decision the trace still shows.
|
|
73
|
+
*/
|
|
74
|
+
readonly alias: string;
|
|
75
|
+
readonly path: readonly string[];
|
|
76
|
+
readonly memoryKey: string;
|
|
77
|
+
readonly caller: AgentCheckpoint | undefined;
|
|
78
|
+
/**
|
|
79
|
+
* Set when a guardrail escalated. Its `stage` tells the resume path what to do: an
|
|
80
|
+
* `input` escalation has already been checked, an `output` one holds the answer to
|
|
81
|
+
* release on approval, a `tool-call` one holds `calls` to execute.
|
|
82
|
+
*/
|
|
83
|
+
readonly escalation: GuardrailEscalation | undefined;
|
|
84
|
+
readonly guardrails: readonly GuardrailRecord[];
|
|
85
|
+
}
|
|
86
|
+
/** The question a pause is asking, separated from the resume state. */
|
|
87
|
+
export interface PendingApproval {
|
|
88
|
+
readonly agentId: string;
|
|
89
|
+
readonly channel: string;
|
|
90
|
+
readonly step: number;
|
|
91
|
+
readonly calls: readonly ToolCall[];
|
|
92
|
+
readonly when: Readonly<Record<string, unknown>>;
|
|
93
|
+
readonly path: readonly string[];
|
|
94
|
+
readonly escalation: GuardrailEscalation | undefined;
|
|
95
|
+
}
|
|
96
|
+
export declare function pendingApprovalFrom(checkpoint: AgentCheckpoint): PendingApproval;
|
|
97
|
+
/** What a run produced -- including when it produced no answer. */
|
|
98
|
+
export declare class RunResult {
|
|
99
|
+
readonly status: RunStatus;
|
|
100
|
+
readonly agentId: string;
|
|
101
|
+
readonly answer: string;
|
|
102
|
+
readonly steps: readonly StepRecord[];
|
|
103
|
+
readonly path: readonly string[];
|
|
104
|
+
readonly costUsd: number;
|
|
105
|
+
readonly totalTokens: number;
|
|
106
|
+
readonly checkpoint: AgentCheckpoint | undefined;
|
|
107
|
+
readonly guardrails: readonly GuardrailRecord[];
|
|
108
|
+
constructor(init: {
|
|
109
|
+
readonly status: RunStatus;
|
|
110
|
+
readonly agentId: string;
|
|
111
|
+
readonly answer?: string;
|
|
112
|
+
readonly steps?: readonly StepRecord[];
|
|
113
|
+
readonly path?: readonly string[];
|
|
114
|
+
readonly costUsd?: number;
|
|
115
|
+
readonly totalTokens?: number;
|
|
116
|
+
readonly checkpoint?: AgentCheckpoint;
|
|
117
|
+
readonly guardrails?: readonly GuardrailRecord[];
|
|
118
|
+
});
|
|
119
|
+
get completed(): boolean;
|
|
120
|
+
/** `(from, to)` for every step that stepped down the alias ladder. */
|
|
121
|
+
get degraded(): readonly (readonly [string, string])[];
|
|
122
|
+
/** The question a paused run is asking, or `undefined` when it did not pause. */
|
|
123
|
+
get approval(): PendingApproval | undefined;
|
|
124
|
+
}
|
|
125
|
+
type Json = Record<string, unknown>;
|
|
126
|
+
export declare function checkpointToJson(checkpoint: AgentCheckpoint): Json;
|
|
127
|
+
export declare function checkpointFromJson(raw: Json): AgentCheckpoint;
|
|
128
|
+
/**
|
|
129
|
+
* Whether two checkpoints are the same value.
|
|
130
|
+
*
|
|
131
|
+
* A round trip that only compares the JSON it wrote cannot notice a field the codec
|
|
132
|
+
* dropped on both sides, so this compares the restored value to the original and asserts
|
|
133
|
+
* the class instances came back as instances.
|
|
134
|
+
*/
|
|
135
|
+
export declare function checkpointsEqual(left: AgentCheckpoint, right: AgentCheckpoint): boolean;
|
|
136
|
+
export {};
|
|
137
|
+
//# sourceMappingURL=state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/agents/state.ts"],"names":[],"mappings":"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"}
|