@rarebit-one/harness-kernel 0.15.0 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +268 -17
- package/dist/agent.d.ts +24 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +138 -30
- package/dist/agent.js.map +1 -1
- package/dist/connectors/auth.d.ts +32 -0
- package/dist/connectors/auth.d.ts.map +1 -0
- package/dist/connectors/auth.js +85 -0
- package/dist/connectors/auth.js.map +1 -0
- package/dist/connectors/mcpClient.d.ts +14 -4
- package/dist/connectors/mcpClient.d.ts.map +1 -1
- package/dist/connectors/mcpClient.js +32 -11
- package/dist/connectors/mcpClient.js.map +1 -1
- package/dist/engines/acp.d.ts.map +1 -1
- package/dist/engines/acp.js +2 -1
- package/dist/engines/acp.js.map +1 -1
- package/dist/engines/agentSdk.d.ts +11 -0
- package/dist/engines/agentSdk.d.ts.map +1 -0
- package/dist/engines/agentSdk.js +26 -0
- package/dist/engines/agentSdk.js.map +1 -0
- package/dist/engines/agentSdkMissing.d.ts +6 -0
- package/dist/engines/agentSdkMissing.d.ts.map +1 -0
- package/dist/engines/agentSdkMissing.js +12 -0
- package/dist/engines/agentSdkMissing.js.map +1 -0
- package/dist/engines/capability.d.ts +1 -1
- package/dist/engines/capability.js +1 -1
- package/dist/engines/capabilityMcp.d.ts +14 -4
- package/dist/engines/capabilityMcp.d.ts.map +1 -1
- package/dist/engines/capabilityMcp.js +5 -3
- package/dist/engines/capabilityMcp.js.map +1 -1
- package/dist/engines/claudeCode.d.ts.map +1 -1
- package/dist/engines/claudeCode.js +2 -1
- package/dist/engines/claudeCode.js.map +1 -1
- package/dist/engines/claudeCodeDriver.d.ts +4 -3
- package/dist/engines/claudeCodeDriver.d.ts.map +1 -1
- package/dist/engines/claudeCodeDriver.js +13 -8
- package/dist/engines/claudeCodeDriver.js.map +1 -1
- package/dist/engines/codex.d.ts +4 -4
- package/dist/engines/codex.d.ts.map +1 -1
- package/dist/engines/codex.js +6 -5
- package/dist/engines/codex.js.map +1 -1
- package/dist/engines/codexDriver.d.ts +1 -1
- package/dist/engines/codexDriver.js +1 -1
- package/dist/engines/connectorMcp.d.ts +13 -0
- package/dist/engines/connectorMcp.d.ts.map +1 -1
- package/dist/engines/connectorMcp.js +23 -0
- package/dist/engines/connectorMcp.js.map +1 -1
- package/dist/engines/gateway.d.ts +5 -2
- package/dist/engines/gateway.d.ts.map +1 -1
- package/dist/engines/gateway.js +7 -2
- package/dist/engines/gateway.js.map +1 -1
- package/dist/engines/native.d.ts.map +1 -1
- package/dist/engines/native.js +10 -3
- package/dist/engines/native.js.map +1 -1
- package/dist/engines/types.d.ts +10 -1
- package/dist/engines/types.d.ts.map +1 -1
- package/dist/events.d.ts +22 -8
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js.map +1 -1
- package/dist/index.d.ts +14 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -2
- package/dist/index.js.map +1 -1
- package/dist/loop.d.ts +23 -0
- package/dist/loop.d.ts.map +1 -1
- package/dist/loop.js +1 -0
- package/dist/loop.js.map +1 -1
- package/dist/models/chat.d.ts +12 -6
- package/dist/models/chat.d.ts.map +1 -1
- package/dist/models/chat.js +11 -6
- package/dist/models/chat.js.map +1 -1
- package/dist/models/retry.d.ts +252 -0
- package/dist/models/retry.d.ts.map +1 -0
- package/dist/models/retry.js +400 -0
- package/dist/models/retry.js.map +1 -0
- package/dist/models/types.d.ts +7 -0
- package/dist/models/types.d.ts.map +1 -1
- package/dist/models/types.js.map +1 -1
- package/dist/private.d.ts.map +1 -1
- package/dist/private.js +12 -2
- package/dist/private.js.map +1 -1
- package/dist/providers/anthropic.d.ts +1 -2
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +0 -12
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/index.d.ts +1 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/mock.d.ts +1 -2
- package/dist/providers/mock.d.ts.map +1 -1
- package/dist/providers/mock.js +14 -18
- package/dist/providers/mock.js.map +1 -1
- package/dist/providers/openai.d.ts +1 -2
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +0 -14
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/scripted.d.ts +1 -3
- package/dist/providers/scripted.d.ts.map +1 -1
- package/dist/providers/scripted.js +0 -9
- package/dist/providers/scripted.js.map +1 -1
- package/dist/providers/types.d.ts +0 -6
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/secrets.d.ts +17 -7
- package/dist/secrets.d.ts.map +1 -1
- package/dist/secrets.js +38 -24
- package/dist/secrets.js.map +1 -1
- package/dist/tools/concurrency.d.ts +48 -0
- package/dist/tools/concurrency.d.ts.map +1 -0
- package/dist/tools/concurrency.js +64 -0
- package/dist/tools/concurrency.js.map +1 -0
- package/dist/tools/metadata.d.ts +18 -3
- package/dist/tools/metadata.d.ts.map +1 -1
- package/dist/tools/metadata.js +7 -0
- package/dist/tools/metadata.js.map +1 -1
- package/dist/tools/registry.d.ts +6 -4
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +5 -3
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/terminal.d.ts +8 -6
- package/dist/tools/terminal.d.ts.map +1 -1
- package/dist/tools/terminal.js +8 -6
- package/dist/tools/terminal.js.map +1 -1
- package/dist/tools/validate.d.ts +49 -0
- package/dist/tools/validate.d.ts.map +1 -0
- package/dist/tools/validate.js +346 -0
- package/dist/tools/validate.js.map +1 -0
- package/dist/transcript.d.ts +53 -0
- package/dist/transcript.d.ts.map +1 -0
- package/dist/transcript.js +104 -0
- package/dist/transcript.js.map +1 -0
- package/dist/types.d.ts +44 -5
- package/dist/types.d.ts.map +1 -1
- package/package.json +13 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/tools/validate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { AgentMessage, ToolCall, ToolResult } from "./providers/types.js";
|
|
2
|
+
/** A user turn as the loop's history carries it. */
|
|
3
|
+
export type UserTurn = Extract<AgentMessage, {
|
|
4
|
+
role: "user";
|
|
5
|
+
}>;
|
|
6
|
+
/** How {@link settleMessages} answers a tool call that has no result. */
|
|
7
|
+
export interface SettleOptions {
|
|
8
|
+
/**
|
|
9
|
+
* The result for an unanswered call. The helper sets `toolCallId` itself.
|
|
10
|
+
* Absent, each call gets a neutral error result saying it was not run; pass
|
|
11
|
+
* one to say something else (`rejected: true` for a parked call the caller
|
|
12
|
+
* declined, say).
|
|
13
|
+
*/
|
|
14
|
+
answer?: (call: ToolCall) => Omit<ToolResult, "toolCallId">;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* A transcript in which every tool call has a result, ready to be continued.
|
|
18
|
+
*
|
|
19
|
+
* A stored transcript can end on calls nobody answered: a run that suspended
|
|
20
|
+
* on an external call the caller then abandoned, or a transcript an
|
|
21
|
+
* application built or cut itself. Every provider rejects a tool call with no
|
|
22
|
+
* result, wherever it sits in the history, so each assistant turn's missing
|
|
23
|
+
* results are added here: into the tool turn that follows it when there is
|
|
24
|
+
* one (one tool turn answers one assistant turn, as `withToolResults` keeps
|
|
25
|
+
* it), else as a new tool turn straight after it. Calls that already have a
|
|
26
|
+
* result are left alone, so settling twice changes nothing.
|
|
27
|
+
*
|
|
28
|
+
* What the loop never writes is thrown on rather than dropped, since it
|
|
29
|
+
* means the transcript was damaged and rewriting what the model was shown
|
|
30
|
+
* would hide that: a tool turn that answers no call (one that does not follow
|
|
31
|
+
* an assistant turn, or a result for a call id that turn never made), two
|
|
32
|
+
* results for one call, two calls with one id, and an assistant turn's
|
|
33
|
+
* results split across consecutive tool turns. Settle after answering, never
|
|
34
|
+
* before: `settleMessages(withToolResults(messages, results))`.
|
|
35
|
+
*
|
|
36
|
+
* The output ends with whatever the input ended with, now whole; it is a
|
|
37
|
+
* valid seed when that is a user message or a tool turn. Use
|
|
38
|
+
* {@link withUserTurn} to append the next user message. Neither array is
|
|
39
|
+
* mutated; untouched messages are shared with the input.
|
|
40
|
+
*/
|
|
41
|
+
export declare function settleMessages(messages: AgentMessage[], options?: SettleOptions): AgentMessage[];
|
|
42
|
+
/**
|
|
43
|
+
* The seed for the next user turn: `messages` settled (see
|
|
44
|
+
* {@link settleMessages}), then `turn` appended. The result always passes the
|
|
45
|
+
* loop's seed check. A string is the turn's text; an object is the turn
|
|
46
|
+
* without its `role`.
|
|
47
|
+
*
|
|
48
|
+
* This prepares the transcript and nothing else. What the next run may spend
|
|
49
|
+
* is the caller's policy: pass fresh limits for a per-turn budget, or
|
|
50
|
+
* `remainingLimits(limits, consumed)` to carry one budget across turns.
|
|
51
|
+
*/
|
|
52
|
+
export declare function withUserTurn(messages: AgentMessage[], turn: string | Omit<UserTurn, "role">, options?: SettleOptions): AgentMessage[];
|
|
53
|
+
//# sourceMappingURL=transcript.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transcript.d.ts","sourceRoot":"","sources":["../src/transcript.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAE9E,oDAAoD;AACpD,MAAM,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAE9D,yEAAyE;AACzE,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;CAC5D;AAeD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,YAAY,EAAE,EACxB,OAAO,GAAE,aAAkB,GAC1B,YAAY,EAAE,CA2DhB;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,YAAY,EAAE,EACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,EACrC,OAAO,GAAE,aAAkB,GAC1B,YAAY,EAAE,CAIhB"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/** The result an unanswered call gets when the caller chose none. */
|
|
2
|
+
function unanswered() {
|
|
3
|
+
return { content: "not run: the turn ended before this tool call was answered", isError: true };
|
|
4
|
+
}
|
|
5
|
+
/** The values that occur more than once, each named once. */
|
|
6
|
+
function repeated(ids) {
|
|
7
|
+
const seen = new Set();
|
|
8
|
+
const twice = new Set();
|
|
9
|
+
for (const id of ids)
|
|
10
|
+
(seen.has(id) ? twice : seen).add(id);
|
|
11
|
+
return [...twice];
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* A transcript in which every tool call has a result, ready to be continued.
|
|
15
|
+
*
|
|
16
|
+
* A stored transcript can end on calls nobody answered: a run that suspended
|
|
17
|
+
* on an external call the caller then abandoned, or a transcript an
|
|
18
|
+
* application built or cut itself. Every provider rejects a tool call with no
|
|
19
|
+
* result, wherever it sits in the history, so each assistant turn's missing
|
|
20
|
+
* results are added here: into the tool turn that follows it when there is
|
|
21
|
+
* one (one tool turn answers one assistant turn, as `withToolResults` keeps
|
|
22
|
+
* it), else as a new tool turn straight after it. Calls that already have a
|
|
23
|
+
* result are left alone, so settling twice changes nothing.
|
|
24
|
+
*
|
|
25
|
+
* What the loop never writes is thrown on rather than dropped, since it
|
|
26
|
+
* means the transcript was damaged and rewriting what the model was shown
|
|
27
|
+
* would hide that: a tool turn that answers no call (one that does not follow
|
|
28
|
+
* an assistant turn, or a result for a call id that turn never made), two
|
|
29
|
+
* results for one call, two calls with one id, and an assistant turn's
|
|
30
|
+
* results split across consecutive tool turns. Settle after answering, never
|
|
31
|
+
* before: `settleMessages(withToolResults(messages, results))`.
|
|
32
|
+
*
|
|
33
|
+
* The output ends with whatever the input ended with, now whole; it is a
|
|
34
|
+
* valid seed when that is a user message or a tool turn. Use
|
|
35
|
+
* {@link withUserTurn} to append the next user message. Neither array is
|
|
36
|
+
* mutated; untouched messages are shared with the input.
|
|
37
|
+
*/
|
|
38
|
+
export function settleMessages(messages, options = {}) {
|
|
39
|
+
const answer = options.answer ?? unanswered;
|
|
40
|
+
const settled = [];
|
|
41
|
+
for (let i = 0; i < messages.length; i += 1) {
|
|
42
|
+
const message = messages[i];
|
|
43
|
+
if (!message)
|
|
44
|
+
continue;
|
|
45
|
+
if (message.role === "tool") {
|
|
46
|
+
// Every tool turn that follows an assistant turn is consumed below, so
|
|
47
|
+
// one reached here answers nothing.
|
|
48
|
+
throw new Error(`transcript message ${i} is a tool turn that does not follow an assistant turn, ` +
|
|
49
|
+
"so its results answer no call");
|
|
50
|
+
}
|
|
51
|
+
settled.push(message);
|
|
52
|
+
if (message.role !== "assistant" || message.toolCalls.length === 0)
|
|
53
|
+
continue;
|
|
54
|
+
const duplicateCalls = repeated(message.toolCalls.map((c) => c.id));
|
|
55
|
+
if (duplicateCalls.length > 0) {
|
|
56
|
+
throw new Error(`transcript message ${i} makes more than one tool call with the same id: ` +
|
|
57
|
+
duplicateCalls.join(", "));
|
|
58
|
+
}
|
|
59
|
+
const next = messages[i + 1];
|
|
60
|
+
const given = next?.role === "tool" ? next.results : [];
|
|
61
|
+
const asked = new Set(message.toolCalls.map((c) => c.id));
|
|
62
|
+
const stray = given.filter((r) => !asked.has(r.toolCallId)).map((r) => r.toolCallId);
|
|
63
|
+
if (stray.length > 0) {
|
|
64
|
+
throw new Error(`transcript message ${i + 1} answers call id(s) the assistant turn before it never made: ` +
|
|
65
|
+
stray.join(", "));
|
|
66
|
+
}
|
|
67
|
+
// Settling before answering (`withToolResults` after this helper) gives a
|
|
68
|
+
// call its placeholder and then its real result; every provider refuses
|
|
69
|
+
// two results for one call, so that is refused here instead.
|
|
70
|
+
const duplicateResults = repeated(given.map((r) => r.toolCallId));
|
|
71
|
+
if (duplicateResults.length > 0) {
|
|
72
|
+
throw new Error(`transcript message ${i + 1} answers call id(s) more than once: ` +
|
|
73
|
+
duplicateResults.join(", "));
|
|
74
|
+
}
|
|
75
|
+
const byId = new Map(given.map((r) => [r.toolCallId, r]));
|
|
76
|
+
if (next?.role === "tool")
|
|
77
|
+
i += 1;
|
|
78
|
+
if (next?.role === "tool" && byId.size === message.toolCalls.length) {
|
|
79
|
+
settled.push(next);
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
// In call order, so a stored tool turn reads in the order the calls were made.
|
|
83
|
+
settled.push({
|
|
84
|
+
role: "tool",
|
|
85
|
+
results: message.toolCalls.map((call) => byId.get(call.id) ?? { ...answer(call), toolCallId: call.id }),
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
return settled;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* The seed for the next user turn: `messages` settled (see
|
|
92
|
+
* {@link settleMessages}), then `turn` appended. The result always passes the
|
|
93
|
+
* loop's seed check. A string is the turn's text; an object is the turn
|
|
94
|
+
* without its `role`.
|
|
95
|
+
*
|
|
96
|
+
* This prepares the transcript and nothing else. What the next run may spend
|
|
97
|
+
* is the caller's policy: pass fresh limits for a per-turn budget, or
|
|
98
|
+
* `remainingLimits(limits, consumed)` to carry one budget across turns.
|
|
99
|
+
*/
|
|
100
|
+
export function withUserTurn(messages, turn, options = {}) {
|
|
101
|
+
const user = typeof turn === "string" ? { role: "user", text: turn } : { ...turn, role: "user" };
|
|
102
|
+
return [...settleMessages(messages, options), user];
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=transcript.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transcript.js","sourceRoot":"","sources":["../src/transcript.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -12,10 +12,23 @@ export interface ConnectorConfig {
|
|
|
12
12
|
/** For the stdio transport. */
|
|
13
13
|
command?: string;
|
|
14
14
|
args?: string[];
|
|
15
|
-
/**
|
|
15
|
+
/**
|
|
16
|
+
* Token is already resolved by the caller; the kernel treats it as opaque.
|
|
17
|
+
* For a credential that rotates, set `headers` instead of `token`: the
|
|
18
|
+
* kernel asks it for every request (HTTP-family transports only).
|
|
19
|
+
*/
|
|
16
20
|
auth?: {
|
|
17
21
|
type: "bearer" | "none";
|
|
18
22
|
token?: string;
|
|
23
|
+
headers?: ConnectorAuthHeaders;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* The client identity announced to the server. Absent means the kernel's
|
|
27
|
+
* default name suffixed with the connector's own name, at version `0.1.0`.
|
|
28
|
+
*/
|
|
29
|
+
clientInfo?: {
|
|
30
|
+
name: string;
|
|
31
|
+
version?: string;
|
|
19
32
|
};
|
|
20
33
|
/**
|
|
21
34
|
* The server's own tool names (not namespaced) this run may see and call.
|
|
@@ -26,6 +39,28 @@ export interface ConnectorConfig {
|
|
|
26
39
|
*/
|
|
27
40
|
tools?: string[];
|
|
28
41
|
}
|
|
42
|
+
/** What the kernel tells a {@link ConnectorAuthHeaders} function when it asks. */
|
|
43
|
+
export interface ConnectorAuthRequest {
|
|
44
|
+
/** The connector's `name`. */
|
|
45
|
+
connector: string;
|
|
46
|
+
/**
|
|
47
|
+
* True when the server just answered 401 to headers this function gave: the
|
|
48
|
+
* kernel asks once more and retries the request once, so return a fresh
|
|
49
|
+
* credential rather than a cached one.
|
|
50
|
+
*/
|
|
51
|
+
refresh: boolean;
|
|
52
|
+
/** Aborts when the connection is closed. */
|
|
53
|
+
signal?: AbortSignal;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Returns the headers that authenticate one request to an MCP server, e.g.
|
|
57
|
+
* `{ Authorization: "Bearer …" }`. Called before every request the transport
|
|
58
|
+
* makes, so cache inside it if minting is expensive. Every value is masked in
|
|
59
|
+
* what the run's tools hand back to the model, so return only credential
|
|
60
|
+
* headers. A throw fails that request with a message naming the connector,
|
|
61
|
+
* not the error.
|
|
62
|
+
*/
|
|
63
|
+
export type ConnectorAuthHeaders = (request: ConnectorAuthRequest) => Record<string, string> | Promise<Record<string, string>>;
|
|
29
64
|
/**
|
|
30
65
|
* What a run is allowed to touch. `tools` acts as an allowlist of tool names,
|
|
31
66
|
* `hosts` as an egress allowlist for the http_fetch primitive; the open index
|
|
@@ -69,11 +104,15 @@ export interface WorkflowDefinition {
|
|
|
69
104
|
preferred?: string;
|
|
70
105
|
};
|
|
71
106
|
prompt?: string;
|
|
72
|
-
/** Shell commands run in the sandbox BEFORE the agent, to install the
|
|
73
|
-
* dependencies (e.g. `npm ci`).
|
|
74
|
-
*
|
|
107
|
+
/** Shell commands meant to run in the sandbox BEFORE the agent, to install the
|
|
108
|
+
* run's own dependencies (e.g. `npm ci`). The kernel carries this and never
|
|
109
|
+
* executes it: the caller runs it before `engine.run`, with the run's secrets
|
|
110
|
+
* in env, and should abort the run on failure (the agent must not run without
|
|
111
|
+
* its deps). */
|
|
75
112
|
setup?: string[];
|
|
76
|
-
/** Shell commands run as a deterministic audit gate after output is
|
|
113
|
+
/** Shell commands meant to run as a deterministic audit gate after output is
|
|
114
|
+
* produced. The kernel carries this and never executes it: the caller runs it
|
|
115
|
+
* after `engine.run` and decides what a failure means. */
|
|
77
116
|
verify?: string[];
|
|
78
117
|
}
|
|
79
118
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,KAAK,GAAG,MAAM,CAAA;IACpB,SAAS,EAAE,OAAO,GAAG,iBAAiB,GAAG,KAAK,CAAA;IAC9C,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,KAAK,GAAG,MAAM,CAAA;IACpB,SAAS,EAAE,OAAO,GAAG,iBAAiB,GAAG,KAAK,CAAA;IAC9C,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf;;;;OAIG;IACH,IAAI,CAAC,EAAE;QAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,oBAAoB,CAAA;KAAE,CAAA;IAClF;;;OAGG;IACH,UAAU,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC/C;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;CACjB;AAED,kFAAkF;AAClF,MAAM,WAAW,oBAAoB;IACnC,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB;;;;OAIG;IACH,OAAO,EAAE,OAAO,CAAA;IAChB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,oBAAoB,GAAG,CACjC,OAAO,EAAE,oBAAoB,KAC1B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;AAE7D;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC3B,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9C,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,QAAQ,CAAC,EAAE;QAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;IAC1C,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;IAC7C,MAAM,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC7B,QAAQ,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACjC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;qBAIiB;IACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB;;+DAE2D;IAC3D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAClB"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rarebit-one/harness-kernel",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.0",
|
|
4
4
|
"description": "Provider-neutral AI-harness kernel — LLM adapters, tool-use loop, MCP connectors, and a pluggable agent-engine seam",
|
|
5
5
|
"license": "MIT",
|
|
6
|
-
"author": "
|
|
6
|
+
"author": "Rarebit One <code@jaryl.dev>",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"main": "./dist/index.js",
|
|
9
9
|
"module": "./dist/index.js",
|
|
@@ -51,17 +51,25 @@
|
|
|
51
51
|
"prepublishOnly": "npm run build"
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"@anthropic-ai/claude-agent-sdk": "^0.3.228",
|
|
55
54
|
"@anthropic-ai/sdk": "^1.0.0",
|
|
56
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
55
|
+
"@modelcontextprotocol/sdk": "^1.32.0",
|
|
57
56
|
"@zed-industries/agent-client-protocol": "^0.4.5",
|
|
58
57
|
"openai": "^7.4.0",
|
|
59
58
|
"undici": "^8.10.0",
|
|
60
59
|
"zod": "^4.4.3"
|
|
61
60
|
},
|
|
61
|
+
"peerDependencies": {
|
|
62
|
+
"@anthropic-ai/claude-agent-sdk": "^0.3.228"
|
|
63
|
+
},
|
|
64
|
+
"peerDependenciesMeta": {
|
|
65
|
+
"@anthropic-ai/claude-agent-sdk": {
|
|
66
|
+
"optional": true
|
|
67
|
+
}
|
|
68
|
+
},
|
|
62
69
|
"devDependencies": {
|
|
70
|
+
"@anthropic-ai/claude-agent-sdk": "^0.3.228",
|
|
63
71
|
"@eslint/js": "^10.0.1",
|
|
64
|
-
"@types/node": "^
|
|
72
|
+
"@types/node": "^22",
|
|
65
73
|
"@vitest/eslint-plugin": "^1.6.27",
|
|
66
74
|
"eslint": "^10.8.1",
|
|
67
75
|
"eslint-config-prettier": "^10.1.8",
|