@kindgi/agents 0.0.0-bootstrap.0 → 0.1.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 (240) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +131 -2
  3. package/dist/agent-turn-flow.d.ts +57 -0
  4. package/dist/agent-turn-flow.d.ts.map +1 -0
  5. package/dist/agent-turn-flow.js +172 -0
  6. package/dist/agent-turn-flow.js.map +1 -0
  7. package/dist/conversation-binding.d.ts +111 -0
  8. package/dist/conversation-binding.d.ts.map +1 -0
  9. package/dist/conversation-binding.js +4 -0
  10. package/dist/conversation-binding.js.map +1 -0
  11. package/dist/define.d.ts +180 -0
  12. package/dist/define.d.ts.map +1 -0
  13. package/dist/define.js +361 -0
  14. package/dist/define.js.map +1 -0
  15. package/dist/errors.d.ts +62 -0
  16. package/dist/errors.d.ts.map +1 -0
  17. package/dist/errors.js +4 -0
  18. package/dist/errors.js.map +1 -0
  19. package/dist/guardrails-gate.d.ts +169 -0
  20. package/dist/guardrails-gate.d.ts.map +1 -0
  21. package/dist/guardrails-gate.js +202 -0
  22. package/dist/guardrails-gate.js.map +1 -0
  23. package/dist/handlers/budget-check.d.ts +22 -0
  24. package/dist/handlers/budget-check.d.ts.map +1 -0
  25. package/dist/handlers/budget-check.js +109 -0
  26. package/dist/handlers/budget-check.js.map +1 -0
  27. package/dist/handlers/build-initial-messages.d.ts +17 -0
  28. package/dist/handlers/build-initial-messages.d.ts.map +1 -0
  29. package/dist/handlers/build-initial-messages.js +86 -0
  30. package/dist/handlers/build-initial-messages.js.map +1 -0
  31. package/dist/handlers/compose-result.d.ts +10 -0
  32. package/dist/handlers/compose-result.d.ts.map +1 -0
  33. package/dist/handlers/compose-result.js +79 -0
  34. package/dist/handlers/compose-result.js.map +1 -0
  35. package/dist/handlers/constants.d.ts +8 -0
  36. package/dist/handlers/constants.d.ts.map +1 -0
  37. package/dist/handlers/constants.js +10 -0
  38. package/dist/handlers/constants.js.map +1 -0
  39. package/dist/handlers/context.d.ts +210 -0
  40. package/dist/handlers/context.d.ts.map +1 -0
  41. package/dist/handlers/context.js +4 -0
  42. package/dist/handlers/context.js.map +1 -0
  43. package/dist/handlers/dispatch-tools.d.ts +15 -0
  44. package/dist/handlers/dispatch-tools.d.ts.map +1 -0
  45. package/dist/handlers/dispatch-tools.js +511 -0
  46. package/dist/handlers/dispatch-tools.js.map +1 -0
  47. package/dist/handlers/errors.d.ts +133 -0
  48. package/dist/handlers/errors.d.ts.map +1 -0
  49. package/dist/handlers/errors.js +134 -0
  50. package/dist/handlers/errors.js.map +1 -0
  51. package/dist/handlers/evaluate-guardrails.d.ts +14 -0
  52. package/dist/handlers/evaluate-guardrails.d.ts.map +1 -0
  53. package/dist/handlers/evaluate-guardrails.js +128 -0
  54. package/dist/handlers/evaluate-guardrails.js.map +1 -0
  55. package/dist/handlers/final-iteration.d.ts +7 -0
  56. package/dist/handlers/final-iteration.d.ts.map +1 -0
  57. package/dist/handlers/final-iteration.js +26 -0
  58. package/dist/handlers/final-iteration.js.map +1 -0
  59. package/dist/handlers/index.d.ts +5 -0
  60. package/dist/handlers/index.d.ts.map +1 -0
  61. package/dist/handlers/index.js +41 -0
  62. package/dist/handlers/index.js.map +1 -0
  63. package/dist/handlers/model-call.d.ts +13 -0
  64. package/dist/handlers/model-call.d.ts.map +1 -0
  65. package/dist/handlers/model-call.js +136 -0
  66. package/dist/handlers/model-call.js.map +1 -0
  67. package/dist/handlers/persist-final-message.d.ts +14 -0
  68. package/dist/handlers/persist-final-message.d.ts.map +1 -0
  69. package/dist/handlers/persist-final-message.js +54 -0
  70. package/dist/handlers/persist-final-message.js.map +1 -0
  71. package/dist/handlers/persist-provenance.d.ts +12 -0
  72. package/dist/handlers/persist-provenance.d.ts.map +1 -0
  73. package/dist/handlers/persist-provenance.js +34 -0
  74. package/dist/handlers/persist-provenance.js.map +1 -0
  75. package/dist/handlers/persist-user-message.d.ts +15 -0
  76. package/dist/handlers/persist-user-message.d.ts.map +1 -0
  77. package/dist/handlers/persist-user-message.js +59 -0
  78. package/dist/handlers/persist-user-message.js.map +1 -0
  79. package/dist/handlers/public-types.d.ts +201 -0
  80. package/dist/handlers/public-types.d.ts.map +1 -0
  81. package/dist/handlers/public-types.js +4 -0
  82. package/dist/handlers/public-types.js.map +1 -0
  83. package/dist/handlers/rehydrate.d.ts +8 -0
  84. package/dist/handlers/rehydrate.d.ts.map +1 -0
  85. package/dist/handlers/rehydrate.js +94 -0
  86. package/dist/handlers/rehydrate.js.map +1 -0
  87. package/dist/handlers/render-prompt.d.ts +12 -0
  88. package/dist/handlers/render-prompt.d.ts.map +1 -0
  89. package/dist/handlers/render-prompt.js +41 -0
  90. package/dist/handlers/render-prompt.js.map +1 -0
  91. package/dist/handlers/resolve-tools.d.ts +10 -0
  92. package/dist/handlers/resolve-tools.d.ts.map +1 -0
  93. package/dist/handlers/resolve-tools.js +55 -0
  94. package/dist/handlers/resolve-tools.js.map +1 -0
  95. package/dist/handlers/result-shape.d.ts +94 -0
  96. package/dist/handlers/result-shape.d.ts.map +1 -0
  97. package/dist/handlers/result-shape.js +19 -0
  98. package/dist/handlers/result-shape.js.map +1 -0
  99. package/dist/handlers/run-retrievals.d.ts +10 -0
  100. package/dist/handlers/run-retrievals.d.ts.map +1 -0
  101. package/dist/handlers/run-retrievals.js +64 -0
  102. package/dist/handlers/run-retrievals.js.map +1 -0
  103. package/dist/handlers/run-snapshot.d.ts +4 -0
  104. package/dist/handlers/run-snapshot.d.ts.map +1 -0
  105. package/dist/handlers/run-snapshot.js +26 -0
  106. package/dist/handlers/run-snapshot.js.map +1 -0
  107. package/dist/handlers/setup.d.ts +25 -0
  108. package/dist/handlers/setup.d.ts.map +1 -0
  109. package/dist/handlers/setup.js +231 -0
  110. package/dist/handlers/setup.js.map +1 -0
  111. package/dist/handlers/structured-output.d.ts +38 -0
  112. package/dist/handlers/structured-output.d.ts.map +1 -0
  113. package/dist/handlers/structured-output.js +89 -0
  114. package/dist/handlers/structured-output.js.map +1 -0
  115. package/dist/handlers/tool-errors.d.ts +56 -0
  116. package/dist/handlers/tool-errors.d.ts.map +1 -0
  117. package/dist/handlers/tool-errors.js +73 -0
  118. package/dist/handlers/tool-errors.js.map +1 -0
  119. package/dist/handlers/tool-hitl.d.ts +45 -0
  120. package/dist/handlers/tool-hitl.d.ts.map +1 -0
  121. package/dist/handlers/tool-hitl.js +81 -0
  122. package/dist/handlers/tool-hitl.js.map +1 -0
  123. package/dist/handlers/turn-environment.d.ts +26 -0
  124. package/dist/handlers/turn-environment.d.ts.map +1 -0
  125. package/dist/handlers/turn-environment.js +154 -0
  126. package/dist/handlers/turn-environment.js.map +1 -0
  127. package/dist/hitl-policy.d.ts +45 -0
  128. package/dist/hitl-policy.d.ts.map +1 -0
  129. package/dist/hitl-policy.js +74 -0
  130. package/dist/hitl-policy.js.map +1 -0
  131. package/dist/index.d.ts +31 -0
  132. package/dist/index.d.ts.map +1 -0
  133. package/dist/index.js +19 -0
  134. package/dist/index.js.map +1 -0
  135. package/dist/invoke.d.ts +36 -0
  136. package/dist/invoke.d.ts.map +1 -0
  137. package/dist/invoke.js +228 -0
  138. package/dist/invoke.js.map +1 -0
  139. package/dist/migrations-dir.d.ts +11 -0
  140. package/dist/migrations-dir.d.ts.map +1 -0
  141. package/dist/migrations-dir.js +14 -0
  142. package/dist/migrations-dir.js.map +1 -0
  143. package/dist/project-run-result.d.ts +23 -0
  144. package/dist/project-run-result.d.ts.map +1 -0
  145. package/dist/project-run-result.js +116 -0
  146. package/dist/project-run-result.js.map +1 -0
  147. package/dist/prompt.d.ts +83 -0
  148. package/dist/prompt.d.ts.map +1 -0
  149. package/dist/prompt.js +119 -0
  150. package/dist/prompt.js.map +1 -0
  151. package/dist/provenance-emit.d.ts +44 -0
  152. package/dist/provenance-emit.d.ts.map +1 -0
  153. package/dist/provenance-emit.js +51 -0
  154. package/dist/provenance-emit.js.map +1 -0
  155. package/dist/registry.d.ts +38 -0
  156. package/dist/registry.d.ts.map +1 -0
  157. package/dist/registry.js +125 -0
  158. package/dist/registry.js.map +1 -0
  159. package/dist/retrieval.d.ts +47 -0
  160. package/dist/retrieval.d.ts.map +1 -0
  161. package/dist/retrieval.js +155 -0
  162. package/dist/retrieval.js.map +1 -0
  163. package/dist/run-snapshot-binding.d.ts +77 -0
  164. package/dist/run-snapshot-binding.d.ts.map +1 -0
  165. package/dist/run-snapshot-binding.js +4 -0
  166. package/dist/run-snapshot-binding.js.map +1 -0
  167. package/dist/schema.d.ts +497 -0
  168. package/dist/schema.d.ts.map +1 -0
  169. package/dist/schema.js +133 -0
  170. package/dist/schema.js.map +1 -0
  171. package/dist/streaming.d.ts +118 -0
  172. package/dist/streaming.d.ts.map +1 -0
  173. package/dist/streaming.js +17 -0
  174. package/dist/streaming.js.map +1 -0
  175. package/dist/tenant-policy.d.ts +16 -0
  176. package/dist/tenant-policy.d.ts.map +1 -0
  177. package/dist/tenant-policy.js +77 -0
  178. package/dist/tenant-policy.js.map +1 -0
  179. package/dist/types.d.ts +435 -0
  180. package/dist/types.d.ts.map +1 -0
  181. package/dist/types.js +4 -0
  182. package/dist/types.js.map +1 -0
  183. package/dist/versioning.d.ts +29 -0
  184. package/dist/versioning.d.ts.map +1 -0
  185. package/dist/versioning.js +58 -0
  186. package/dist/versioning.js.map +1 -0
  187. package/migrations/0000_sparkling_talkback.sql +18 -0
  188. package/migrations/0001_tired_warhawk.sql +16 -0
  189. package/migrations/0002_violet_ezekiel.sql +2 -0
  190. package/migrations/meta/0000_snapshot.json +172 -0
  191. package/migrations/meta/0001_snapshot.json +275 -0
  192. package/migrations/meta/0002_snapshot.json +287 -0
  193. package/migrations/meta/_journal.json +27 -0
  194. package/package.json +76 -4
  195. package/src/agent-turn-flow.ts +183 -0
  196. package/src/conversation-binding.ts +147 -0
  197. package/src/define.ts +572 -0
  198. package/src/errors.ts +80 -0
  199. package/src/guardrails-gate.ts +342 -0
  200. package/src/handlers/budget-check.ts +143 -0
  201. package/src/handlers/build-initial-messages.ts +103 -0
  202. package/src/handlers/compose-result.ts +90 -0
  203. package/src/handlers/constants.ts +10 -0
  204. package/src/handlers/context.ts +226 -0
  205. package/src/handlers/dispatch-tools.ts +633 -0
  206. package/src/handlers/errors.ts +282 -0
  207. package/src/handlers/evaluate-guardrails.ts +153 -0
  208. package/src/handlers/final-iteration.ts +30 -0
  209. package/src/handlers/index.ts +63 -0
  210. package/src/handlers/model-call.ts +151 -0
  211. package/src/handlers/persist-final-message.ts +67 -0
  212. package/src/handlers/persist-provenance.ts +39 -0
  213. package/src/handlers/persist-user-message.ts +70 -0
  214. package/src/handlers/public-types.ts +209 -0
  215. package/src/handlers/rehydrate.ts +161 -0
  216. package/src/handlers/render-prompt.ts +46 -0
  217. package/src/handlers/resolve-tools.ts +68 -0
  218. package/src/handlers/result-shape.ts +113 -0
  219. package/src/handlers/run-retrievals.ts +77 -0
  220. package/src/handlers/run-snapshot.ts +44 -0
  221. package/src/handlers/setup.ts +269 -0
  222. package/src/handlers/structured-output.ts +117 -0
  223. package/src/handlers/tool-errors.ts +122 -0
  224. package/src/handlers/tool-hitl.ts +126 -0
  225. package/src/handlers/turn-environment.ts +191 -0
  226. package/src/hitl-policy.ts +128 -0
  227. package/src/index.ts +154 -0
  228. package/src/invoke.ts +299 -0
  229. package/src/migrations-dir.ts +17 -0
  230. package/src/project-run-result.ts +131 -0
  231. package/src/prompt.ts +185 -0
  232. package/src/provenance-emit.ts +100 -0
  233. package/src/registry.ts +164 -0
  234. package/src/retrieval.ts +219 -0
  235. package/src/run-snapshot-binding.ts +87 -0
  236. package/src/schema.ts +154 -0
  237. package/src/streaming.ts +153 -0
  238. package/src/tenant-policy.ts +78 -0
  239. package/src/types.ts +453 -0
  240. package/src/versioning.ts +77 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define.js","sourceRoot":"","sources":["../src/define.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ export type AgentError = InvalidAgentError | AgentNotFoundError | AgentAlreadyRegisteredError | AgentVersionMismatchError | ConversationNotFoundError | ConversationClosedError | InvalidMessageError | PersistenceError;
2
+ /** `defineAgent` was called with a shape that fails validation. */
3
+ export interface InvalidAgentError {
4
+ readonly code: 'invalid-agent';
5
+ readonly message: string;
6
+ readonly issues: readonly {
7
+ readonly path: string;
8
+ readonly message: string;
9
+ }[];
10
+ }
11
+ /** A registry lookup by (id, version) missed. */
12
+ export interface AgentNotFoundError {
13
+ readonly code: 'agent-not-found';
14
+ readonly message: string;
15
+ readonly agentId: string;
16
+ readonly version?: string;
17
+ }
18
+ /** Trying to register an agent that already exists at that (id, version). */
19
+ export interface AgentAlreadyRegisteredError {
20
+ readonly code: 'agent-already-registered';
21
+ readonly message: string;
22
+ readonly agentId: string;
23
+ readonly version: string;
24
+ }
25
+ /**
26
+ * A caller resumed a conversation but supplied an agent version that
27
+ * doesn't match the conversation's opening agent. Agents evolve; a
28
+ * conversation must be resumed with the same agent version it started
29
+ * with.
30
+ */
31
+ export interface AgentVersionMismatchError {
32
+ readonly code: 'agent-version-mismatch';
33
+ readonly message: string;
34
+ readonly conversationId: string;
35
+ readonly expectedVersion: string;
36
+ readonly actualVersion: string;
37
+ }
38
+ /** No conversation with the given id exists (for this tenant). */
39
+ export interface ConversationNotFoundError {
40
+ readonly code: 'conversation-not-found';
41
+ readonly message: string;
42
+ readonly conversationId: string;
43
+ }
44
+ /** Attempted to append or otherwise mutate a closed conversation. */
45
+ export interface ConversationClosedError {
46
+ readonly code: 'conversation-closed';
47
+ readonly message: string;
48
+ readonly conversationId: string;
49
+ }
50
+ /** `appendMessage` was called with malformed inputs (blank content, bad role, etc.). */
51
+ export interface InvalidMessageError {
52
+ readonly code: 'invalid-message';
53
+ readonly message: string;
54
+ readonly reason: string;
55
+ }
56
+ /** Storage-layer error. Cause carries the underlying DB / IO failure. */
57
+ export interface PersistenceError {
58
+ readonly code: 'persistence-error';
59
+ readonly message: string;
60
+ readonly cause: unknown;
61
+ }
62
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,UAAU,GAClB,iBAAiB,GACjB,kBAAkB,GAClB,2BAA2B,GAC3B,yBAAyB,GACzB,yBAAyB,GACzB,uBAAuB,GACvB,mBAAmB,GACnB,gBAAgB,CAAC;AAErB,mEAAmE;AACnE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,SAAS;QACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;KAC1B,EAAE,CAAC;CACL;AAED,iDAAiD;AACjD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,6EAA6E;AAC7E,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,EAAE,0BAA0B,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,kEAAkE;AAClE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,qEAAqE;AACrE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,wFAAwF;AACxF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,yEAAyE;AACzE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB"}
package/dist/errors.js ADDED
@@ -0,0 +1,4 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (C) 2026 Kindgi Inc.
3
+ export {};
4
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC"}
@@ -0,0 +1,169 @@
1
+ import type { ProviderRegistry, TenantPolicy } from '@kindgi/capabilities';
2
+ import type { ComplianceProvider } from '@kindgi/compliance';
3
+ import { type CheckRegistry, type EvaluationOutcome, type EvaluationResult, type Guardrail, type RunTrace } from '@kindgi/guardrails';
4
+ import type { ProjectId, Result, RunId, TenantId } from '@kindgi/types';
5
+ import type { Agent, ConversationId, ConversationMessage } from './types.js';
6
+ /**
7
+ * Turn usage snapshot passed into `buildRunTrace`. Local mirror of
8
+ * `AgentTurnUsage` (handlers/result-shape.ts) — kept here to avoid a
9
+ * circular import.
10
+ */
11
+ interface TurnUsageSnapshot {
12
+ readonly steps: number;
13
+ readonly promptTokens: number;
14
+ readonly completionTokens: number;
15
+ readonly totalCostUsd: number;
16
+ readonly durationMs: number;
17
+ }
18
+ /**
19
+ * Bindings the guardrail gate consumes. All optional — if `guardrails`
20
+ * is empty or `checks` is undefined, `evaluateGate` is a no-op. An
21
+ * agent that references a guardrail id missing from `guardrails` fails
22
+ * its turn with `unresolved-guardrail`.
23
+ */
24
+ export interface GuardrailsBindings {
25
+ /** Full guardrail definitions available for this run. Indexed by id. */
26
+ readonly guardrails?: readonly Guardrail[];
27
+ /** Check registry with built-ins + any adapter-registered custom checks. */
28
+ readonly checks?: CheckRegistry;
29
+ /** Optional compliance sink — every failed check emits an evidence record. */
30
+ readonly compliance?: ComplianceProvider;
31
+ /**
32
+ * Provider registry for llm-judge guardrails; the judge model is
33
+ * routed through it under the turn's tenant policy. If absent,
34
+ * llm-judge guardrails error with `judge-missing`; if no provider
35
+ * satisfies the judge's capability, with `judge-routing-failed`.
36
+ */
37
+ readonly providerRegistry?: ProviderRegistry;
38
+ }
39
+ /**
40
+ * Materialize a `RunTrace` from an agent turn's captured state. The
41
+ * guardrail engine reads only the trace — it doesn't touch memory,
42
+ * kernel journal, or provenance directly (keeps checks pure and
43
+ * dependency-free).
44
+ */
45
+ export declare function buildRunTrace(input: {
46
+ /** The kernel run of the turn. */
47
+ readonly runId: RunId;
48
+ readonly tenantId: TenantId;
49
+ /** Lets the engine record compliance evidence for a failed check. */
50
+ readonly projectId: ProjectId;
51
+ readonly conversationId: ConversationId;
52
+ /** 1-based number of this turn in the conversation. */
53
+ readonly turnNumber: number;
54
+ readonly agent: Agent;
55
+ /** The user message that started the turn. */
56
+ readonly userMessage: string;
57
+ /** The turn's structured input (`InvokeAgentInput.input`), when it has one. */
58
+ readonly stepInput?: unknown;
59
+ /** The parsed answer, when the agent declares `output`. */
60
+ readonly structuredOutput?: unknown;
61
+ readonly appended: readonly ConversationMessage[];
62
+ readonly finalResponse: ConversationMessage;
63
+ readonly usage: TurnUsageSnapshot;
64
+ }): RunTrace;
65
+ /**
66
+ * Filter the bound guardrail list to those referenced by the agent's
67
+ * `guardrails: string[]` declaration. Missing references are collected
68
+ * into `missing` — the caller decides whether that's fatal.
69
+ */
70
+ export declare function resolveGuardrails(agent: Agent, bindings: GuardrailsBindings): {
71
+ readonly resolved: readonly Guardrail[];
72
+ readonly missing: readonly string[];
73
+ };
74
+ /**
75
+ * Evaluate every resolved guardrail against the turn's trace. Returns
76
+ * the raw outcomes so the caller can decide how to react — the gate
77
+ * doesn't halt on its own. `tenantPolicy` (the policy the turn was
78
+ * routed under) also governs which models llm-judge guardrails may use;
79
+ * `abortSignal` (the turn's) reaches every check, so a slow judge or
80
+ * pack check stops when the turn does.
81
+ */
82
+ export declare function evaluateGate(guardrails: readonly Guardrail[], trace: RunTrace, bindings: GuardrailsBindings, tenantPolicy?: TenantPolicy, abortSignal?: AbortSignal): Promise<readonly EvaluationOutcome[]>;
83
+ /**
84
+ * Sort evaluation outcomes by the failed guardrail's action. `halt` is
85
+ * blocking — the turn fails with `guardrail-violation`. `log-only` and
86
+ * `noop` are warnings; every other action (`retry`, `escalate`,
87
+ * `compensate`, or a custom action — actions are open strings) lands in
88
+ * `other`. Warnings and `other` are attached to the successful turn
89
+ * result under `result.violations`; the turn does not carry out those
90
+ * actions. Evaluation errors (a check that could not run) are collected
91
+ * in `errors`.
92
+ */
93
+ export declare function categorizeOutcomes(outcomes: readonly EvaluationOutcome[]): {
94
+ readonly blocking: readonly EvaluationResult[];
95
+ readonly warnings: readonly EvaluationResult[];
96
+ readonly other: readonly EvaluationResult[];
97
+ readonly errors: readonly {
98
+ readonly guardrailId: string;
99
+ readonly message: string;
100
+ }[];
101
+ };
102
+ /**
103
+ * Message for a turn stopped by blocking violations — names each
104
+ * guardrail that fired, with its check's reason when it gave one:
105
+ *
106
+ * Turn blocked by guardrail 'no-pii': Response contains an email address
107
+ * Turn blocked by 2 guardrails: 'no-pii' (Response contains …); 'max-length'
108
+ */
109
+ export declare function describeBlockingViolations(blocking: readonly EvaluationResult[]): string;
110
+ /**
111
+ * Result of a session-gate check performed BEFORE running a turn:
112
+ * the HITL turn threshold (`conversationPolicy.hitl.afterTurns` or
113
+ * `conversationPolicy.hitlAfterTurns`).
114
+ */
115
+ export type SessionGateResult = {
116
+ readonly kind: 'ok';
117
+ } | {
118
+ readonly kind: 'hitl-required';
119
+ readonly reason: string;
120
+ readonly threshold: number;
121
+ };
122
+ /**
123
+ * Evaluate session-level gates against the conversation state before
124
+ * running the next turn: the HITL threshold from
125
+ * `conversationPolicy.hitl.afterTurns` or `conversationPolicy.hitlAfterTurns`.
126
+ *
127
+ * Overloaded call shapes:
128
+ * - `evaluateSessionGate(agent, turnCount)` — reads the agent's policy
129
+ * directly.
130
+ * - `evaluateSessionGate({ afterTurns? }, turnCount)` — reads a
131
+ * pre-resolved effective policy (the setup handler passes
132
+ * `resolveEffectiveHitlPolicy` output).
133
+ */
134
+ export declare function evaluateSessionGate(input: Agent | {
135
+ readonly afterTurns?: number;
136
+ }, currentTurnCount: number): SessionGateResult;
137
+ /** Discriminated error emitted when blocking guardrails fail. */
138
+ export interface GuardrailViolationError {
139
+ readonly code: 'guardrail-violation';
140
+ readonly message: string;
141
+ readonly violations: readonly EvaluationResult[];
142
+ /** Errors from checks that couldn't even evaluate (missing check, bad config). */
143
+ readonly evaluationErrors: readonly {
144
+ readonly guardrailId: string;
145
+ readonly message: string;
146
+ }[];
147
+ }
148
+ /**
149
+ * Error shape for a turn blocked by the session HITL threshold.
150
+ * `approvalId` is set when the caller supplied a `bindings.hitl` sink and
151
+ * the enqueue succeeded — downstream code can poll or subscribe on that
152
+ * id. The agent turn itself does not return this code: it parks on a
153
+ * HITL waitpoint instead (`AgentTurnResult.status: 'suspended'`).
154
+ */
155
+ export interface HitlRequiredError {
156
+ readonly code: 'hitl-required';
157
+ readonly message: string;
158
+ readonly threshold: number;
159
+ readonly approvalId?: string;
160
+ }
161
+ /** Emitted when the agent references guardrail IDs not in the registry. */
162
+ export interface UnresolvedGuardrailError {
163
+ readonly code: 'unresolved-guardrail';
164
+ readonly message: string;
165
+ readonly guardrailIds: readonly string[];
166
+ }
167
+ export type GateResult<T, E> = Result<T, E>;
168
+ export {};
169
+ //# sourceMappingURL=guardrails-gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guardrails-gate.d.ts","sourceRoot":"","sources":["../src/guardrails-gate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,202 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (C) 2026 Kindgi Inc.
3
+ import { evaluateAll, } from '@kindgi/guardrails';
4
+ /**
5
+ * Materialize a `RunTrace` from an agent turn's captured state. The
6
+ * guardrail engine reads only the trace — it doesn't touch memory,
7
+ * kernel journal, or provenance directly (keeps checks pure and
8
+ * dependency-free).
9
+ */
10
+ export function buildRunTrace(input) {
11
+ const toolCalls = [];
12
+ const toolResults = [];
13
+ const modelCalls = [];
14
+ for (const msg of input.appended) {
15
+ if (msg.role === 'agent' && typeof msg.content === 'object' && msg.content !== null) {
16
+ const structured = msg.content;
17
+ if (structured.toolCalls !== undefined) {
18
+ for (const call of structured.toolCalls) {
19
+ toolCalls.push({
20
+ toolId: call.name,
21
+ toolName: call.name,
22
+ arguments: call.arguments,
23
+ at: msg.createdAt,
24
+ });
25
+ }
26
+ }
27
+ }
28
+ if (msg.role === 'tool' && msg.toolCall !== undefined) {
29
+ toolResults.push({
30
+ toolCallId: msg.toolCall.invocationId,
31
+ output: msg.content,
32
+ at: msg.createdAt,
33
+ });
34
+ }
35
+ }
36
+ // Approximate a model-call record for cost/latency guardrails — a
37
+ // more granular per-call breakdown would need an observability
38
+ // hook.
39
+ modelCalls.push({
40
+ providerId: 'runtime.picked',
41
+ model: 'runtime.picked',
42
+ promptTokens: input.usage.promptTokens,
43
+ completionTokens: input.usage.completionTokens,
44
+ at: input.finalResponse.createdAt,
45
+ });
46
+ const output = typeof input.finalResponse.content === 'string'
47
+ ? input.finalResponse.content
48
+ : JSON.stringify(input.finalResponse.content);
49
+ return {
50
+ runId: input.runId,
51
+ tenantId: input.tenantId,
52
+ projectId: input.projectId,
53
+ agentId: input.agent.id,
54
+ output,
55
+ toolCalls,
56
+ toolResults,
57
+ modelCalls,
58
+ mode: 'runtime',
59
+ userInput: input.userMessage,
60
+ conversationId: input.conversationId,
61
+ turnNumber: input.turnNumber,
62
+ totalCostUsd: input.usage.totalCostUsd,
63
+ durationMs: input.usage.durationMs,
64
+ attributes: {
65
+ steps: input.usage.steps,
66
+ ...(input.stepInput !== undefined && { stepInput: input.stepInput }),
67
+ ...(input.structuredOutput !== undefined && { structuredOutput: input.structuredOutput }),
68
+ },
69
+ };
70
+ }
71
+ /**
72
+ * Filter the bound guardrail list to those referenced by the agent's
73
+ * `guardrails: string[]` declaration. Missing references are collected
74
+ * into `missing` — the caller decides whether that's fatal.
75
+ */
76
+ export function resolveGuardrails(agent, bindings) {
77
+ const available = new Map();
78
+ for (const inv of bindings.guardrails ?? [])
79
+ available.set(inv.id, inv);
80
+ const resolved = [];
81
+ const missing = [];
82
+ for (const id of agent.guardrails) {
83
+ const inv = available.get(id);
84
+ if (inv !== undefined)
85
+ resolved.push(inv);
86
+ else
87
+ missing.push(id);
88
+ }
89
+ return { resolved, missing };
90
+ }
91
+ /**
92
+ * Evaluate every resolved guardrail against the turn's trace. Returns
93
+ * the raw outcomes so the caller can decide how to react — the gate
94
+ * doesn't halt on its own. `tenantPolicy` (the policy the turn was
95
+ * routed under) also governs which models llm-judge guardrails may use;
96
+ * `abortSignal` (the turn's) reaches every check, so a slow judge or
97
+ * pack check stops when the turn does.
98
+ */
99
+ export async function evaluateGate(guardrails, trace, bindings, tenantPolicy, abortSignal) {
100
+ if (guardrails.length === 0 || bindings.checks === undefined)
101
+ return [];
102
+ const evalBindings = {
103
+ ...(bindings.providerRegistry !== undefined && { providerRegistry: bindings.providerRegistry }),
104
+ ...(bindings.compliance !== undefined && { compliance: bindings.compliance }),
105
+ ...(tenantPolicy !== undefined && { tenantPolicy }),
106
+ ...(abortSignal !== undefined && { abortSignal }),
107
+ };
108
+ return await evaluateAll(guardrails, bindings.checks, trace, evalBindings);
109
+ }
110
+ /**
111
+ * Sort evaluation outcomes by the failed guardrail's action. `halt` is
112
+ * blocking — the turn fails with `guardrail-violation`. `log-only` and
113
+ * `noop` are warnings; every other action (`retry`, `escalate`,
114
+ * `compensate`, or a custom action — actions are open strings) lands in
115
+ * `other`. Warnings and `other` are attached to the successful turn
116
+ * result under `result.violations`; the turn does not carry out those
117
+ * actions. Evaluation errors (a check that could not run) are collected
118
+ * in `errors`.
119
+ */
120
+ export function categorizeOutcomes(outcomes) {
121
+ const blocking = [];
122
+ const warnings = [];
123
+ const other = [];
124
+ const errors = [];
125
+ for (const outcome of outcomes) {
126
+ if (outcome.kind === 'err') {
127
+ errors.push({
128
+ guardrailId: 'guardrailId' in outcome.error && typeof outcome.error.guardrailId === 'string'
129
+ ? outcome.error.guardrailId
130
+ : '<unknown>',
131
+ message: outcome.error.message,
132
+ });
133
+ continue;
134
+ }
135
+ if (outcome.kind === 'skip')
136
+ continue;
137
+ const evalResult = outcome.value;
138
+ if (evalResult.result.passed)
139
+ continue;
140
+ if (evalResult.action === 'halt')
141
+ blocking.push(evalResult);
142
+ else if (evalResult.action === 'log-only' || evalResult.action === 'noop') {
143
+ warnings.push(evalResult);
144
+ }
145
+ else
146
+ other.push(evalResult);
147
+ }
148
+ return { blocking, warnings, other, errors };
149
+ }
150
+ /**
151
+ * Message for a turn stopped by blocking violations — names each
152
+ * guardrail that fired, with its check's reason when it gave one:
153
+ *
154
+ * Turn blocked by guardrail 'no-pii': Response contains an email address
155
+ * Turn blocked by 2 guardrails: 'no-pii' (Response contains …); 'max-length'
156
+ */
157
+ export function describeBlockingViolations(blocking) {
158
+ const reasonOf = (v) => {
159
+ const reason = v.result.reason?.trim();
160
+ return reason === undefined || reason === '' ? undefined : reason;
161
+ };
162
+ const [only] = blocking;
163
+ if (blocking.length === 1 && only !== undefined) {
164
+ const reason = reasonOf(only);
165
+ return `Turn blocked by guardrail '${only.guardrailId}'${reason !== undefined ? `: ${reason}` : ''}`;
166
+ }
167
+ const named = blocking.map((v) => {
168
+ const reason = reasonOf(v);
169
+ return `'${v.guardrailId}'${reason !== undefined ? ` (${reason})` : ''}`;
170
+ });
171
+ return `Turn blocked by ${blocking.length} guardrails: ${named.join('; ')}`;
172
+ }
173
+ /**
174
+ * Evaluate session-level gates against the conversation state before
175
+ * running the next turn: the HITL threshold from
176
+ * `conversationPolicy.hitl.afterTurns` or `conversationPolicy.hitlAfterTurns`.
177
+ *
178
+ * Overloaded call shapes:
179
+ * - `evaluateSessionGate(agent, turnCount)` — reads the agent's policy
180
+ * directly.
181
+ * - `evaluateSessionGate({ afterTurns? }, turnCount)` — reads a
182
+ * pre-resolved effective policy (the setup handler passes
183
+ * `resolveEffectiveHitlPolicy` output).
184
+ */
185
+ export function evaluateSessionGate(input, currentTurnCount) {
186
+ const asAgent = input;
187
+ const asPolicy = input;
188
+ const threshold = 'conversationPolicy' in asAgent
189
+ ? (asAgent.conversationPolicy?.hitl?.afterTurns ?? asAgent.conversationPolicy?.hitlAfterTurns)
190
+ : asPolicy.afterTurns;
191
+ if (threshold !== undefined && currentTurnCount >= threshold) {
192
+ return {
193
+ kind: 'hitl-required',
194
+ reason: `Conversation reached HITL threshold: ${currentTurnCount} turns >= ${threshold}`,
195
+ threshold,
196
+ };
197
+ }
198
+ return { kind: 'ok' };
199
+ }
200
+ // Silence unused-type lint (GuardrailId is used by callers via type inference).
201
+ void 0;
202
+ //# sourceMappingURL=guardrails-gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guardrails-gate.js","sourceRoot":"","sources":["../src/guardrails-gate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { NodeHandler } from '@kindgi/handler';
2
+ import type { TurnContext } from './context.js';
3
+ /**
4
+ * Loop-body node #3. The final gate before `$loop-end`. Decides
5
+ * whether the iteration finalizes the turn based on:
6
+ *
7
+ * - The model's `finishReason` (anything other than `tool-use` with
8
+ * calls terminates).
9
+ * - `agent.budget.maxSteps` — enforced against `ctx.usage.steps`.
10
+ * - `agent.budget.maxCostUsd` — enforced against cumulative cost.
11
+ * - Cooperative abort from `ctx.turnAbort`.
12
+ * - `agent.output` — a final answer that isn't JSON matching the
13
+ * schema keeps the turn going with a repair message, while repairs
14
+ * (and steps) are left; after that the turn fails with
15
+ * `output-schema-violation`. Skipped on a dry run.
16
+ *
17
+ * Returns the fully-shaped `AgentTurnIterationOutput` — this is the
18
+ * iteration's `$loop-end` output that the loop node's `outputSchema`
19
+ * validates against.
20
+ */
21
+ export declare function buildBudgetCheckHandler(ctx: TurnContext): NodeHandler;
22
+ //# sourceMappingURL=budget-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"budget-check.d.ts","sourceRoot":"","sources":["../../src/handlers/budget-check.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAInD,OAAO,KAAK,EAA4B,WAAW,EAAE,MAAM,cAAc,CAAC;AAU1E;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,WAAW,GAAG,WAAW,CA8ErE"}
@@ -0,0 +1,109 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (C) 2026 Kindgi Inc.
3
+ import { DEFAULT_MAX_STEPS } from './constants.js';
4
+ import { throwAgentTurnFailure } from './errors.js';
5
+ import { DEFAULT_MAX_REPAIRS, outputChecker, repairMessage, repairsSoFar, } from './structured-output.js';
6
+ /**
7
+ * Loop-body node #3. The final gate before `$loop-end`. Decides
8
+ * whether the iteration finalizes the turn based on:
9
+ *
10
+ * - The model's `finishReason` (anything other than `tool-use` with
11
+ * calls terminates).
12
+ * - `agent.budget.maxSteps` — enforced against `ctx.usage.steps`.
13
+ * - `agent.budget.maxCostUsd` — enforced against cumulative cost.
14
+ * - Cooperative abort from `ctx.turnAbort`.
15
+ * - `agent.output` — a final answer that isn't JSON matching the
16
+ * schema keeps the turn going with a repair message, while repairs
17
+ * (and steps) are left; after that the turn fails with
18
+ * `output-schema-violation`. Skipped on a dry run.
19
+ *
20
+ * Returns the fully-shaped `AgentTurnIterationOutput` — this is the
21
+ * iteration's `$loop-end` output that the loop node's `outputSchema`
22
+ * validates against.
23
+ */
24
+ export function buildBudgetCheckHandler(ctx) {
25
+ let checker;
26
+ return async (input, kctx) => {
27
+ if (ctx.turnAbort.signal.aborted) {
28
+ throwAgentTurnFailure({
29
+ code: 'agent-turn-aborted',
30
+ message: 'Agent turn aborted before budget-check',
31
+ reason: ctx.abortReason ?? 'timeout',
32
+ });
33
+ }
34
+ const partial = input;
35
+ const maxSteps = ctx.input.agent.budget?.maxSteps ?? DEFAULT_MAX_STEPS;
36
+ const maxCostUsd = ctx.input.agent.budget?.maxCostUsd;
37
+ // Cost cap is a hard failure — the caller sees `budget-exceeded`
38
+ // before the turn tries another iteration.
39
+ if (maxCostUsd !== undefined && ctx.usage.totalCostUsd > maxCostUsd) {
40
+ throwAgentTurnFailure({
41
+ code: 'budget-exceeded',
42
+ message: `Agent turn cost budget exceeded (limit ${maxCostUsd}, observed ${ctx.usage.totalCostUsd})`,
43
+ kind: 'cost',
44
+ limit: maxCostUsd,
45
+ observed: ctx.usage.totalCostUsd,
46
+ });
47
+ }
48
+ // Step cap — if the model still wants another tool call but we've
49
+ // used the allotted steps, fail the run.
50
+ if (partial.hasToolCalls && ctx.usage.steps >= maxSteps) {
51
+ throwAgentTurnFailure({
52
+ code: 'budget-exceeded',
53
+ message: `Agent turn steps budget exceeded (limit ${maxSteps}, observed ${ctx.usage.steps})`,
54
+ kind: 'steps',
55
+ limit: maxSteps,
56
+ observed: ctx.usage.steps,
57
+ });
58
+ }
59
+ // `finishedTurn` semantics: true when the model's finishReason is
60
+ // terminal (i.e. not a live tool-use) — the current iteration's
61
+ // assistant message is the final answer.
62
+ let finishedTurn = !partial.hasToolCalls;
63
+ let nextMessages = partial.nextMessages;
64
+ const spec = ctx.input.agent.output;
65
+ if (finishedTurn && spec !== undefined && !kctx.dryRun) {
66
+ checker ??= outputChecker(spec);
67
+ const repair = outputRepair(spec, checker, partial.message, partial.nextMessages, {
68
+ stepsLeft: ctx.usage.steps < maxSteps,
69
+ });
70
+ if (repair !== undefined) {
71
+ finishedTurn = false;
72
+ nextMessages = repair;
73
+ }
74
+ }
75
+ const output = {
76
+ finishReason: partial.finishReason,
77
+ message: partial.message,
78
+ iterationAppended: partial.iterationAppended,
79
+ iterationUsage: partial.iterationUsage,
80
+ provider: partial.provider,
81
+ finishedTurn,
82
+ nextMessages,
83
+ };
84
+ return output;
85
+ };
86
+ }
87
+ /**
88
+ * Check a final answer against the agent's output schema. A valid
89
+ * answer returns `undefined` (the turn finishes). An invalid one with
90
+ * repairs and steps left returns the next model call's messages: the
91
+ * answer, then a repair message listing what's wrong. Otherwise the
92
+ * turn fails with `output-schema-violation`.
93
+ */
94
+ function outputRepair(spec, checker, answer, sent, budget) {
95
+ const checked = checker.check(answer.content);
96
+ if (checked.kind === 'ok')
97
+ return undefined;
98
+ const repairs = repairsSoFar(sent);
99
+ if (repairs < (spec.maxRepairs ?? DEFAULT_MAX_REPAIRS) && budget.stepsLeft) {
100
+ return [...sent, answer, repairMessage(spec, checked.errors)];
101
+ }
102
+ throwAgentTurnFailure({
103
+ code: 'output-schema-violation',
104
+ message: `The agent's answer does not match its ${spec.name ?? 'output'} schema after ${repairs} repair${repairs === 1 ? '' : 's'}: ${checked.errors.join('; ')}`,
105
+ errors: checked.errors,
106
+ attempts: repairs + 1,
107
+ });
108
+ }
109
+ //# sourceMappingURL=budget-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"budget-check.js","sourceRoot":"","sources":["../../src/handlers/budget-check.ts"],"names":[],"mappings":"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"}