@kindgi/agents 0.1.4 → 0.1.5

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 (137) hide show
  1. package/README.md +1 -1
  2. package/dist/blocks.d.ts +19 -0
  3. package/dist/blocks.d.ts.map +1 -1
  4. package/dist/blocks.js +59 -1
  5. package/dist/blocks.js.map +1 -1
  6. package/dist/conversation-binding.d.ts +49 -3
  7. package/dist/conversation-binding.d.ts.map +1 -1
  8. package/dist/define.d.ts +7 -1
  9. package/dist/define.d.ts.map +1 -1
  10. package/dist/define.js +132 -7
  11. package/dist/define.js.map +1 -1
  12. package/dist/drafted-template.d.ts +34 -0
  13. package/dist/drafted-template.d.ts.map +1 -0
  14. package/dist/drafted-template.js +95 -0
  15. package/dist/drafted-template.js.map +1 -0
  16. package/dist/guardrails-gate.d.ts +28 -13
  17. package/dist/guardrails-gate.d.ts.map +1 -1
  18. package/dist/guardrails-gate.js +59 -21
  19. package/dist/guardrails-gate.js.map +1 -1
  20. package/dist/handlers/build-initial-messages.d.ts +8 -2
  21. package/dist/handlers/build-initial-messages.d.ts.map +1 -1
  22. package/dist/handlers/build-initial-messages.js +23 -21
  23. package/dist/handlers/build-initial-messages.js.map +1 -1
  24. package/dist/handlers/compose-result.d.ts.map +1 -1
  25. package/dist/handlers/compose-result.js +21 -0
  26. package/dist/handlers/compose-result.js.map +1 -1
  27. package/dist/handlers/context.d.ts +6 -1
  28. package/dist/handlers/context.d.ts.map +1 -1
  29. package/dist/handlers/dispatch-tools.d.ts.map +1 -1
  30. package/dist/handlers/dispatch-tools.js +17 -5
  31. package/dist/handlers/dispatch-tools.js.map +1 -1
  32. package/dist/handlers/errors.d.ts +14 -1
  33. package/dist/handlers/errors.d.ts.map +1 -1
  34. package/dist/handlers/errors.js.map +1 -1
  35. package/dist/handlers/evaluate-guardrails.d.ts +6 -1
  36. package/dist/handlers/evaluate-guardrails.d.ts.map +1 -1
  37. package/dist/handlers/evaluate-guardrails.js +46 -4
  38. package/dist/handlers/evaluate-guardrails.js.map +1 -1
  39. package/dist/handlers/history.d.ts +24 -0
  40. package/dist/handlers/history.d.ts.map +1 -0
  41. package/dist/handlers/history.js +52 -0
  42. package/dist/handlers/history.js.map +1 -0
  43. package/dist/handlers/persist-final-message.d.ts.map +1 -1
  44. package/dist/handlers/persist-final-message.js +2 -0
  45. package/dist/handlers/persist-final-message.js.map +1 -1
  46. package/dist/handlers/persist-user-message.d.ts.map +1 -1
  47. package/dist/handlers/persist-user-message.js +2 -0
  48. package/dist/handlers/persist-user-message.js.map +1 -1
  49. package/dist/handlers/public-types.d.ts +12 -2
  50. package/dist/handlers/public-types.d.ts.map +1 -1
  51. package/dist/handlers/rehydrate.d.ts.map +1 -1
  52. package/dist/handlers/rehydrate.js +7 -4
  53. package/dist/handlers/rehydrate.js.map +1 -1
  54. package/dist/handlers/remember-tool.d.ts +22 -0
  55. package/dist/handlers/remember-tool.d.ts.map +1 -0
  56. package/dist/handlers/remember-tool.js +156 -0
  57. package/dist/handlers/remember-tool.js.map +1 -0
  58. package/dist/handlers/replay.d.ts +55 -1
  59. package/dist/handlers/replay.d.ts.map +1 -1
  60. package/dist/handlers/replay.js +23 -6
  61. package/dist/handlers/replay.js.map +1 -1
  62. package/dist/handlers/resolve-blocks.d.ts.map +1 -1
  63. package/dist/handlers/resolve-blocks.js +19 -8
  64. package/dist/handlers/resolve-blocks.js.map +1 -1
  65. package/dist/handlers/result-shape.d.ts +10 -5
  66. package/dist/handlers/result-shape.d.ts.map +1 -1
  67. package/dist/handlers/result-shape.js.map +1 -1
  68. package/dist/handlers/run-retrievals.d.ts +2 -1
  69. package/dist/handlers/run-retrievals.d.ts.map +1 -1
  70. package/dist/handlers/run-retrievals.js +42 -16
  71. package/dist/handlers/run-retrievals.js.map +1 -1
  72. package/dist/handlers/turn-environment.d.ts.map +1 -1
  73. package/dist/handlers/turn-environment.js +2 -1
  74. package/dist/handlers/turn-environment.js.map +1 -1
  75. package/dist/handlers/turn-provenance.d.ts +19 -3
  76. package/dist/handlers/turn-provenance.d.ts.map +1 -1
  77. package/dist/handlers/turn-provenance.js +116 -2
  78. package/dist/handlers/turn-provenance.js.map +1 -1
  79. package/dist/index.d.ts +13 -8
  80. package/dist/index.d.ts.map +1 -1
  81. package/dist/index.js +5 -3
  82. package/dist/index.js.map +1 -1
  83. package/dist/invoke.d.ts +1 -1
  84. package/dist/invoke.d.ts.map +1 -1
  85. package/dist/invoke.js +2 -0
  86. package/dist/invoke.js.map +1 -1
  87. package/dist/remember.d.ts +49 -0
  88. package/dist/remember.d.ts.map +1 -0
  89. package/dist/remember.js +89 -0
  90. package/dist/remember.js.map +1 -0
  91. package/dist/retrieval.d.ts +114 -28
  92. package/dist/retrieval.d.ts.map +1 -1
  93. package/dist/retrieval.js +433 -104
  94. package/dist/retrieval.js.map +1 -1
  95. package/dist/schema.d.ts +17 -0
  96. package/dist/schema.d.ts.map +1 -1
  97. package/dist/schema.js +6 -0
  98. package/dist/schema.js.map +1 -1
  99. package/dist/streaming.d.ts +16 -1
  100. package/dist/streaming.d.ts.map +1 -1
  101. package/dist/streaming.js.map +1 -1
  102. package/dist/types.d.ts +136 -10
  103. package/dist/types.d.ts.map +1 -1
  104. package/migrations/0005_condemned_hellcat.sql +1 -0
  105. package/migrations/meta/0005_snapshot.json +333 -0
  106. package/migrations/meta/_journal.json +7 -0
  107. package/package.json +15 -15
  108. package/src/blocks.ts +75 -1
  109. package/src/conversation-binding.ts +53 -3
  110. package/src/define.ts +144 -9
  111. package/src/drafted-template.ts +118 -0
  112. package/src/guardrails-gate.ts +90 -26
  113. package/src/handlers/build-initial-messages.ts +29 -22
  114. package/src/handlers/compose-result.ts +21 -0
  115. package/src/handlers/context.ts +12 -1
  116. package/src/handlers/dispatch-tools.ts +19 -5
  117. package/src/handlers/errors.ts +16 -1
  118. package/src/handlers/evaluate-guardrails.ts +47 -4
  119. package/src/handlers/history.ts +57 -0
  120. package/src/handlers/persist-final-message.ts +2 -0
  121. package/src/handlers/persist-user-message.ts +2 -0
  122. package/src/handlers/public-types.ts +18 -2
  123. package/src/handlers/rehydrate.ts +12 -8
  124. package/src/handlers/remember-tool.ts +207 -0
  125. package/src/handlers/replay.ts +80 -8
  126. package/src/handlers/resolve-blocks.ts +21 -7
  127. package/src/handlers/result-shape.ts +19 -5
  128. package/src/handlers/run-retrievals.ts +52 -19
  129. package/src/handlers/turn-environment.ts +2 -1
  130. package/src/handlers/turn-provenance.ts +133 -2
  131. package/src/index.ts +33 -2
  132. package/src/invoke.ts +3 -0
  133. package/src/remember.ts +136 -0
  134. package/src/retrieval.ts +591 -125
  135. package/src/schema.ts +6 -0
  136. package/src/streaming.ts +17 -0
  137. package/src/types.ts +134 -10
@@ -0,0 +1,95 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ // Copyright (C) 2026 Kindgi Inc.
3
+ import { Liquid } from 'liquidjs';
4
+ /** The most a drafted template may be: twice the current one, at least 2,000 characters. */
5
+ export const DRAFTED_TEMPLATE_MAX = 20_000;
6
+ /** Variables any template may read: the turn's clock and identity. */
7
+ const HARMLESS_VARS = new Set(['today', 'now', 'agent', 'conversation']);
8
+ /** A dotted id (`acme.export`): two or more segments, the first at least two characters. */
9
+ const DOTTED_ID = /\b[a-z][a-z0-9_-]+(?:\.[a-z0-9_-]+)+\b/gi;
10
+ const liquid = new Liquid();
11
+ function rootsOf(template) {
12
+ return liquid.globalVariableSegmentsSync(template).map((s) => s);
13
+ }
14
+ /**
15
+ * Whether a drafted template may replace the current one, as data: the
16
+ * problems, none when it may. Drafted templates come from a model fed
17
+ * judges' reasons and case data, so a template is held to what the agent
18
+ * already has, whatever the model was told:
19
+ *
20
+ * - it parses as Liquid;
21
+ * - the variables it reads are the declared parameters, the variables
22
+ * the current template reads, the turn's clock and identity, and
23
+ * `settings["<id>"]` of a settings block the version pins;
24
+ * - the dotted ids it names (`acme.export`, say) are the agent's own,
25
+ * its tools' and blocks', or ones the current template names: no new
26
+ * tool, agent or data reference;
27
+ * - it isn't empty or the current template, and at most twice as long
28
+ * as it (at least 2,000 characters; never over `DRAFTED_TEMPLATE_MAX`).
29
+ */
30
+ export function checkDraftedTemplate(candidate, context) {
31
+ const current = context.current.template;
32
+ const issues = [];
33
+ if (candidate.trim() === '')
34
+ return [{ path: '/template', message: 'the template is empty' }];
35
+ if (candidate === current) {
36
+ return [{ path: '/template', message: 'the template is the current one' }];
37
+ }
38
+ const max = Math.min(DRAFTED_TEMPLATE_MAX, Math.max(2 * current.length, 2000));
39
+ if (candidate.length > max) {
40
+ issues.push({
41
+ path: '/template',
42
+ message: `the template is ${candidate.length} characters; at most ${max} (twice the current one)`,
43
+ });
44
+ }
45
+ let read;
46
+ try {
47
+ read = rootsOf(candidate);
48
+ }
49
+ catch (cause) {
50
+ issues.push({
51
+ path: '/template',
52
+ message: `the template isn't valid Liquid: ${cause instanceof Error ? cause.message : String(cause)}`,
53
+ });
54
+ return issues;
55
+ }
56
+ const parameters = new Set((context.current.parameters ?? []).map((p) => p.name));
57
+ let currentRoots;
58
+ try {
59
+ currentRoots = new Set(rootsOf(current).map((s) => String(s[0])));
60
+ }
61
+ catch {
62
+ currentRoots = new Set();
63
+ }
64
+ const settingsBlocks = new Set(context.settingsBlocks);
65
+ const named = new Set();
66
+ for (const segments of read) {
67
+ const root = String(segments[0]);
68
+ if (root === 'settings') {
69
+ const block = segments[1];
70
+ if (block === undefined || !settingsBlocks.has(String(block))) {
71
+ named.add(`settings${block === undefined ? '' : `["${String(block)}"]`}`);
72
+ }
73
+ continue;
74
+ }
75
+ if (parameters.has(root) || currentRoots.has(root) || HARMLESS_VARS.has(root))
76
+ continue;
77
+ named.add(root);
78
+ }
79
+ for (const variable of named) {
80
+ issues.push({
81
+ path: '/template',
82
+ message: `it reads "${variable}", which the agent doesn't have (a declared parameter, a variable the current template reads, or a settings block the version pins)`,
83
+ });
84
+ }
85
+ const known = new Set([...context.knownIds, ...(current.match(DOTTED_ID) ?? [])]);
86
+ const newIds = new Set((candidate.match(DOTTED_ID) ?? []).filter((id) => !known.has(id)));
87
+ for (const id of newIds) {
88
+ issues.push({
89
+ path: '/template',
90
+ message: `it names "${id}", which the agent doesn't use (its tools, blocks, or what the current template names)`,
91
+ });
92
+ }
93
+ return issues;
94
+ }
95
+ //# sourceMappingURL=drafted-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drafted-template.js","sourceRoot":"","sources":["../src/drafted-template.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { ProviderRegistry, TenantPolicy, UsageSink } from '@kindgi/capabilities';
2
2
  import type { ComplianceProvider } from '@kindgi/compliance';
3
- import { type CheckRegistry, type EvaluationOutcome, type EvaluationResult, type Guardrail, type RunTrace } from '@kindgi/guardrails';
3
+ import { type CheckRegistry, type EvaluationOutcome, type EvaluationResult, type Guardrail, type GuardrailSeverity, type OnViolation, type RunTrace } from '@kindgi/guardrails';
4
4
  import type { OrgId, ProjectId, Result, RunId, TenantId } from '@kindgi/types';
5
5
  import type { Agent, ConversationId, ConversationMessage } from './types.js';
6
6
  /**
@@ -83,6 +83,19 @@ export declare function resolveGuardrails(agent: Agent, bindings: GuardrailsBind
83
83
  * every llm-judge call, as the turn's own model calls are.
84
84
  */
85
85
  export declare function evaluateGate(guardrails: readonly Guardrail[], trace: RunTrace, bindings: GuardrailsBindings, tenantPolicy?: TenantPolicy, abortSignal?: AbortSignal, usage?: UsageSink): Promise<readonly EvaluationOutcome[]>;
86
+ /**
87
+ * A guardrail whose check couldn't run (no such check, a bad configuration, a judge that couldn't
88
+ * be routed), with what the guardrail would have done. Never counted as a violation.
89
+ */
90
+ export interface GuardrailEvaluationError {
91
+ readonly guardrailId: string;
92
+ readonly message: string;
93
+ /** The engine's error code: `unknown-check`, `invalid-check-config`, `judge-routing-failed`, … */
94
+ readonly code: string;
95
+ /** The guardrail's `on-violation` action and severity; absent when the guardrail is unknown. */
96
+ readonly action?: OnViolation;
97
+ readonly severity?: GuardrailSeverity;
98
+ }
86
99
  /**
87
100
  * Sort evaluation outcomes by the failed guardrail's action. `halt` is
88
101
  * blocking — the turn fails with `guardrail-violation`. `log-only` and
@@ -91,16 +104,18 @@ export declare function evaluateGate(guardrails: readonly Guardrail[], trace: Ru
91
104
  * `other`. Warnings and `other` are attached to the successful turn
92
105
  * result under `result.violations`; the turn does not carry out those
93
106
  * actions. Evaluation errors (a check that could not run) are collected
94
- * in `errors`.
107
+ * in `errors`; those of a `halt` guardrail are also in `blockingErrors`,
108
+ * which fail the turn as a violation would (a guardrail that can't check
109
+ * fails closed). `guardrails` is the list the outcomes came from, one
110
+ * outcome per guardrail in order (`evaluateGate`), which says each error's
111
+ * action; without it, an error's guardrail is looked up by id.
95
112
  */
96
- export declare function categorizeOutcomes(outcomes: readonly EvaluationOutcome[]): {
113
+ export declare function categorizeOutcomes(outcomes: readonly EvaluationOutcome[], guardrails?: readonly Guardrail[]): {
97
114
  readonly blocking: readonly EvaluationResult[];
98
115
  readonly warnings: readonly EvaluationResult[];
99
116
  readonly other: readonly EvaluationResult[];
100
- readonly errors: readonly {
101
- readonly guardrailId: string;
102
- readonly message: string;
103
- }[];
117
+ readonly errors: readonly GuardrailEvaluationError[];
118
+ readonly blockingErrors: readonly GuardrailEvaluationError[];
104
119
  };
105
120
  /**
106
121
  * Message for a turn stopped by blocking violations — names each
@@ -109,7 +124,7 @@ export declare function categorizeOutcomes(outcomes: readonly EvaluationOutcome[
109
124
  * Turn blocked by guardrail 'no-pii': Response contains an email address
110
125
  * Turn blocked by 2 guardrails: 'no-pii' (Response contains …); 'max-length'
111
126
  */
112
- export declare function describeBlockingViolations(blocking: readonly EvaluationResult[]): string;
127
+ export declare function describeBlockingViolations(blocking: readonly EvaluationResult[], blockingErrors?: readonly GuardrailEvaluationError[]): string;
113
128
  /**
114
129
  * Result of a session-gate check performed BEFORE running a turn:
115
130
  * the HITL turn threshold (`conversationPolicy.hitl.afterTurns` or
@@ -142,11 +157,11 @@ export interface GuardrailViolationError {
142
157
  readonly code: 'guardrail-violation';
143
158
  readonly message: string;
144
159
  readonly violations: readonly EvaluationResult[];
145
- /** Errors from checks that couldn't even evaluate (missing check, bad config). */
146
- readonly evaluationErrors: readonly {
147
- readonly guardrailId: string;
148
- readonly message: string;
149
- }[];
160
+ /**
161
+ * Guardrails whose check couldn't even evaluate (missing check, bad config). A `halt`
162
+ * guardrail's error blocks the turn on its own, so `violations` can be empty.
163
+ */
164
+ readonly evaluationErrors: readonly GuardrailEvaluationError[];
150
165
  }
151
166
  /**
152
167
  * Error shape for a turn blocked by the session HITL threshold.
@@ -1 +1 @@
1
- {"version":3,"file":"guardrails-gate.d.ts","sourceRoot":"","sources":["../src/guardrails-gate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"guardrails-gate.d.ts","sourceRoot":"","sources":["../src/guardrails-gate.ts"],"names":[],"mappings":"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"}
@@ -99,8 +99,21 @@ export function resolveGuardrails(agent, bindings) {
99
99
  * every llm-judge call, as the turn's own model calls are.
100
100
  */
101
101
  export async function evaluateGate(guardrails, trace, bindings, tenantPolicy, abortSignal, usage) {
102
- if (guardrails.length === 0 || bindings.checks === undefined)
102
+ if (guardrails.length === 0)
103
103
  return [];
104
+ // No check registry at all: every guardrail is one whose check can't run, never one that
105
+ // passed, so a `halt` guardrail fails the turn here too (it fails closed).
106
+ if (bindings.checks === undefined) {
107
+ return guardrails.map((g) => ({
108
+ kind: 'err',
109
+ error: {
110
+ code: 'unknown-check',
111
+ message: `guardrail "${g.id}": no check registry is bound, so its check "${g.check}" can't run`,
112
+ guardrailId: g.id,
113
+ checkId: g.check,
114
+ },
115
+ }));
116
+ }
104
117
  const evalBindings = {
105
118
  ...(bindings.providerRegistry !== undefined && { providerRegistry: bindings.providerRegistry }),
106
119
  ...(bindings.compliance !== undefined && { compliance: bindings.compliance }),
@@ -118,28 +131,45 @@ export async function evaluateGate(guardrails, trace, bindings, tenantPolicy, ab
118
131
  * `other`. Warnings and `other` are attached to the successful turn
119
132
  * result under `result.violations`; the turn does not carry out those
120
133
  * actions. Evaluation errors (a check that could not run) are collected
121
- * in `errors`.
134
+ * in `errors`; those of a `halt` guardrail are also in `blockingErrors`,
135
+ * which fail the turn as a violation would (a guardrail that can't check
136
+ * fails closed). `guardrails` is the list the outcomes came from, one
137
+ * outcome per guardrail in order (`evaluateGate`), which says each error's
138
+ * action; without it, an error's guardrail is looked up by id.
122
139
  */
123
- export function categorizeOutcomes(outcomes) {
140
+ export function categorizeOutcomes(outcomes, guardrails = []) {
124
141
  const blocking = [];
125
142
  const warnings = [];
126
143
  const other = [];
127
144
  const errors = [];
128
- for (const outcome of outcomes) {
145
+ const blockingErrors = [];
146
+ const byId = new Map(guardrails.map((g) => [g.id, g]));
147
+ const inOrder = guardrails.length === outcomes.length;
148
+ outcomes.forEach((outcome, i) => {
129
149
  if (outcome.kind === 'err') {
130
- errors.push({
131
- guardrailId: 'guardrailId' in outcome.error && typeof outcome.error.guardrailId === 'string'
132
- ? outcome.error.guardrailId
133
- : '<unknown>',
150
+ const named = 'guardrailId' in outcome.error && typeof outcome.error.guardrailId === 'string'
151
+ ? outcome.error.guardrailId
152
+ : undefined;
153
+ const guardrail = inOrder ? guardrails[i] : named !== undefined ? byId.get(named) : undefined;
154
+ const error = {
155
+ guardrailId: guardrail?.id ?? named ?? '<unknown>',
134
156
  message: outcome.error.message,
135
- });
136
- continue;
157
+ code: outcome.error.code,
158
+ ...(guardrail !== undefined && {
159
+ action: guardrail.action['on-violation'],
160
+ severity: guardrail.severity ?? 'error',
161
+ }),
162
+ };
163
+ errors.push(error);
164
+ if (error.action === 'halt')
165
+ blockingErrors.push(error);
166
+ return;
137
167
  }
138
168
  if (outcome.kind === 'skip')
139
- continue;
169
+ return;
140
170
  const evalResult = outcome.value;
141
171
  if (evalResult.result.passed)
142
- continue;
172
+ return;
143
173
  if (evalResult.action === 'halt')
144
174
  blocking.push(evalResult);
145
175
  else if (evalResult.action === 'log-only' || evalResult.action === 'noop') {
@@ -147,8 +177,8 @@ export function categorizeOutcomes(outcomes) {
147
177
  }
148
178
  else
149
179
  other.push(evalResult);
150
- }
151
- return { blocking, warnings, other, errors };
180
+ });
181
+ return { blocking, warnings, other, errors, blockingErrors };
152
182
  }
153
183
  /**
154
184
  * Message for a turn stopped by blocking violations — names each
@@ -157,21 +187,29 @@ export function categorizeOutcomes(outcomes) {
157
187
  * Turn blocked by guardrail 'no-pii': Response contains an email address
158
188
  * Turn blocked by 2 guardrails: 'no-pii' (Response contains …); 'max-length'
159
189
  */
160
- export function describeBlockingViolations(blocking) {
190
+ export function describeBlockingViolations(blocking, blockingErrors = []) {
161
191
  const reasonOf = (v) => {
162
192
  const reason = v.result.reason?.trim();
163
193
  return reason === undefined || reason === '' ? undefined : reason;
164
194
  };
195
+ const couldNotRun = (e) => `'${e.guardrailId}' couldn't run its check (${e.code}: ${e.message})`;
165
196
  const [only] = blocking;
166
- if (blocking.length === 1 && only !== undefined) {
197
+ const [onlyError] = blockingErrors;
198
+ if (blocking.length === 1 && only !== undefined && blockingErrors.length === 0) {
167
199
  const reason = reasonOf(only);
168
200
  return `Turn blocked by guardrail '${only.guardrailId}'${reason !== undefined ? `: ${reason}` : ''}`;
169
201
  }
170
- const named = blocking.map((v) => {
171
- const reason = reasonOf(v);
172
- return `'${v.guardrailId}'${reason !== undefined ? ` (${reason})` : ''}`;
173
- });
174
- return `Turn blocked by ${blocking.length} guardrails: ${named.join('; ')}`;
202
+ if (blocking.length === 0 && blockingErrors.length === 1 && onlyError !== undefined) {
203
+ return `Turn blocked: guardrail ${couldNotRun(onlyError)}`;
204
+ }
205
+ const named = [
206
+ ...blocking.map((v) => {
207
+ const reason = reasonOf(v);
208
+ return `'${v.guardrailId}'${reason !== undefined ? ` (${reason})` : ''}`;
209
+ }),
210
+ ...blockingErrors.map(couldNotRun),
211
+ ];
212
+ return `Turn blocked by ${named.length} guardrails: ${named.join('; ')}`;
175
213
  }
176
214
  /**
177
215
  * Evaluate session-level gates against the conversation state before
@@ -1 +1 @@
1
- {"version":3,"file":"guardrails-gate.js","sourceRoot":"","sources":["../src/guardrails-gate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"guardrails-gate.js","sourceRoot":"","sources":["../src/guardrails-gate.ts"],"names":[],"mappings":"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"}
@@ -4,11 +4,17 @@ import type { TurnContext } from './context.js';
4
4
  * Compose the initial `modelMessages` array the loop's first iteration
5
5
  * feeds to the model:
6
6
  *
7
- * [ system: rendered prompt,
8
- * system: retrieved context (if any),
7
+ * [ system: rendered prompt
8
+ * (+ the memory rule, + "Policies (verified)", when there are),
9
9
  * ...history,
10
+ * user: <memory> data block (if anything was retrieved),
10
11
  * user: current message ]
11
12
  *
13
+ * Retrieved facts are data: a labelled block in a user-role message, read
14
+ * as information about the world, never as instructions. Only a verified
15
+ * fact of a type the agent lists in `memory.instructionTypes` is an
16
+ * instruction, in the system message.
17
+ *
12
18
  * Output shape: `{ nextMessages: ModelMessage[] }` — matches the loop
13
19
  * iteration output's `nextMessages` field so the loop body can treat
14
20
  * iteration 0's input identically to subsequent iterations'.
@@ -1 +1 @@
1
- {"version":3,"file":"build-initial-messages.d.ts","sourceRoot":"","sources":["../../src/handlers/build-initial-messages.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAKnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gCAAgC,CAAC,GAAG,EAAE,WAAW,GAAG,WAAW,CAmD9E"}
1
+ {"version":3,"file":"build-initial-messages.d.ts","sourceRoot":"","sources":["../../src/handlers/build-initial-messages.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAUnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAIhD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,gCAAgC,CAAC,GAAG,EAAE,WAAW,GAAG,WAAW,CA8C9E"}
@@ -1,16 +1,23 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  // Copyright (C) 2026 Kindgi Inc.
3
- import { formatRetrievedForPrompt } from '../retrieval.js';
3
+ import { MEMORY_DATA_RULE, formatPoliciesForPrompt, formatRetrievedForPrompt, isPolicyFact, } from '../retrieval.js';
4
4
  import { throwAgentTurnFailure } from './errors.js';
5
+ import { readHistory } from './history.js';
5
6
  /**
6
7
  * Compose the initial `modelMessages` array the loop's first iteration
7
8
  * feeds to the model:
8
9
  *
9
- * [ system: rendered prompt,
10
- * system: retrieved context (if any),
10
+ * [ system: rendered prompt
11
+ * (+ the memory rule, + "Policies (verified)", when there are),
11
12
  * ...history,
13
+ * user: <memory> data block (if anything was retrieved),
12
14
  * user: current message ]
13
15
  *
16
+ * Retrieved facts are data: a labelled block in a user-role message, read
17
+ * as information about the world, never as instructions. Only a verified
18
+ * fact of a type the agent lists in `memory.instructionTypes` is an
19
+ * instruction, in the system message.
20
+ *
14
21
  * Output shape: `{ nextMessages: ModelMessage[] }` — matches the loop
15
22
  * iteration output's `nextMessages` field so the loop body can treat
16
23
  * iteration 0's input identically to subsequent iterations'.
@@ -28,22 +35,12 @@ export function buildBuildInitialMessagesHandler(ctx) {
28
35
  // prompt is read from setup's sibling output via ctx (retained on
29
36
  // the closure by render-prompt through the local field `renderedPrompt`).
30
37
  void input;
31
- const historyLimit = ctx.input.agent.conversationPolicy?.historyLimit;
32
- const messages = await ctx.bindings.conversationBinding.readMessages({
33
- tenantId: ctx.input.tenantId,
34
- conversationId: ctx.input.conversationId,
35
- });
36
- if (messages.kind === 'err')
37
- throwAgentTurnFailure(messages.error);
38
- // The user message just appended is included in the history read;
39
- // drop it because the composer adds it explicitly as the last
40
- // element.
41
- const historyRaw = messages.value.filter((m) => m.sequence !== ctx.userMessage?.sequence);
42
- const history = historyLimit === undefined
43
- ? historyRaw
44
- : historyRaw.slice(Math.max(0, historyRaw.length - historyLimit));
45
- const contextBlock = formatRetrievedForPrompt(ctx.retrieved);
46
- const contextMessage = contextBlock.length > 0 ? { role: 'system', content: contextBlock } : undefined;
38
+ const history = await readHistory(ctx);
39
+ const agent = ctx.input.agent;
40
+ const policies = ctx.retrieved.filter((r) => isPolicyFact(agent, r));
41
+ const data = ctx.retrieved.filter((r) => !isPolicyFact(agent, r));
42
+ const memoryBlock = formatRetrievedForPrompt(data, ctx.recalled ?? []);
43
+ const memoryMessage = memoryBlock.length > 0 ? { role: 'user', content: memoryBlock } : undefined;
47
44
  const rendered = ctx.renderedPrompt;
48
45
  if (rendered === undefined) {
49
46
  throwAgentTurnFailure({
@@ -52,10 +49,15 @@ export function buildBuildInitialMessagesHandler(ctx) {
52
49
  cause: null,
53
50
  });
54
51
  }
52
+ const system = [
53
+ rendered,
54
+ ...(memoryMessage !== undefined ? [MEMORY_DATA_RULE] : []),
55
+ ...(policies.length > 0 ? [formatPoliciesForPrompt(policies)] : []),
56
+ ].join('\n\n');
55
57
  const modelMessages = [
56
- { role: 'system', content: rendered },
57
- ...(contextMessage !== undefined ? [contextMessage] : []),
58
+ { role: 'system', content: system },
58
59
  ...history.map(conversationToModelMessage),
60
+ ...(memoryMessage !== undefined ? [memoryMessage] : []),
59
61
  { role: 'user', content: ctx.input.userMessage },
60
62
  ];
61
63
  return { nextMessages: modelMessages };
@@ -1 +1 @@
1
- {"version":3,"file":"build-initial-messages.js","sourceRoot":"","sources":["../../src/handlers/build-initial-messages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build-initial-messages.js","sourceRoot":"","sources":["../../src/handlers/build-initial-messages.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"compose-result.d.ts","sourceRoot":"","sources":["../../src/handlers/compose-result.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAKnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AA2BhD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,WAAW,GAAG,WAAW,CA4DvE"}
1
+ {"version":3,"file":"compose-result.d.ts","sourceRoot":"","sources":["../../src/handlers/compose-result.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAKnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AA8ChD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,WAAW,GAAG,WAAW,CA8DvE"}
@@ -2,6 +2,7 @@
2
2
  // Copyright (C) 2026 Kindgi Inc.
3
3
  import { emitTurnEvent } from '../streaming.js';
4
4
  import { throwAgentTurnFailure } from './errors.js';
5
+ import { turnParticipantId } from './remember-tool.js';
5
6
  import { replayReport } from './replay.js';
6
7
  import { parseJsonAnswer } from './structured-output.js';
7
8
  /** The final answer as JSON — `budget-check` already validated it against the schema. */
@@ -20,8 +21,26 @@ function turnWarnings(ctx, providerId) {
20
21
  }
21
22
  for (const [code, message] of ctx.modelWarnings ?? [])
22
23
  warnings.push({ code, message });
24
+ const memory = needsParticipant(ctx);
25
+ if (memory !== undefined)
26
+ warnings.push(memory);
23
27
  return warnings.length > 0 ? { warnings } : {};
24
28
  }
29
+ /**
30
+ * Same-user memory (a retrieval or `remember` scoped to the end user) in a
31
+ * run that names no end user: none was read or kept. Say how to fix it.
32
+ */
33
+ function needsParticipant(ctx) {
34
+ const agent = ctx.input.agent;
35
+ const sameUser = agent.retrieval.some((i) => i.scope === 'same-user') ||
36
+ agent.memory?.remember?.scope === 'same-user';
37
+ if (!sameUser || turnParticipantId(ctx) !== undefined)
38
+ return undefined;
39
+ return {
40
+ code: 'memory-needs-participant',
41
+ message: `Agent "${agent.id}" keeps memory per end user, but this run names none (\`participantId\`), so it read and kept none. Pass the person's \`participantId\` on each run: the user a credential acts for may serve many people.`,
42
+ };
43
+ }
25
44
  /**
26
45
  * The terminal node — builds the caller-facing `AgentTurnResult` from
27
46
  * accumulated `TurnContext` state, emits `turn.completed`, and returns
@@ -59,6 +78,7 @@ export function buildComposeResultHandler(ctx) {
59
78
  appended: ctx.appended,
60
79
  response: ctx.finalMessage,
61
80
  retrieved: ctx.retrieved ?? [],
81
+ ...(ctx.recalled !== undefined && ctx.recalled.length > 0 && { recalled: ctx.recalled }),
62
82
  violations: ctx.nonBlockingViolations ?? [],
63
83
  usage,
64
84
  provider,
@@ -76,6 +96,7 @@ export function buildComposeResultHandler(ctx) {
76
96
  turnNumber: ctx.conversation.turnCount + 1,
77
97
  response: ctx.finalMessage,
78
98
  retrieved: ctx.retrieved ?? [],
99
+ ...(ctx.recalled !== undefined && ctx.recalled.length > 0 && { recalled: ctx.recalled }),
79
100
  durationMs,
80
101
  totalCostUsd: ctx.usage.totalCostUsd,
81
102
  });
@@ -1 +1 @@
1
- {"version":3,"file":"compose-result.js","sourceRoot":"","sources":["../../src/handlers/compose-result.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compose-result.js","sourceRoot":"","sources":["../../src/handlers/compose-result.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ import type { Tool } from '@kindgi/tools';
5
5
  import type { EvaluationResult } from '@kindgi/guardrails';
6
6
  import type { EffectiveHitlPolicy } from '../hitl-policy.js';
7
7
  import type { ProvenanceBindings } from '../provenance-emit.js';
8
- import type { Agent, Conversation, ConversationMessage, RetrievedFact } from '../types.js';
8
+ import type { Agent, Conversation, ConversationMessage, RecalledMemory, RetrievedFact } from '../types.js';
9
9
  import type { HitlBindings, InvokeAgentBindings, InvokeAgentInput } from './public-types.js';
10
10
  import type { TurnBlocks } from './resolve-blocks.js';
11
11
  import type { ToolErrorPolicy } from './tool-errors.js';
@@ -87,6 +87,11 @@ export interface TurnContext {
87
87
  * Populated by `run-retrievals` — facts pulled by declared intents.
88
88
  */
89
89
  retrieved?: readonly RetrievedFact[];
90
+ /**
91
+ * Populated by `run-retrievals` — messages of earlier conversations
92
+ * recalled by intents over conversations.
93
+ */
94
+ recalled?: readonly RecalledMemory[];
90
95
  /**
91
96
  * Populated by `persist-final-message` — the terminal assistant
92
97
  * message. `compose-result` reads it back for the returned
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/handlers/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/handlers/context.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch-tools.d.ts","sourceRoot":"","sources":["../../src/handlers/dispatch-tools.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAe,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAWhE,OAAO,KAAK,EAA4B,WAAW,EAAE,MAAM,cAAc,CAAC;AAsH1E;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,WAAW,GAAG,WAAW,CA+SvE"}
1
+ {"version":3,"file":"dispatch-tools.d.ts","sourceRoot":"","sources":["../../src/handlers/dispatch-tools.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAe,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAWhE,OAAO,KAAK,EAA4B,WAAW,EAAE,MAAM,cAAc,CAAC;AAsH1E;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,WAAW,GAAG,WAAW,CAoTvE"}