@haikeilabs/agentware 0.1.0 → 0.2.1
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 +19 -0
- package/dist/executor/agent_loop.d.ts +50 -0
- package/dist/executor/agent_loop.d.ts.map +1 -0
- package/dist/executor/agent_loop.js +255 -0
- package/dist/executor/executor.d.ts.map +1 -1
- package/dist/executor/executor.js +6 -2
- package/dist/executor/index.d.ts +2 -1
- package/dist/executor/index.d.ts.map +1 -1
- package/dist/executor/index.js +2 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/kei/index.d.ts +2 -0
- package/dist/kei/index.d.ts.map +1 -0
- package/dist/kei/index.js +1 -0
- package/dist/kei/runtimeLink.d.ts +281 -0
- package/dist/kei/runtimeLink.d.ts.map +1 -0
- package/dist/kei/runtimeLink.js +591 -0
- package/dist/llm/backend.d.ts +7 -0
- package/dist/llm/backend.d.ts.map +1 -1
- package/dist/llm/index.d.ts +2 -1
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/index.js +1 -0
- package/dist/llm/openai_backend.d.ts +51 -0
- package/dist/llm/openai_backend.d.ts.map +1 -0
- package/dist/llm/openai_backend.js +203 -0
- package/dist/llm/response.d.ts +5 -0
- package/dist/llm/response.d.ts.map +1 -1
- package/dist/middleware/guardrails/response_validator.d.ts +1 -1
- package/dist/middleware/guardrails/response_validator.d.ts.map +1 -1
- package/dist/middleware/guardrails/response_validator.js +1 -1
- package/dist/middleware/index.d.ts +5 -0
- package/dist/middleware/index.d.ts.map +1 -1
- package/dist/middleware/index.js +5 -0
- package/dist/middleware/inference.d.ts +8 -0
- package/dist/middleware/inference.d.ts.map +1 -1
- package/dist/middleware/inference.js +73 -31
- package/dist/reasoning/adapter.d.ts +33 -0
- package/dist/reasoning/adapter.d.ts.map +1 -0
- package/dist/reasoning/adapter.js +365 -0
- package/dist/reasoning/errors.d.ts +28 -0
- package/dist/reasoning/errors.d.ts.map +1 -0
- package/dist/reasoning/errors.js +57 -0
- package/dist/reasoning/index.d.ts +6 -0
- package/dist/reasoning/index.d.ts.map +1 -0
- package/dist/reasoning/index.js +4 -0
- package/dist/reasoning/options.d.ts +18 -0
- package/dist/reasoning/options.d.ts.map +1 -0
- package/dist/reasoning/options.js +18 -0
- package/dist/reasoning/types.d.ts +44 -0
- package/dist/reasoning/types.d.ts.map +1 -0
- package/dist/reasoning/types.js +32 -0
- package/dist/toolformat/formatter.d.ts +3 -3
- package/dist/toolformat/formatter.d.ts.map +1 -1
- package/dist/tools/index.d.ts +2 -2
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -2
- package/dist/tools/registry.d.ts +4 -4
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/tool.d.ts +8 -1
- package/dist/tools/tool.d.ts.map +1 -1
- package/dist/tools/tool.js +7 -0
- package/package.json +17 -1
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RuntimeLink contract: the harness → Agentware → kei-connector-runtime heartbeat.
|
|
3
|
+
*
|
|
4
|
+
* TypeScript mirror of the Go reference `go/kei/runtimelink` for
|
|
5
|
+
* `docs/specs/runtime-heartbeat-liveness.md` (HAI-141). Contract types only:
|
|
6
|
+
* configuration, status, identity, failure classes, the child's JSONL wire
|
|
7
|
+
* events, and redacted lifecycle events. It never spawns a process, opens a
|
|
8
|
+
* network connection, or reads a credential value. The only heartbeat path is
|
|
9
|
+
* harness → RuntimeLink → kei-connector-runtime; nothing here talks to the
|
|
10
|
+
* catalog.
|
|
11
|
+
*
|
|
12
|
+
* All three SDK languages share `testing/contracts/runtime-link`. Durations
|
|
13
|
+
* are milliseconds here (`intervalMs`), seconds in Python, and
|
|
14
|
+
* `time.Duration` in Go.
|
|
15
|
+
*/
|
|
16
|
+
/** The child stdout event version ("v") this SDK accepts. */
|
|
17
|
+
export declare const RUNTIME_LINK_CONTRACT_VERSION = 1;
|
|
18
|
+
/** Bound on one child stdout line, excluding the newline. */
|
|
19
|
+
export declare const MAX_CHILD_LINE_BYTES = 4096;
|
|
20
|
+
/** Capacity of the RuntimeLink event ring. */
|
|
21
|
+
export declare const RUNTIME_LINK_EVENT_BUFFER_SIZE = 64;
|
|
22
|
+
export declare const RUNTIME_LINK_SDK_LANG = "typescript";
|
|
23
|
+
export declare const HARNESS_KINDS: readonly ["assistant", "pde", "chat-discord", "chat-slack", "chat-teams", "cli"];
|
|
24
|
+
export type HarnessKind = (typeof HARNESS_KINDS)[number];
|
|
25
|
+
export declare const LINK_STATES: readonly ["disabled", "starting", "connected", "degraded", "reconnecting", "terminal", "stopped"];
|
|
26
|
+
export type LinkState = (typeof LINK_STATES)[number];
|
|
27
|
+
/**
|
|
28
|
+
* Closed failure taxonomy (spec §6.3). Separates harness↔runtime failures
|
|
29
|
+
* from runtime↔catalog failures so alerts route to the right owner.
|
|
30
|
+
*/
|
|
31
|
+
export declare const FAILURE_CLASSES: readonly ["config_invalid", "runtime_unavailable", "runtime_crashloop", "runtime_unresponsive", "contract_mismatch", "catalog_unreachable", "catalog_timeout", "catalog_error", "catalog_backpressure", "installation_unauthorized", "installation_stale", "installation_offline", "audit_backlog", "legacy_runtime_unverified"];
|
|
32
|
+
export type FailureClass = (typeof FAILURE_CLASSES)[number];
|
|
33
|
+
export declare const BEAT_OUTCOMES: readonly ["ok", "catalog_unreachable", "catalog_timeout", "catalog_error", "catalog_backpressure", "catalog_rejected", "unauthorized"];
|
|
34
|
+
export type BeatOutcome = (typeof BEAT_OUTCOMES)[number];
|
|
35
|
+
export declare const LIFECYCLE_EVENT_NAMES: readonly ["runtime.link.started", "runtime.link.connected", "runtime.link.degraded", "runtime.link.reconnecting", "runtime.link.terminal", "runtime.link.stopped"];
|
|
36
|
+
export type LifecycleEventName = (typeof LIFECYCLE_EVENT_NAMES)[number];
|
|
37
|
+
export declare const SDK_LANGS: readonly ["go", "python", "typescript"];
|
|
38
|
+
export type SdkLang = (typeof SDK_LANGS)[number];
|
|
39
|
+
/** The exact environment a runtime child may receive; never `process.env`. */
|
|
40
|
+
export declare const CHILD_ENV_ALLOWLIST: readonly ["KEI_RUNTIME_TOKEN", "KEI_RUNTIME_CONTROL_PLANE_URL", "KEI_HARNESS_KIND", "KEI_HARNESS_VERSION", "KEI_DEPLOYMENT_ENV", "KEI_AGENTWARE_SDK_LANG", "KEI_AGENTWARE_SDK_VERSION", "KEI_HEARTBEAT_RUN_ID", "PATH", "HOME", "TZ"];
|
|
41
|
+
/** Environment variables. KEI_PROXY_* keep their legacy names (runtime contract). */
|
|
42
|
+
export declare const RUNTIME_LINK_ENV: {
|
|
43
|
+
readonly enabled: "KEI_RUNTIME_ENABLED";
|
|
44
|
+
readonly token: "KEI_RUNTIME_TOKEN";
|
|
45
|
+
readonly legacyToken: "KEI_HARNESS_TOKEN";
|
|
46
|
+
readonly controlPlaneUrl: "KEI_RUNTIME_CONTROL_PLANE_URL";
|
|
47
|
+
readonly proxyPath: "KEI_PROXY_PATH";
|
|
48
|
+
readonly proxySha: "KEI_PROXY_SHA";
|
|
49
|
+
readonly interval: "KEI_HEARTBEAT_INTERVAL";
|
|
50
|
+
readonly timeout: "KEI_HEARTBEAT_TIMEOUT";
|
|
51
|
+
readonly restartMin: "KEI_HEARTBEAT_RESTART_MIN";
|
|
52
|
+
readonly restartMax: "KEI_HEARTBEAT_RESTART_MAX";
|
|
53
|
+
readonly stableSeconds: "KEI_HEARTBEAT_STABLE_SECONDS";
|
|
54
|
+
readonly logCount: "KEI_HEARTBEAT_LOG_COUNT";
|
|
55
|
+
readonly harnessKind: "KEI_HARNESS_KIND";
|
|
56
|
+
readonly harnessVersion: "KEI_HARNESS_VERSION";
|
|
57
|
+
readonly deploymentEnv: "KEI_DEPLOYMENT_ENV";
|
|
58
|
+
};
|
|
59
|
+
/** The distribution keeps the kei-proxy name; the repo is kei-connector-runtime. */
|
|
60
|
+
export declare const DEFAULT_RUNTIME_BINARY_PATH = "kei-proxy";
|
|
61
|
+
/**
|
|
62
|
+
* Bounds. Interval is clamped; everything else is rejected when out of range
|
|
63
|
+
* so a typo fails closed instead of silently changing behavior.
|
|
64
|
+
*/
|
|
65
|
+
export declare const RUNTIME_LINK_BOUNDS: {
|
|
66
|
+
readonly minIntervalMs: 15000;
|
|
67
|
+
readonly maxIntervalMs: 300000;
|
|
68
|
+
readonly maxGraceMs: 300000;
|
|
69
|
+
readonly minRestartMs: 1000;
|
|
70
|
+
readonly maxRestartMs: 3600000;
|
|
71
|
+
readonly minStableResetMs: 1000;
|
|
72
|
+
readonly maxStableResetMs: 3600000;
|
|
73
|
+
readonly minStopTimeoutMs: 1000;
|
|
74
|
+
readonly maxStopTimeoutMs: 60000;
|
|
75
|
+
readonly maxLogCount: 100;
|
|
76
|
+
};
|
|
77
|
+
export declare const RUNTIME_LINK_CONFIG_ERROR_CODES: readonly ["invalid_value", "out_of_range", "beat_timeout", "harness_kind", "envelope", "legacy_token", "token_missing", "control_plane_url", "binary"];
|
|
78
|
+
export type RuntimeLinkConfigErrorCode = (typeof RUNTIME_LINK_CONFIG_ERROR_CODES)[number];
|
|
79
|
+
/**
|
|
80
|
+
* Invalid RuntimeLink configuration. Carries the offending field and a stable
|
|
81
|
+
* code, never the offending value, so a misplaced secret cannot leak.
|
|
82
|
+
*/
|
|
83
|
+
export declare class RuntimeLinkConfigError extends Error {
|
|
84
|
+
readonly code: RuntimeLinkConfigErrorCode;
|
|
85
|
+
readonly field: string;
|
|
86
|
+
constructor(code: RuntimeLinkConfigErrorCode, field: string);
|
|
87
|
+
}
|
|
88
|
+
/** The runtime binary and its expected SHA-256 (lowercase hex). */
|
|
89
|
+
export interface BinaryRef {
|
|
90
|
+
path: string;
|
|
91
|
+
sha256: string;
|
|
92
|
+
}
|
|
93
|
+
/** Where the runtime token lives: the env var name only, never the value. */
|
|
94
|
+
export interface SecretSource {
|
|
95
|
+
env: string;
|
|
96
|
+
}
|
|
97
|
+
/** Child restart backoff with full jitter. */
|
|
98
|
+
export interface Backoff {
|
|
99
|
+
minMs: number;
|
|
100
|
+
maxMs: number;
|
|
101
|
+
stableResetMs: number;
|
|
102
|
+
}
|
|
103
|
+
/** Declared, non-authoritative harness metadata. Never used for authorization. */
|
|
104
|
+
export interface HarnessEnvelope {
|
|
105
|
+
kind: string;
|
|
106
|
+
version: string;
|
|
107
|
+
deploymentEnv: string;
|
|
108
|
+
}
|
|
109
|
+
export interface RuntimeLinkConfig {
|
|
110
|
+
enabled: boolean;
|
|
111
|
+
binary: BinaryRef;
|
|
112
|
+
controlPlaneUrl: string;
|
|
113
|
+
token: SecretSource;
|
|
114
|
+
intervalMs: number;
|
|
115
|
+
beatTimeoutMs: number;
|
|
116
|
+
graceMs: number;
|
|
117
|
+
restart: Backoff;
|
|
118
|
+
stopTimeoutMs: number;
|
|
119
|
+
logCount: number;
|
|
120
|
+
harness: HarnessEnvelope;
|
|
121
|
+
}
|
|
122
|
+
/** The spec defaults with the link disabled. */
|
|
123
|
+
export declare function defaultRuntimeLinkConfig(): RuntimeLinkConfig;
|
|
124
|
+
/**
|
|
125
|
+
* Clamp `intervalMs` to [15s, 300s] and validate every other field, throwing
|
|
126
|
+
* RuntimeLinkConfigError on the first violation. A disabled link (local-only
|
|
127
|
+
* mode) is valid, but its declared envelope and timings are still checked so
|
|
128
|
+
* typos fail loudly.
|
|
129
|
+
*/
|
|
130
|
+
export declare function normalizeRuntimeLinkConfig(cfg: RuntimeLinkConfig): RuntimeLinkConfig;
|
|
131
|
+
export type EnvSource = Readonly<Record<string, string | undefined>>;
|
|
132
|
+
/**
|
|
133
|
+
* Build a normalized config from the spec §3.2 variables. Non-empty fields of
|
|
134
|
+
* `harness` override the KEI_HARNESS_* variables. The runtime token is only
|
|
135
|
+
* checked for presence; its value is never retained.
|
|
136
|
+
*/
|
|
137
|
+
export declare function runtimeLinkConfigFromEnv(env?: EnvSource, harness?: Partial<HarnessEnvelope>): RuntimeLinkConfig;
|
|
138
|
+
/**
|
|
139
|
+
* Full-jitter restart delay for attempt n (0-based):
|
|
140
|
+
* `floor(r × min(maxMs, minMs × 2^n))`. `r` is clamped to [0, 1); negative
|
|
141
|
+
* attempts count as 0.
|
|
142
|
+
*/
|
|
143
|
+
export declare function backoffDelayMs(backoff: Pick<Backoff, "minMs" | "maxMs">, attempt: number, r: number): number;
|
|
144
|
+
export interface WaitBackoffOptions {
|
|
145
|
+
signal?: AbortSignal;
|
|
146
|
+
random?: () => number;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Sleep for the jittered delay, or reject with the signal's abort reason as
|
|
150
|
+
* soon as `signal` aborts, so a stop during backoff never waits out the delay.
|
|
151
|
+
*/
|
|
152
|
+
export declare function waitBackoff(backoff: Pick<Backoff, "minMs" | "maxMs">, attempt: number, options?: WaitBackoffOptions): Promise<void>;
|
|
153
|
+
/** Point-in-time snapshot. Diagnostic only: readiness must never depend on it. */
|
|
154
|
+
export interface LinkStatus {
|
|
155
|
+
state: LinkState;
|
|
156
|
+
/** Absent when connected. */
|
|
157
|
+
reason?: FailureClass;
|
|
158
|
+
lastBeatAt?: Date;
|
|
159
|
+
lastCatalogOkAt?: Date;
|
|
160
|
+
consecutiveFails: number;
|
|
161
|
+
runId: string;
|
|
162
|
+
restarts: number;
|
|
163
|
+
}
|
|
164
|
+
/** Authoritative installation identity from catalog whoami, via the runtime. */
|
|
165
|
+
export interface RuntimeIdentity {
|
|
166
|
+
runId: string;
|
|
167
|
+
installationId: string;
|
|
168
|
+
orgId: string;
|
|
169
|
+
workspaceId: string;
|
|
170
|
+
platform: string;
|
|
171
|
+
status: string;
|
|
172
|
+
bindingStatus: string;
|
|
173
|
+
runtimeVersion: string;
|
|
174
|
+
}
|
|
175
|
+
export type ChildLineErrorKind = "line_too_long" | "malformed" | "contract_mismatch";
|
|
176
|
+
/** A child line the SDK must drop and count. */
|
|
177
|
+
export declare class ChildLineError extends Error {
|
|
178
|
+
readonly kind: ChildLineErrorKind;
|
|
179
|
+
constructor(kind: ChildLineErrorKind, detail: string);
|
|
180
|
+
}
|
|
181
|
+
export interface BeatEvent {
|
|
182
|
+
runId: string;
|
|
183
|
+
/** 0 when absent: the runtime omits seq on beats sent before identity. */
|
|
184
|
+
seq: number;
|
|
185
|
+
at: string;
|
|
186
|
+
outcome: BeatOutcome;
|
|
187
|
+
httpStatus: number;
|
|
188
|
+
latencyMs: number;
|
|
189
|
+
nextInMs: number;
|
|
190
|
+
}
|
|
191
|
+
export interface TerminalEvent {
|
|
192
|
+
runId: string;
|
|
193
|
+
reason: string;
|
|
194
|
+
}
|
|
195
|
+
export type ChildEvent = {
|
|
196
|
+
kind: "identity";
|
|
197
|
+
identity: RuntimeIdentity;
|
|
198
|
+
} | {
|
|
199
|
+
kind: "beat";
|
|
200
|
+
beat: BeatEvent;
|
|
201
|
+
} | {
|
|
202
|
+
kind: "terminal";
|
|
203
|
+
terminal: TerminalEvent;
|
|
204
|
+
} | {
|
|
205
|
+
kind: "ignored";
|
|
206
|
+
};
|
|
207
|
+
/**
|
|
208
|
+
* Parse one line of child stdout (a trailing "\n" / "\r\n" is ignored). Only
|
|
209
|
+
* allowlisted fields survive; payloads, results, reasoning, tokens, or any
|
|
210
|
+
* other key the runtime might emit are dropped. Throws ChildLineError for
|
|
211
|
+
* lines the SDK must drop and count.
|
|
212
|
+
*/
|
|
213
|
+
export declare function parseChildLine(line: string | Uint8Array): ChildEvent;
|
|
214
|
+
/** A lifecycle event has a value outside its closed set or bounds. */
|
|
215
|
+
export declare class InvalidLinkEventError extends Error {
|
|
216
|
+
constructor(detail: string);
|
|
217
|
+
}
|
|
218
|
+
export interface EventHarness {
|
|
219
|
+
kind: HarnessKind;
|
|
220
|
+
version: string;
|
|
221
|
+
deploymentEnv: string;
|
|
222
|
+
sdkLang: SdkLang;
|
|
223
|
+
sdkVersion: string;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* A redacted lifecycle record. Redacted by construction: the type has no
|
|
227
|
+
* field that could carry a token, argv, env, child stderr, provider payload
|
|
228
|
+
* or result, reasoning, customer content, or a subject.
|
|
229
|
+
*/
|
|
230
|
+
export interface LinkEvent {
|
|
231
|
+
name: LifecycleEventName;
|
|
232
|
+
at: Date;
|
|
233
|
+
state: LinkState;
|
|
234
|
+
/** Empty when there is no failure. */
|
|
235
|
+
reason: FailureClass | "";
|
|
236
|
+
runId: string;
|
|
237
|
+
seq: number;
|
|
238
|
+
sdkInstanceId: string;
|
|
239
|
+
harness: EventHarness;
|
|
240
|
+
restarts: number;
|
|
241
|
+
consecutiveFails: number;
|
|
242
|
+
}
|
|
243
|
+
/** The serialized form: exactly these keys, in this order. */
|
|
244
|
+
export interface LinkEventWire {
|
|
245
|
+
name: LifecycleEventName;
|
|
246
|
+
at: string;
|
|
247
|
+
state: LinkState;
|
|
248
|
+
reason: FailureClass | "";
|
|
249
|
+
run_id: string;
|
|
250
|
+
seq: number;
|
|
251
|
+
sdk_instance_id: string;
|
|
252
|
+
harness: {
|
|
253
|
+
kind: HarnessKind;
|
|
254
|
+
version: string;
|
|
255
|
+
deployment_env: string;
|
|
256
|
+
sdk_lang: SdkLang;
|
|
257
|
+
sdk_version: string;
|
|
258
|
+
};
|
|
259
|
+
restarts: number;
|
|
260
|
+
consecutive_fails: number;
|
|
261
|
+
}
|
|
262
|
+
/** Throws InvalidLinkEventError unless every closed set and bound holds. */
|
|
263
|
+
export declare function validateLinkEvent(ev: LinkEvent): LinkEvent;
|
|
264
|
+
/** Build an event from allowlisted wire keys only; everything else is dropped. */
|
|
265
|
+
export declare function linkEventFromWire(raw: unknown): LinkEvent;
|
|
266
|
+
/** Validate and emit exactly the allowlisted keys; `at` is UTC with millisecond precision. */
|
|
267
|
+
export declare function linkEventToWire(ev: LinkEvent): LinkEventWire;
|
|
268
|
+
/**
|
|
269
|
+
* Supervises the harness→runtime heartbeat. `start` returns promptly and
|
|
270
|
+
* rejects only for invalid config, never for network or runtime state.
|
|
271
|
+
* Aborting the signal passed to `start`, or calling `stop`, ends the link;
|
|
272
|
+
* `stop` is idempotent and bounded by `stopTimeoutMs`.
|
|
273
|
+
*/
|
|
274
|
+
export interface RuntimeLink {
|
|
275
|
+
start(signal?: AbortSignal): Promise<void>;
|
|
276
|
+
stop(): Promise<void>;
|
|
277
|
+
status(): LinkStatus;
|
|
278
|
+
identity(): RuntimeIdentity | undefined;
|
|
279
|
+
events(): AsyncIterable<LinkEvent>;
|
|
280
|
+
}
|
|
281
|
+
//# sourceMappingURL=runtimeLink.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtimeLink.d.ts","sourceRoot":"","sources":["../../src/kei/runtimeLink.ts"],"names":[],"mappings":"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"}
|