general-agent-runtime 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -10,9 +10,10 @@ Current verification baseline:
10
10
 
11
11
  ```text
12
12
  npm run typecheck ✅
13
- npm test ✅ 15 files / 121 tests
14
- npm run test:coverage ✅ 88.22% statements / 80.83% branches / 93.56% functions
13
+ npm test ✅ 15 files / 125 tests
14
+ npm run test:integration ✅ 2 files / 2 tests
15
15
  npm run build ✅
16
+ npm run test:package ✅
16
17
  git diff --check ✅
17
18
  ```
18
19
 
@@ -28,20 +29,20 @@ The package is ESM-only and requires Node.js 22 or newer.
28
29
 
29
30
  ## Quick start
30
31
 
31
- Set an OpenAI-compatible endpoint:
32
-
33
- ```bash
34
- set AGENT_BASE_URL=https://api.openai.com/v1
35
- set AGENT_API_KEY=your-key
36
- set AGENT_MODEL=gpt-5.6
37
- ```
38
-
39
- Then:
32
+ The Runtime does not discover configuration from files, environment variables, or user directories. The host application resolves those sources and passes explicit Runtime configuration to `createAgent(config)`:
40
33
 
41
34
  ```ts
42
35
  import { createAgent } from "general-agent-runtime";
43
36
 
44
- const agent = await createAgent();
37
+ const agent = await createAgent({
38
+ model: {
39
+ provider: "openai-compatible",
40
+ baseUrl: "https://api.openai.com/v1",
41
+ apiKey: "your-key",
42
+ model: "gpt-5.6",
43
+ contextWindow: 128_000,
44
+ },
45
+ });
45
46
 
46
47
  for await (const event of agent.run("Explain what this project does in one paragraph.")) {
47
48
  if (event.type === "message_delta") {
@@ -50,7 +51,9 @@ for await (const event of agent.run("Explain what this project does in one parag
50
51
  }
51
52
  ```
52
53
 
53
- `createAgent()` resolves defaults, `agent.config.json`, environment variables, and explicit runtime overrides, then assembles the default Runtime.
54
+ `createAgent(config)` requires an explicit configuration object. The supplied partial configuration is merged over built-in Runtime defaults, validated as a complete `RuntimeConfig`, frozen, and passed into the default composition root. Configuration discovery belongs to the host layer, such as a CLI, TUI, desktop client, service, or test harness.
55
+
56
+ For the default OpenAI-compatible provider, `model.contextWindow` declares the model context window in tokens. Runtime projection budgeting and compaction use this value through `ModelCapabilities.contextWindow`. This is an explicit host-supplied capability declaration rather than automatic model metadata discovery. When a custom `ModelProvider` is injected through the Builder, that provider remains responsible for its own `getCapabilities()` result.
54
57
 
55
58
  ## Agent API
56
59
 
@@ -167,7 +170,7 @@ const agent = new DefaultAgentBuilder()
167
170
  .build();
168
171
  ```
169
172
 
170
- Use `createAgent()` for normal application setup; use `DefaultAgentBuilder` when replacing or extending Runtime components. The Builder uses the config you give it (or built-in defaults); unlike `createAgent()`, it does not automatically resolve file/environment configuration sources.
173
+ Use `createAgent(config)` for normal application setup; use `DefaultAgentBuilder` when replacing or extending Runtime components. Neither API discovers configuration sources. The host application owns file, environment, account, and UI settings and passes Runtime configuration explicitly.
171
174
 
172
175
  ## Hooks
173
176
 
@@ -239,7 +242,7 @@ Continue an existing Session:
239
242
  npx general-agent-runtime --session <session-id>
240
243
  ```
241
244
 
242
- The CLI only consumes the public Agent API and Agent events. It does not implement Runtime behavior.
245
+ The CLI is a host application around the public Agent API. It maps `AGENT_PROVIDER`, `AGENT_MODEL`, `AGENT_BASE_URL`, `AGENT_API_KEY`, `AGENT_CONTEXT_WINDOW`, and `AGENT_SESSION_DIR` into explicit Runtime configuration before calling `createAgent(config)`; the Runtime itself does not read environment variables.
243
246
 
244
247
  ## Tests
245
248
 
@@ -249,21 +252,13 @@ Default tests are deterministic unit tests:
249
252
  npm test
250
253
  ```
251
254
 
252
- Coverage uses V8 and enforces minimum global thresholds:
253
-
254
- ```bash
255
- npm run test:coverage
256
- ```
257
-
258
- Current thresholds are 87% statements/lines, 80% branches, and 93% functions. Pure TypeScript declarations and the CLI process entrypoint are excluded from the core Runtime coverage denominator; executable Runtime modules remain included.
259
-
260
255
  Live OpenAI-compatible integration tests are separate:
261
256
 
262
257
  ```bash
263
258
  npm run test:integration
264
259
  ```
265
260
 
266
- Live tests read the same Runtime configuration as the SDK. Configure `agent.config.json`, or provide `AGENT_BASE_URL` and `AGENT_MODEL` environment variables; set `AGENT_API_KEY` when the endpoint requires authentication. If neither explicit file nor environment configuration is present, live tests skip.
261
+ The live-test harness owns its configuration discovery. It optionally reads `agent.config.json` and `AGENT_*` environment variables, merges them in the test layer, and passes the resulting explicit configuration to the Runtime. If neither source is present, live tests skip.
267
262
 
268
263
  ## Package verification
269
264
 
@@ -27,6 +27,7 @@ function createDefaultProvider(config) {
27
27
  ? {}
28
28
  : { apiKey: config.model.apiKey }),
29
29
  defaultCapabilities: {
30
+ contextWindow: config.model.contextWindow,
30
31
  ...(config.model.maxOutputTokens === undefined
31
32
  ? {}
32
33
  : { maxOutputTokens: config.model.maxOutputTokens }),
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/agent/builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/agent/builder.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
- import type { Agent, CreateAgentOptions } from "./types.js";
2
- export declare function createAgent(options?: CreateAgentOptions): Promise<Agent>;
1
+ import { type DeepPartial, type RuntimeConfig } from "../settings/index.js";
2
+ import type { Agent } from "./types.js";
3
+ export declare function createAgent(config: DeepPartial<RuntimeConfig>): Promise<Agent>;
@@ -1,29 +1,9 @@
1
- import { DefaultConfigResolver, DefaultConfigSource, EnvironmentConfigSource, FileConfigSource, RuntimeOverrideSource, } from "../settings/index.js";
1
+ import { DefaultConfigResolver, } from "../settings/index.js";
2
2
  import { DefaultAgentBuilder } from "./builder.js";
3
- function runtimeOverrides(options) {
4
- const overrides = options?.config === undefined
5
- ? {}
6
- : structuredClone(options.config);
7
- const model = {
8
- ...(overrides.model ?? {}),
9
- ...(options?.model === undefined ? {} : { model: options.model }),
10
- ...(options?.apiKey === undefined ? {} : { apiKey: options.apiKey }),
11
- ...(options?.baseUrl === undefined ? {} : { baseUrl: options.baseUrl }),
12
- };
13
- if (Object.keys(model).length > 0) {
14
- overrides.model = model;
15
- }
16
- return overrides;
17
- }
18
- export async function createAgent(options) {
19
- const config = await new DefaultConfigResolver().resolve([
20
- new DefaultConfigSource(),
21
- new FileConfigSource(),
22
- new EnvironmentConfigSource(),
23
- new RuntimeOverrideSource(runtimeOverrides(options)),
24
- ]);
3
+ export async function createAgent(config) {
4
+ const resolved = await new DefaultConfigResolver().resolve(config);
25
5
  return new DefaultAgentBuilder()
26
- .withConfig(config)
6
+ .withConfig(resolved)
27
7
  .build();
28
8
  }
29
9
  //# sourceMappingURL=create-agent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-agent.js","sourceRoot":"","sources":["../../src/agent/create-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,gBAAgB,EAChB,qBAAqB,GAGtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAMnD,SAAS,gBAAgB,CACvB,OAAuC;IAEvC,MAAM,SAAS,GACb,OAAO,EAAE,MAAM,KAAK,SAAS;QAC3B,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEtC,MAAM,KAAK,GAAG;QACZ,GAAG,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC;QAC1B,GAAG,CAAC,OAAO,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;QACjE,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QACpE,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;KACxE,CAAC;IAEF,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAA4B;IAE5B,MAAM,MAAM,GAAG,MAAM,IAAI,qBAAqB,EAAE,CAAC,OAAO,CAAC;QACvD,IAAI,mBAAmB,EAAE;QACzB,IAAI,gBAAgB,EAAE;QACtB,IAAI,uBAAuB,EAAE;QAC7B,IAAI,qBAAqB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;KACrD,CAAC,CAAC;IAEH,OAAO,IAAI,mBAAmB,EAAE;SAC7B,UAAU,CAAC,MAAM,CAAC;SAClB,KAAK,EAAE,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"create-agent.js","sourceRoot":"","sources":["../../src/agent/create-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,GAGtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGnD,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAkC;IAElC,MAAM,QAAQ,GAAG,MAAM,IAAI,qBAAqB,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnE,OAAO,IAAI,mBAAmB,EAAE;SAC7B,UAAU,CAAC,QAAQ,CAAC;SACpB,KAAK,EAAE,CAAC;AACb,CAAC"}
@@ -5,7 +5,7 @@ import type { EventSink } from "../events/sink.js";
5
5
  import type { Hook } from "../hooks/types.js";
6
6
  import type { ModelProvider } from "../model/provider.js";
7
7
  import type { SessionStore } from "../session/store.js";
8
- import type { DeepPartial, RuntimeConfig } from "../settings/types.js";
8
+ import type { RuntimeConfig } from "../settings/types.js";
9
9
  import type { Tool } from "../tools/tool.js";
10
10
  import type { AgentMessage, AgentRunState, Metadata, RunId, SessionId } from "../types/index.js";
11
11
  export interface AgentRunOptions {
@@ -30,9 +30,3 @@ export interface AgentBuilder {
30
30
  withCompactionStrategy(strategy: CompactionStrategy): AgentBuilder;
31
31
  build(): Agent;
32
32
  }
33
- export interface CreateAgentOptions {
34
- readonly model?: string;
35
- readonly apiKey?: string;
36
- readonly baseUrl?: string;
37
- readonly config?: DeepPartial<RuntimeConfig>;
38
- }
package/dist/cli/main.js CHANGED
@@ -3,6 +3,28 @@ import { createInterface } from "node:readline/promises";
3
3
  import { stdin, stdout } from "node:process";
4
4
  import { createAgent, } from "../index.js";
5
5
  import { renderAgentEvent } from "./renderer.js";
6
+ function runtimeConfigFromEnvironment() {
7
+ const model = {};
8
+ const session = {};
9
+ if (process.env.AGENT_PROVIDER)
10
+ model.provider = process.env.AGENT_PROVIDER;
11
+ if (process.env.AGENT_MODEL)
12
+ model.model = process.env.AGENT_MODEL;
13
+ if (process.env.AGENT_BASE_URL)
14
+ model.baseUrl = process.env.AGENT_BASE_URL;
15
+ if (process.env.AGENT_API_KEY)
16
+ model.apiKey = process.env.AGENT_API_KEY;
17
+ if (process.env.AGENT_CONTEXT_WINDOW) {
18
+ model.contextWindow = Number(process.env.AGENT_CONTEXT_WINDOW);
19
+ }
20
+ if (process.env.AGENT_SESSION_DIR) {
21
+ session.directory = process.env.AGENT_SESSION_DIR;
22
+ }
23
+ return {
24
+ ...(Object.keys(model).length === 0 ? {} : { model }),
25
+ ...(Object.keys(session).length === 0 ? {} : { session }),
26
+ };
27
+ }
6
28
  function parseSessionArg(args) {
7
29
  const index = args.indexOf("--session");
8
30
  if (index === -1) {
@@ -23,16 +45,19 @@ if (process.argv.includes("--help") || process.argv.includes("-h")) {
23
45
  " general-agent-runtime --session <session-id>",
24
46
  "",
25
47
  "Environment:",
48
+ " AGENT_PROVIDER",
49
+ " AGENT_MODEL",
26
50
  " AGENT_BASE_URL",
27
51
  " AGENT_API_KEY",
28
- " AGENT_MODEL",
52
+ " AGENT_CONTEXT_WINDOW",
53
+ " AGENT_SESSION_DIR",
29
54
  "",
30
55
  "Ctrl+C aborts the active run; press Ctrl+C while idle to exit.",
31
56
  "",
32
57
  ].join("\n"));
33
58
  process.exit(0);
34
59
  }
35
- const agent = await createAgent();
60
+ const agent = await createAgent(runtimeConfigFromEnvironment());
36
61
  let sessionId = parseSessionArg(process.argv.slice(2));
37
62
  let activeController;
38
63
  let running = false;
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,2 @@
1
- import type { ConfigSource } from "./source.js";
2
1
  import type { RuntimeConfig } from "./types.js";
3
2
  export declare const DEFAULT_RUNTIME_CONFIG: RuntimeConfig;
4
- export declare class DefaultConfigSource implements ConfigSource {
5
- readonly name = "defaults";
6
- load(): Promise<RuntimeConfig>;
7
- }
@@ -3,6 +3,7 @@ export const DEFAULT_RUNTIME_CONFIG = {
3
3
  provider: "openai-compatible",
4
4
  model: "gpt-5.6",
5
5
  baseUrl: "https://api.openai.com/v1",
6
+ contextWindow: 128_000,
6
7
  maxOutputTokens: 8192
7
8
  },
8
9
  session: {
@@ -31,10 +32,4 @@ export const DEFAULT_RUNTIME_CONFIG = {
31
32
  defaultTimeoutMs: 10_000
32
33
  }
33
34
  };
34
- export class DefaultConfigSource {
35
- name = "defaults";
36
- async load() {
37
- return structuredClone(DEFAULT_RUNTIME_CONFIG);
38
- }
39
- }
40
35
  //# sourceMappingURL=defaults.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/settings/defaults.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,sBAAsB,GAAkB;IACnD,KAAK,EAAE;QACL,QAAQ,EAAE,mBAAmB;QAC7B,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,2BAA2B;QACpC,eAAe,EAAE,IAAI;KACtB;IACD,OAAO,EAAE;QACP,SAAS,EAAE,YAAY;QACvB,aAAa,EAAE,CAAC;KACjB;IACD,KAAK,EAAE;QACL,SAAS,EAAE,MAAM;QACjB,cAAc,EAAE,MAAM;QACtB,cAAc,EAAE,GAAG;QACnB,WAAW,EAAE,CAAC;KACf;IACD,UAAU,EAAE;QACV,OAAO,EAAE,IAAI;QACb,cAAc,EAAE,IAAI;QACpB,cAAc,EAAE,IAAI;QACpB,kBAAkB,EAAE,MAAM;QAC1B,sBAAsB,EAAE,CAAC;QACzB,uBAAuB,EAAE,CAAC;KAC3B;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,EAAE;QACZ,aAAa,EAAE,EAAE;KAClB;IACD,KAAK,EAAE;QACL,gBAAgB,EAAE,MAAM;KACzB;CACF,CAAC;AAEF,MAAM,OAAO,mBAAmB;IACrB,IAAI,GAAG,UAAU,CAAC;IAE3B,KAAK,CAAC,IAAI;QACR,OAAO,eAAe,CAAC,sBAAsB,CAAC,CAAC;IACjD,CAAC;CACF"}
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/settings/defaults.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,sBAAsB,GAAkB;IACnD,KAAK,EAAE;QACL,QAAQ,EAAE,mBAAmB;QAC7B,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,2BAA2B;QACpC,aAAa,EAAE,OAAO;QACtB,eAAe,EAAE,IAAI;KACtB;IACD,OAAO,EAAE;QACP,SAAS,EAAE,YAAY;QACvB,aAAa,EAAE,CAAC;KACjB;IACD,KAAK,EAAE;QACL,SAAS,EAAE,MAAM;QACjB,cAAc,EAAE,MAAM;QACtB,cAAc,EAAE,GAAG;QACnB,WAAW,EAAE,CAAC;KACf;IACD,UAAU,EAAE;QACV,OAAO,EAAE,IAAI;QACb,cAAc,EAAE,IAAI;QACpB,cAAc,EAAE,IAAI;QACpB,kBAAkB,EAAE,MAAM;QAC1B,sBAAsB,EAAE,CAAC;QACzB,uBAAuB,EAAE,CAAC;KAC3B;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,EAAE;QACZ,aAAa,EAAE,EAAE;KAClB;IACD,KAAK,EAAE;QACL,gBAAgB,EAAE,MAAM;KACzB;CACF,CAAC"}
@@ -1,8 +1,4 @@
1
1
  export type * from "./types.js";
2
- export type * from "./source.js";
3
2
  export * from "./defaults.js";
4
- export * from "./env-source.js";
5
- export * from "./file-source.js";
6
- export * from "./runtime-source.js";
7
3
  export * from "./resolver.js";
8
4
  export * from "./schema.js";
@@ -1,7 +1,4 @@
1
1
  export * from "./defaults.js";
2
- export * from "./env-source.js";
3
- export * from "./file-source.js";
4
- export * from "./runtime-source.js";
5
2
  export * from "./resolver.js";
6
3
  export * from "./schema.js";
7
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/settings/index.ts"],"names":[],"mappings":"AAEA,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/settings/index.ts"],"names":[],"mappings":"AACA,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC"}
@@ -1,5 +1,4 @@
1
- import type { ConfigSource } from "./source.js";
2
- import type { RuntimeConfig } from "./types.js";
1
+ import type { DeepPartial, RuntimeConfig } from "./types.js";
3
2
  export declare class DefaultConfigResolver {
4
- resolve(sources: readonly ConfigSource[], signal?: AbortSignal): Promise<RuntimeConfig>;
3
+ resolve(overrides?: DeepPartial<RuntimeConfig>, signal?: AbortSignal): Promise<RuntimeConfig>;
5
4
  }
@@ -1,14 +1,11 @@
1
1
  import { RuntimeError } from "../errors/runtime-error.js";
2
2
  import { deepFreeze, deepMerge } from "../utils/deep.js";
3
+ import { DEFAULT_RUNTIME_CONFIG } from "./defaults.js";
3
4
  import { runtimeConfigSchema } from "./schema.js";
4
5
  export class DefaultConfigResolver {
5
- async resolve(sources, signal) {
6
- let merged = {};
7
- for (const source of sources) {
8
- signal?.throwIfAborted();
9
- const loaded = await source.load(signal);
10
- merged = deepMerge(merged, loaded);
11
- }
6
+ async resolve(overrides = {}, signal) {
7
+ signal?.throwIfAborted();
8
+ const merged = deepMerge(structuredClone(DEFAULT_RUNTIME_CONFIG), structuredClone(overrides));
12
9
  const parsed = runtimeConfigSchema.safeParse(merged);
13
10
  if (!parsed.success) {
14
11
  throw new RuntimeError({
@@ -18,9 +15,9 @@ export class DefaultConfigResolver {
18
15
  metadata: {
19
16
  issues: parsed.error.issues.map((issue) => ({
20
17
  path: issue.path.join("."),
21
- message: issue.message
22
- }))
23
- }
18
+ message: issue.message,
19
+ })),
20
+ },
24
21
  });
25
22
  }
26
23
  return deepFreeze(parsed.data);
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/settings/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAIlD,MAAM,OAAO,qBAAqB;IAChC,KAAK,CAAC,OAAO,CACX,OAAgC,EAChC,MAAoB;QAEpB,IAAI,MAAM,GAA+B,EAAE,CAAC;QAE5C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,EAAE,cAAc,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzC,MAAM,GAAG,SAAS,CAChB,MAAiC,EACjC,MAAiC,CACJ,CAAC;QAClC,CAAC;QAED,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAErD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,YAAY,CAAC;gBACrB,IAAI,EAAE,gBAAgB;gBACtB,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,kCAAkC;gBAC3C,QAAQ,EAAE;oBACR,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;wBAC1C,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;wBAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;qBACvB,CAAC,CAAC;iBACJ;aACF,CAAC,CAAC;QACL,CAAC;QAED,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,CAAkB,CAAC;IAClD,CAAC;CACF"}
1
+ {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/settings/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGlD,MAAM,OAAO,qBAAqB;IAChC,KAAK,CAAC,OAAO,CACX,YAAwC,EAAE,EAC1C,MAAoB;QAEpB,MAAM,EAAE,cAAc,EAAE,CAAC;QAEzB,MAAM,MAAM,GAAG,SAAS,CACtB,eAAe,CAAC,sBAAsB,CAAuC,EAC7E,eAAe,CAAC,SAAS,CAAuC,CACnC,CAAC;QAEhC,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAErD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,YAAY,CAAC;gBACrB,IAAI,EAAE,gBAAgB;gBACtB,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,kCAAkC;gBAC3C,QAAQ,EAAE;oBACR,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;wBAC1C,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;wBAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;qBACvB,CAAC,CAAC;iBACJ;aACF,CAAC,CAAC;QACL,CAAC;QAED,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,CAAkB,CAAC;IAClD,CAAC;CACF"}
@@ -5,6 +5,7 @@ export declare const runtimeConfigSchema: z.ZodObject<{
5
5
  model: z.ZodString;
6
6
  baseUrl: z.ZodOptional<z.ZodString>;
7
7
  apiKey: z.ZodOptional<z.ZodString>;
8
+ contextWindow: z.ZodNumber;
8
9
  maxOutputTokens: z.ZodOptional<z.ZodNumber>;
9
10
  temperature: z.ZodOptional<z.ZodNumber>;
10
11
  extra: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
@@ -6,6 +6,7 @@ export const runtimeConfigSchema = z.object({
6
6
  model: z.string().min(1),
7
7
  baseUrl: z.string().url().optional(),
8
8
  apiKey: z.string().min(1).optional(),
9
+ contextWindow: z.number().int().positive(),
9
10
  maxOutputTokens: z.number().int().positive().optional(),
10
11
  temperature: z.number().finite().optional(),
11
12
  extra: z.record(z.string(), z.unknown()).optional()
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/settings/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAEvC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACxB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QACpC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QACpC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QACvD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3C,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;KACpD,CAAC;IACF,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;KAC3C,CAAC;IACF,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QACtC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QAC3C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QAC3C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;KACzC,CAAC;IACF,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;QACpB,cAAc,EAAE,KAAK;QACrB,cAAc,EAAE,KAAK;QACrB,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;QAClD,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;QACtD,uBAAuB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;KACrD,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAC5B,IAAI,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;YACjD,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,gBAAgB,CAAC;gBACxB,OAAO,EAAE,iDAAiD;aAC3D,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IACF,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACb,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QACrC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;KAC3C,CAAC;IACF,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;KAC9C,CAAC;CACH,CAAC,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/settings/schema.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ export interface ModelConfig {
4
4
  readonly model: string;
5
5
  readonly baseUrl?: string;
6
6
  readonly apiKey?: string;
7
+ readonly contextWindow: number;
7
8
  readonly maxOutputTokens?: number;
8
9
  readonly temperature?: number;
9
10
  readonly extra?: Metadata;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "general-agent-runtime",
3
- "version": "0.0.1",
3
+ "version": "0.0.3",
4
4
  "description": "A small, composable general-purpose AI agent runtime for TypeScript.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,8 +0,0 @@
1
- import type { ConfigSource } from "./source.js";
2
- import type { DeepPartial, RuntimeConfig } from "./types.js";
3
- export declare class EnvironmentConfigSource implements ConfigSource {
4
- private readonly env;
5
- readonly name = "environment";
6
- constructor(env?: Readonly<Record<string, string | undefined>>);
7
- load(): Promise<DeepPartial<RuntimeConfig>>;
8
- }
@@ -1,26 +0,0 @@
1
- export class EnvironmentConfigSource {
2
- env;
3
- name = "environment";
4
- constructor(env = process.env) {
5
- this.env = env;
6
- }
7
- async load() {
8
- const model = {};
9
- const session = {};
10
- if (this.env.AGENT_PROVIDER)
11
- model.provider = this.env.AGENT_PROVIDER;
12
- if (this.env.AGENT_MODEL)
13
- model.model = this.env.AGENT_MODEL;
14
- if (this.env.AGENT_BASE_URL)
15
- model.baseUrl = this.env.AGENT_BASE_URL;
16
- if (this.env.AGENT_API_KEY)
17
- model.apiKey = this.env.AGENT_API_KEY;
18
- if (this.env.AGENT_SESSION_DIR)
19
- session.directory = this.env.AGENT_SESSION_DIR;
20
- return {
21
- ...(Object.keys(model).length > 0 ? { model } : {}),
22
- ...(Object.keys(session).length > 0 ? { session } : {})
23
- };
24
- }
25
- }
26
- //# sourceMappingURL=env-source.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"env-source.js","sourceRoot":"","sources":["../../src/settings/env-source.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,uBAAuB;IAIf;IAHV,IAAI,GAAG,aAAa,CAAC;IAE9B,YACmB,MAAoD,OAAO,CAAC,GAAG;QAA/D,QAAG,GAAH,GAAG,CAA4D;IAC/E,CAAC;IAEJ,KAAK,CAAC,IAAI;QACR,MAAM,KAAK,GAAwC,EAAE,CAAC;QACtD,MAAM,OAAO,GAA0C,EAAE,CAAC;QAE1D,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc;YAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC;QACtE,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW;YAAE,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;QAC7D,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc;YAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC;QACrE,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa;YAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;QAClE,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB;YAAE,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAE/E,OAAO;YACL,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxD,CAAC;IACJ,CAAC;CACF"}
@@ -1,9 +0,0 @@
1
- import type { ConfigSource } from "./source.js";
2
- import type { DeepPartial, RuntimeConfig } from "./types.js";
3
- export declare class FileConfigSource implements ConfigSource {
4
- private readonly path;
5
- private readonly optional;
6
- readonly name = "file";
7
- constructor(path?: string, optional?: boolean);
8
- load(signal?: AbortSignal): Promise<DeepPartial<RuntimeConfig>>;
9
- }
@@ -1,32 +0,0 @@
1
- import { readFile } from "node:fs/promises";
2
- import { RuntimeError } from "../errors/runtime-error.js";
3
- export class FileConfigSource {
4
- path;
5
- optional;
6
- name = "file";
7
- constructor(path = "agent.config.json", optional = true) {
8
- this.path = path;
9
- this.optional = optional;
10
- }
11
- async load(signal) {
12
- try {
13
- const raw = await readFile(this.path, { encoding: "utf8", signal });
14
- return JSON.parse(raw);
15
- }
16
- catch (error) {
17
- if (this.optional && isNodeError(error) && error.code === "ENOENT") {
18
- return {};
19
- }
20
- throw new RuntimeError({
21
- code: "CONFIG_INVALID",
22
- category: "config",
23
- message: `Failed to read config file: ${this.path}`,
24
- cause: error
25
- });
26
- }
27
- }
28
- }
29
- function isNodeError(error) {
30
- return error instanceof Error && "code" in error;
31
- }
32
- //# sourceMappingURL=file-source.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-source.js","sourceRoot":"","sources":["../../src/settings/file-source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAI1D,MAAM,OAAO,gBAAgB;IAIR;IACA;IAJV,IAAI,GAAG,MAAM,CAAC;IAEvB,YACmB,OAAO,mBAAmB,EAC1B,WAAW,IAAI;QADf,SAAI,GAAJ,IAAI,CAAsB;QAC1B,aAAQ,GAAR,QAAQ,CAAO;IAC/B,CAAC;IAEJ,KAAK,CAAC,IAAI,CAAC,MAAoB;QAC7B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YACpE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAA+B,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,IAAI,CAAC,QAAQ,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACnE,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,MAAM,IAAI,YAAY,CAAC;gBACrB,IAAI,EAAE,gBAAgB;gBACtB,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,+BAA+B,IAAI,CAAC,IAAI,EAAE;gBACnD,KAAK,EAAE,KAAK;aACb,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,CAAC;AACnD,CAAC"}
@@ -1,8 +0,0 @@
1
- import type { ConfigSource } from "./source.js";
2
- import type { DeepPartial, RuntimeConfig } from "./types.js";
3
- export declare class RuntimeOverrideSource implements ConfigSource {
4
- private readonly value;
5
- readonly name = "runtime";
6
- constructor(value: DeepPartial<RuntimeConfig>);
7
- load(): Promise<DeepPartial<RuntimeConfig>>;
8
- }
@@ -1,11 +0,0 @@
1
- export class RuntimeOverrideSource {
2
- value;
3
- name = "runtime";
4
- constructor(value) {
5
- this.value = value;
6
- }
7
- async load() {
8
- return structuredClone(this.value);
9
- }
10
- }
11
- //# sourceMappingURL=runtime-source.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime-source.js","sourceRoot":"","sources":["../../src/settings/runtime-source.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,qBAAqB;IAGH;IAFpB,IAAI,GAAG,SAAS,CAAC;IAE1B,YAA6B,KAAiC;QAAjC,UAAK,GAAL,KAAK,CAA4B;IAAG,CAAC;IAElE,KAAK,CAAC,IAAI;QACR,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;CACF"}
@@ -1,5 +0,0 @@
1
- import type { DeepPartial, RuntimeConfig } from "./types.js";
2
- export interface ConfigSource {
3
- readonly name: string;
4
- load(signal?: AbortSignal): Promise<DeepPartial<RuntimeConfig>>;
5
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=source.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"source.js","sourceRoot":"","sources":["../../src/settings/source.ts"],"names":[],"mappings":""}