@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.
Files changed (132) hide show
  1. package/README.md +268 -17
  2. package/dist/agent.d.ts +24 -0
  3. package/dist/agent.d.ts.map +1 -1
  4. package/dist/agent.js +138 -30
  5. package/dist/agent.js.map +1 -1
  6. package/dist/connectors/auth.d.ts +32 -0
  7. package/dist/connectors/auth.d.ts.map +1 -0
  8. package/dist/connectors/auth.js +85 -0
  9. package/dist/connectors/auth.js.map +1 -0
  10. package/dist/connectors/mcpClient.d.ts +14 -4
  11. package/dist/connectors/mcpClient.d.ts.map +1 -1
  12. package/dist/connectors/mcpClient.js +32 -11
  13. package/dist/connectors/mcpClient.js.map +1 -1
  14. package/dist/engines/acp.d.ts.map +1 -1
  15. package/dist/engines/acp.js +2 -1
  16. package/dist/engines/acp.js.map +1 -1
  17. package/dist/engines/agentSdk.d.ts +11 -0
  18. package/dist/engines/agentSdk.d.ts.map +1 -0
  19. package/dist/engines/agentSdk.js +26 -0
  20. package/dist/engines/agentSdk.js.map +1 -0
  21. package/dist/engines/agentSdkMissing.d.ts +6 -0
  22. package/dist/engines/agentSdkMissing.d.ts.map +1 -0
  23. package/dist/engines/agentSdkMissing.js +12 -0
  24. package/dist/engines/agentSdkMissing.js.map +1 -0
  25. package/dist/engines/capability.d.ts +1 -1
  26. package/dist/engines/capability.js +1 -1
  27. package/dist/engines/capabilityMcp.d.ts +14 -4
  28. package/dist/engines/capabilityMcp.d.ts.map +1 -1
  29. package/dist/engines/capabilityMcp.js +5 -3
  30. package/dist/engines/capabilityMcp.js.map +1 -1
  31. package/dist/engines/claudeCode.d.ts.map +1 -1
  32. package/dist/engines/claudeCode.js +2 -1
  33. package/dist/engines/claudeCode.js.map +1 -1
  34. package/dist/engines/claudeCodeDriver.d.ts +4 -3
  35. package/dist/engines/claudeCodeDriver.d.ts.map +1 -1
  36. package/dist/engines/claudeCodeDriver.js +13 -8
  37. package/dist/engines/claudeCodeDriver.js.map +1 -1
  38. package/dist/engines/codex.d.ts +4 -4
  39. package/dist/engines/codex.d.ts.map +1 -1
  40. package/dist/engines/codex.js +6 -5
  41. package/dist/engines/codex.js.map +1 -1
  42. package/dist/engines/codexDriver.d.ts +1 -1
  43. package/dist/engines/codexDriver.js +1 -1
  44. package/dist/engines/connectorMcp.d.ts +13 -0
  45. package/dist/engines/connectorMcp.d.ts.map +1 -1
  46. package/dist/engines/connectorMcp.js +23 -0
  47. package/dist/engines/connectorMcp.js.map +1 -1
  48. package/dist/engines/gateway.d.ts +5 -2
  49. package/dist/engines/gateway.d.ts.map +1 -1
  50. package/dist/engines/gateway.js +7 -2
  51. package/dist/engines/gateway.js.map +1 -1
  52. package/dist/engines/native.d.ts.map +1 -1
  53. package/dist/engines/native.js +10 -3
  54. package/dist/engines/native.js.map +1 -1
  55. package/dist/engines/types.d.ts +10 -1
  56. package/dist/engines/types.d.ts.map +1 -1
  57. package/dist/events.d.ts +22 -8
  58. package/dist/events.d.ts.map +1 -1
  59. package/dist/events.js.map +1 -1
  60. package/dist/index.d.ts +14 -4
  61. package/dist/index.d.ts.map +1 -1
  62. package/dist/index.js +7 -2
  63. package/dist/index.js.map +1 -1
  64. package/dist/loop.d.ts +23 -0
  65. package/dist/loop.d.ts.map +1 -1
  66. package/dist/loop.js +1 -0
  67. package/dist/loop.js.map +1 -1
  68. package/dist/models/chat.d.ts +12 -6
  69. package/dist/models/chat.d.ts.map +1 -1
  70. package/dist/models/chat.js +11 -6
  71. package/dist/models/chat.js.map +1 -1
  72. package/dist/models/retry.d.ts +252 -0
  73. package/dist/models/retry.d.ts.map +1 -0
  74. package/dist/models/retry.js +400 -0
  75. package/dist/models/retry.js.map +1 -0
  76. package/dist/models/types.d.ts +7 -0
  77. package/dist/models/types.d.ts.map +1 -1
  78. package/dist/models/types.js.map +1 -1
  79. package/dist/private.d.ts.map +1 -1
  80. package/dist/private.js +12 -2
  81. package/dist/private.js.map +1 -1
  82. package/dist/providers/anthropic.d.ts +1 -2
  83. package/dist/providers/anthropic.d.ts.map +1 -1
  84. package/dist/providers/anthropic.js +0 -12
  85. package/dist/providers/anthropic.js.map +1 -1
  86. package/dist/providers/index.d.ts +1 -1
  87. package/dist/providers/index.d.ts.map +1 -1
  88. package/dist/providers/mock.d.ts +1 -2
  89. package/dist/providers/mock.d.ts.map +1 -1
  90. package/dist/providers/mock.js +14 -18
  91. package/dist/providers/mock.js.map +1 -1
  92. package/dist/providers/openai.d.ts +1 -2
  93. package/dist/providers/openai.d.ts.map +1 -1
  94. package/dist/providers/openai.js +0 -14
  95. package/dist/providers/openai.js.map +1 -1
  96. package/dist/providers/scripted.d.ts +1 -3
  97. package/dist/providers/scripted.d.ts.map +1 -1
  98. package/dist/providers/scripted.js +0 -9
  99. package/dist/providers/scripted.js.map +1 -1
  100. package/dist/providers/types.d.ts +0 -6
  101. package/dist/providers/types.d.ts.map +1 -1
  102. package/dist/secrets.d.ts +17 -7
  103. package/dist/secrets.d.ts.map +1 -1
  104. package/dist/secrets.js +38 -24
  105. package/dist/secrets.js.map +1 -1
  106. package/dist/tools/concurrency.d.ts +48 -0
  107. package/dist/tools/concurrency.d.ts.map +1 -0
  108. package/dist/tools/concurrency.js +64 -0
  109. package/dist/tools/concurrency.js.map +1 -0
  110. package/dist/tools/metadata.d.ts +18 -3
  111. package/dist/tools/metadata.d.ts.map +1 -1
  112. package/dist/tools/metadata.js +7 -0
  113. package/dist/tools/metadata.js.map +1 -1
  114. package/dist/tools/registry.d.ts +6 -4
  115. package/dist/tools/registry.d.ts.map +1 -1
  116. package/dist/tools/registry.js +5 -3
  117. package/dist/tools/registry.js.map +1 -1
  118. package/dist/tools/terminal.d.ts +8 -6
  119. package/dist/tools/terminal.d.ts.map +1 -1
  120. package/dist/tools/terminal.js +8 -6
  121. package/dist/tools/terminal.js.map +1 -1
  122. package/dist/tools/validate.d.ts +49 -0
  123. package/dist/tools/validate.d.ts.map +1 -0
  124. package/dist/tools/validate.js +346 -0
  125. package/dist/tools/validate.js.map +1 -0
  126. package/dist/transcript.d.ts +53 -0
  127. package/dist/transcript.d.ts.map +1 -0
  128. package/dist/transcript.js +104 -0
  129. package/dist/transcript.js.map +1 -0
  130. package/dist/types.d.ts +44 -5
  131. package/dist/types.d.ts.map +1 -1
  132. 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
- /** Token is already resolved by the caller; the kernel treats it as opaque. */
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 run's own
73
- * dependencies (e.g. `npm ci`). Runs with the run's secrets in env; a failure
74
- * aborts the run (the agent must not run without its deps). */
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 produced. */
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
@@ -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,+EAA+E;IAC/E,IAAI,CAAC,EAAE;QAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAClD;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;CACjB;AAED;;;;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;;oEAEgE;IAChE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,iFAAiF;IACjF,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAClB"}
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.15.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": "Jaryl Sim <code@jaryl.dev>",
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.30.0",
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": "^26.2.0",
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",