@lloyal-labs/lloyal-agents 1.5.8 → 2.0.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 (68) hide show
  1. package/README.md +81 -97
  2. package/dist/Agent.d.ts +60 -1
  3. package/dist/Agent.d.ts.map +1 -1
  4. package/dist/Agent.js +87 -1
  5. package/dist/Agent.js.map +1 -1
  6. package/dist/AgentPolicy.d.ts +52 -16
  7. package/dist/AgentPolicy.d.ts.map +1 -1
  8. package/dist/AgentPolicy.js +114 -43
  9. package/dist/AgentPolicy.js.map +1 -1
  10. package/dist/agent-pool.d.ts +17 -5
  11. package/dist/agent-pool.d.ts.map +1 -1
  12. package/dist/agent-pool.js +707 -417
  13. package/dist/agent-pool.js.map +1 -1
  14. package/dist/combinators.d.ts +29 -0
  15. package/dist/combinators.d.ts.map +1 -0
  16. package/dist/combinators.js +37 -0
  17. package/dist/combinators.js.map +1 -0
  18. package/dist/context.d.ts +18 -1
  19. package/dist/context.d.ts.map +1 -1
  20. package/dist/context.js +18 -1
  21. package/dist/context.js.map +1 -1
  22. package/dist/create-agent-pool.d.ts +96 -0
  23. package/dist/create-agent-pool.d.ts.map +1 -0
  24. package/dist/create-agent-pool.js +84 -0
  25. package/dist/create-agent-pool.js.map +1 -0
  26. package/dist/index.d.ts +10 -5
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +17 -8
  29. package/dist/index.js.map +1 -1
  30. package/dist/orchestrators.d.ts +161 -0
  31. package/dist/orchestrators.d.ts.map +1 -0
  32. package/dist/orchestrators.js +173 -0
  33. package/dist/orchestrators.js.map +1 -0
  34. package/dist/replay.d.ts +96 -0
  35. package/dist/replay.d.ts.map +1 -0
  36. package/dist/replay.js +108 -0
  37. package/dist/replay.js.map +1 -0
  38. package/dist/shared-root.d.ts +56 -18
  39. package/dist/shared-root.d.ts.map +1 -1
  40. package/dist/shared-root.js +79 -52
  41. package/dist/shared-root.js.map +1 -1
  42. package/dist/source.d.ts.map +1 -1
  43. package/dist/source.js.map +1 -1
  44. package/dist/trace-types.d.ts +23 -2
  45. package/dist/trace-types.d.ts.map +1 -1
  46. package/dist/trace-writer.d.ts +4 -1
  47. package/dist/trace-writer.d.ts.map +1 -1
  48. package/dist/trace-writer.js +6 -2
  49. package/dist/trace-writer.js.map +1 -1
  50. package/dist/types.d.ts +42 -5
  51. package/dist/types.d.ts.map +1 -1
  52. package/dist/use-agent.d.ts +92 -0
  53. package/dist/use-agent.d.ts.map +1 -0
  54. package/dist/use-agent.js +127 -0
  55. package/dist/use-agent.js.map +1 -0
  56. package/package.json +5 -5
  57. package/dist/generate.d.ts +0 -77
  58. package/dist/generate.d.ts.map +0 -1
  59. package/dist/generate.js +0 -166
  60. package/dist/generate.js.map +0 -1
  61. package/dist/run-agents.d.ts +0 -39
  62. package/dist/run-agents.d.ts.map +0 -1
  63. package/dist/run-agents.js +0 -46
  64. package/dist/run-agents.js.map +0 -1
  65. package/dist/spawn-agents.d.ts +0 -104
  66. package/dist/spawn-agents.d.ts.map +0 -1
  67. package/dist/spawn-agents.js +0 -255
  68. package/dist/spawn-agents.js.map +0 -1
@@ -16,13 +16,12 @@ export interface ToolGuard {
16
16
  /** Error message sent back to the agent as a tool result */
17
17
  message: string;
18
18
  }
19
- /** Default guards for deduplication and recursion discipline */
20
19
  export declare const defaultToolGuards: ToolGuard[];
21
20
  /**
22
21
  * Why the agent entered idle status.
23
22
  * @category Agents
24
23
  */
25
- export type IdleReason = 'reported' | 'pressure_critical' | 'pressure_softcut' | 'pressure_settle_reject' | 'max_turns' | 'free_text_stop' | 'tool_error';
24
+ export type IdleReason = 'reported' | 'pressure_critical' | 'pressure_softcut' | 'pressure_settle_reject' | 'settle_stall_break' | 'max_turns' | 'free_text_stop' | 'tool_error';
26
25
  /**
27
26
  * Action returned by policy.onProduced — tells the pool what to do.
28
27
  * @category Agents
@@ -91,12 +90,20 @@ export interface AgentPolicy {
91
90
  toolCalls: ParsedToolCall[];
92
91
  }, pressure: ContextPressure, config: PolicyConfig): ProduceAction;
93
92
  /**
94
- * SETTLE phase: tool result won't fit in KV — what should happen?
93
+ * SETTLE stall-break: consulted when deferred tool results have no
94
+ * active siblings to free KV — the last-resort moment where a policy
95
+ * decides whether to nudge the agent (replacing the oversized result
96
+ * with a compact error payload) or drop it and let recovery extract.
95
97
  *
96
- * @deprecated SETTLE no longer kills agents. Oversized tool results are
97
- * deferred until headroom recovers via the trailing stop in PRODUCE.
98
- * This method is retained for backward compatibility with custom policies
99
- * but is no longer called by the pool.
98
+ * In normal operation, SETTLE defers oversized items across ticks.
99
+ * Siblings completing (parallel) or the spine growing (chain) restores
100
+ * headroom on subsequent ticks this hook fires only when all agents
101
+ * are `awaiting_tool`/idle and deferral can't resolve on its own.
102
+ *
103
+ * Return `{type: 'nudge'}` to replace the oversized item with a compact
104
+ * error payload (carries the budget in its message). Return
105
+ * `{type: 'idle', reason: 'pressure_settle_reject'}` to drop the agent.
106
+ * If the hook is absent, the pool falls back to `settle_stall_break`.
100
107
  */
101
108
  onSettleReject(agent: Agent, resultTokens: number, pressure: ContextPressure, config: PolicyConfig): SettleAction;
102
109
  /**
@@ -146,7 +153,7 @@ export interface AgentPolicy {
146
153
  *
147
154
  * Optional — defaults to skip when absent.
148
155
  */
149
- onRecovery?(agent: Agent): RecoveryAction;
156
+ onRecovery?(agent: Agent, pressure: ContextPressure): RecoveryAction;
150
157
  }
151
158
  /**
152
159
  * Pool-level configuration passed to policy methods.
@@ -177,9 +184,23 @@ export interface DefaultAgentPolicyOpts {
177
184
  guards?: ToolGuard[];
178
185
  /** Append additional guards to the defaults. */
179
186
  extraGuards?: ToolGuard[];
180
- /** KV availability threshold (0–100). Above → explore. Below → exploit.
181
- * Uses ContextPressure.percentAvailable. @default 40 */
182
- exploreThreshold?: number;
187
+ /**
188
+ * Explore/exploit thresholds both axes checked independently.
189
+ * Either falling below its threshold flips the policy into exploit mode
190
+ * (rerank tool results against the original query via the entailment
191
+ * scorer). Explore mode preserves the agent's local-query ordering.
192
+ */
193
+ shouldExplore?: {
194
+ /** Minimum fraction of KV capacity (0–1) that must remain free for
195
+ * explore mode. Checks `pressure.percentAvailable / 100`. Below this
196
+ * fraction, exploit mode kicks in. @default 0.4 */
197
+ context?: number;
198
+ /** Maximum fraction of the time soft limit (0–1) that can be consumed
199
+ * before exploit mode kicks in. When `elapsed / timeSoftLimit >= time`,
200
+ * `shouldExplore` returns false regardless of KV headroom. Only
201
+ * applies when `budget.time.softLimit` is set. @default 0.5 */
202
+ time?: number;
203
+ };
183
204
  /** Scratchpad recovery for agents killed without reporting.
184
205
  * Policy decides per-agent via {@link AgentPolicy.onRecovery}. */
185
206
  recovery?: {
@@ -207,16 +228,31 @@ export interface DefaultAgentPolicyOpts {
207
228
  hardLimit?: number;
208
229
  };
209
230
  };
231
+ /** Terminal tool name. When set, agents mid-generation of this tool are
232
+ * protected from shouldExit — the hard limit is deferred until the tool
233
+ * call completes naturally or KV pressure forces a kill. */
234
+ terminalTool?: string;
210
235
  }
211
236
  export declare class DefaultAgentPolicy implements AgentPolicy {
212
237
  private _minToolCalls;
213
238
  private _guards;
214
- private _exploreThreshold;
239
+ private _exploreContext;
240
+ private _exploreTime;
215
241
  private _forceExploit;
216
242
  private _recovery;
217
243
  private _budget;
244
+ private _terminalTool;
218
245
  private _startTime;
219
246
  constructor(opts?: DefaultAgentPolicyOpts);
247
+ /**
248
+ * Elapsed wall time for *this agent* (since its first idle→active transition),
249
+ * falling back to the policy's own construction time when the agent hasn't
250
+ * started yet (defensive — shouldn't normally happen).
251
+ *
252
+ * Per-agent timing means orchestrators that spawn agents sequentially (e.g.
253
+ * `chain`) get the correct "how long has this task been running?" semantics
254
+ * without the time budget leaking across iterations.
255
+ */
220
256
  private _elapsed;
221
257
  /** KV pressure thresholds for ContextPressure construction.
222
258
  * Pool reads this once at setup. */
@@ -232,13 +268,14 @@ export declare class DefaultAgentPolicy implements AgentPolicy {
232
268
  private _isOverBudget;
233
269
  private _handleOverBudget;
234
270
  private _checkGuards;
235
- onSettleReject(agent: Agent, _resultTokens: number, _pressure: ContextPressure, config: PolicyConfig): SettleAction;
271
+ onSettleReject(agent: Agent, _resultTokens: number, pressure: ContextPressure, config: PolicyConfig): SettleAction;
236
272
  /**
237
273
  * UI-driven override. Harness calls this when the user wants agents
238
274
  * to wrap up. Overrides pressure-based logic immediately.
239
275
  */
240
276
  setExploitMode(force: boolean): void;
241
- shouldExplore(_agent: Agent, pressure: ContextPressure): boolean;
277
+ shouldExit(agent: Agent, pressure: ContextPressure): boolean;
278
+ shouldExplore(agent: Agent, pressure: ContextPressure): boolean;
242
279
  /**
243
280
  * Trailing stop: at most one agent nudged or killed per tick.
244
281
  * The sacrificed agent's findings are extracted and its KV freed,
@@ -248,7 +285,6 @@ export declare class DefaultAgentPolicy implements AgentPolicy {
248
285
  private _killedThisTick;
249
286
  private _nudgedThisTick;
250
287
  resetTick(): void;
251
- shouldExit(_agent: Agent, pressure: ContextPressure): boolean;
252
- onRecovery(agent: Agent): RecoveryAction;
288
+ onRecovery(agent: Agent, pressure: ContextPressure): RecoveryAction;
253
289
  }
254
290
  //# sourceMappingURL=AgentPolicy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AgentPolicy.d.ts","sourceRoot":"","sources":["../src/AgentPolicy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentPolicy.d.ts","sourceRoot":"","sources":["../src/AgentPolicy.ts"],"names":[],"mappings":"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"}
@@ -2,13 +2,38 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DefaultAgentPolicy = exports.defaultToolGuards = void 0;
4
4
  const agent_pool_1 = require("./agent-pool");
5
+ const prompt_1 = require("./prompt");
6
+ // Recovery-phase KV accounting constants. These size the hardLimit reserve
7
+ // allocation for recoverInline: the prefill cost of the recovery prompt +
8
+ // room for llama.cpp's batch workspace. Used to compute the budget
9
+ // communicated to the model in its recovery prompt.
10
+ const RECOVERY_PREFILL_OVERHEAD = 150;
11
+ const BATCH_BUFFER = 512;
12
+ /**
13
+ * Convert a token budget to a conservative word count for the model-facing
14
+ * prompt. Tokens are tokenizer-specific; words are universal and better
15
+ * reflected in training data. Applies a 0.7 words/token ratio (vs the
16
+ * typical ~0.75) to under-advertise the budget, rounds down to the nearest
17
+ * 10, and floors at 10 so the model always has a non-zero target.
18
+ */
19
+ function tokenBudgetAsWords(budgetTokens) {
20
+ return Math.max(10, Math.floor(budgetTokens * 0.7 / 10) * 10);
21
+ }
5
22
  /** Default guards for deduplication and recursion discipline */
23
+ function parseHistoryArgs(argsStr) {
24
+ try {
25
+ return JSON.parse(argsStr);
26
+ }
27
+ catch {
28
+ return {};
29
+ }
30
+ }
6
31
  exports.defaultToolGuards = [
7
32
  {
8
33
  tools: ['fetch_page'],
9
34
  reject: (args, history) => {
10
35
  const url = args.url;
11
- return !!url && history.some(h => h.name === 'fetch_page' && h.args === url);
36
+ return !!url && history.some(h => h.name === 'fetch_page' && parseHistoryArgs(h.args).url === url);
12
37
  },
13
38
  message: 'This URL was already fetched. Try a different source.',
14
39
  },
@@ -16,44 +41,50 @@ exports.defaultToolGuards = [
16
41
  tools: ['web_search'],
17
42
  reject: (args, history) => {
18
43
  const query = args.query?.toLowerCase();
19
- return !!query && history.some(h => h.name === 'web_search' && h.args.toLowerCase() === query);
44
+ return !!query && history.some(h => {
45
+ const prev = parseHistoryArgs(h.args).query?.toLowerCase();
46
+ return h.name === 'web_search' && prev === query;
47
+ });
20
48
  },
21
49
  message: 'This query was already searched. Refine your search or report findings.',
22
50
  },
23
- {
24
- tools: ['web_research', 'research'],
25
- reject: (_args, _lineage, agent) => {
26
- // Agent-local history: each agent must do its own research before delegating,
27
- // regardless of what ancestors did. Lineage history would let children bypass
28
- // this by inheriting parent's search+fetch — producing blind relay chains.
29
- const local = agent.toolHistory;
30
- const hasSearch = local.some(h => h.name === 'web_search' || h.name === 'search');
31
- const hasFetch = local.some(h => h.name === 'fetch_page' || h.name === 'read_file');
32
- return !hasSearch || !hasFetch;
33
- },
34
- message: 'Read your search results with fetch_page before spawning sub-agents.',
35
- },
36
51
  ];
37
52
  class DefaultAgentPolicy {
38
53
  _minToolCalls;
39
54
  _guards;
40
- _exploreThreshold;
55
+ _exploreContext;
56
+ _exploreTime;
41
57
  _forceExploit = false;
42
58
  _recovery;
43
59
  _budget;
60
+ _terminalTool;
44
61
  _startTime;
45
62
  constructor(opts) {
46
63
  this._minToolCalls = opts?.minToolCallsBeforeReport ?? 2;
47
- this._exploreThreshold = opts?.exploreThreshold ?? 40;
64
+ this._exploreContext = opts?.shouldExplore?.context ?? 0.4;
65
+ this._exploreTime = opts?.shouldExplore?.time ?? 0.5;
48
66
  this._guards = opts?.guards ?? [
49
67
  ...exports.defaultToolGuards,
50
68
  ...(opts?.extraGuards ?? []),
51
69
  ];
52
70
  this._recovery = opts?.recovery ?? null;
53
71
  this._budget = opts?.budget ?? null;
72
+ this._terminalTool = opts?.terminalTool ?? null;
54
73
  this._startTime = performance.now();
55
74
  }
56
- _elapsed() { return performance.now() - this._startTime; }
75
+ /**
76
+ * Elapsed wall time for *this agent* (since its first idle→active transition),
77
+ * falling back to the policy's own construction time when the agent hasn't
78
+ * started yet (defensive — shouldn't normally happen).
79
+ *
80
+ * Per-agent timing means orchestrators that spawn agents sequentially (e.g.
81
+ * `chain`) get the correct "how long has this task been running?" semantics
82
+ * without the time budget leaking across iterations.
83
+ */
84
+ _elapsed(agent) {
85
+ const started = agent?.startedAt ?? this._startTime;
86
+ return performance.now() - started;
87
+ }
57
88
  /** KV pressure thresholds for ContextPressure construction.
58
89
  * Pool reads this once at setup. */
59
90
  get pressureThresholds() {
@@ -70,11 +101,19 @@ class DefaultAgentPolicy {
70
101
  return this._handleNoToolCall(agent, parsed);
71
102
  if (this._isTerminalTool(tc, config))
72
103
  return this._handleTerminalTool(tc, agent, config, pressure);
73
- if (this._isOverBudget(agent, tc, pressure, config))
74
- return this._handleOverBudget(agent, tc, pressure, config);
104
+ // Guards before budget: when an agent is over budget AND emitting
105
+ // a tool call the guards already want to reject (duplicate query,
106
+ // duplicate fetch, delegation-before-research), the guard's specific
107
+ // message is more actionable than a generic "report now within N
108
+ // words" turn-limit nudge. Previously, `_isOverBudget` preempted the
109
+ // guard — stuck agents (same query repeated past maxTurns) saw only
110
+ // turn-limit nudges instead of the dedup message that named the
111
+ // actual problem (see trace-1776819196054 agent 65539).
75
112
  const guardRejection = this._checkGuards(tc, agent);
76
113
  if (guardRejection)
77
114
  return guardRejection;
115
+ if (this._isOverBudget(agent, tc, pressure, config))
116
+ return this._handleOverBudget(agent, tc, pressure, config);
78
117
  // Normal tool call
79
118
  return { type: 'tool_call', tc };
80
119
  }
@@ -104,7 +143,7 @@ class DefaultAgentPolicy {
104
143
  }
105
144
  _isUnderPressure(agent, pressure, config) {
106
145
  const timeSoft = this._budget?.time?.softLimit;
107
- const timeNudge = timeSoft != null && this._elapsed() >= timeSoft;
146
+ const timeNudge = timeSoft != null && this._elapsed(agent) >= timeSoft;
108
147
  return agent.turns >= config.maxTurns || pressure.headroom < 0 || timeNudge;
109
148
  }
110
149
  _isOverBudget(agent, tc, pressure, config) {
@@ -113,15 +152,21 @@ class DefaultAgentPolicy {
113
152
  }
114
153
  _handleOverBudget(agent, tc, pressure, config) {
115
154
  const timeSoft = this._budget?.time?.softLimit;
116
- const timeNudge = timeSoft != null && this._elapsed() >= timeSoft;
155
+ const timeNudge = timeSoft != null && this._elapsed(agent) >= timeSoft;
117
156
  if (config.terminalTool && agent.toolCallCount > 0 && !pressure.critical) {
118
157
  if (!this._nudgedThisTick) {
119
158
  this._nudgedThisTick = true;
159
+ // Budget the model can emit before `pressure.critical` kills it.
160
+ // Overshoot → kill → recoverInline extracts from the hardLimit reserve.
161
+ // Expressed in words (not tokens) because tokenizers vary across
162
+ // models but words are universal. Under-advertised + rounded down
163
+ // so the model has slack on the ceiling.
164
+ const words = tokenBudgetAsWords(pressure.remaining - pressure.hardLimit);
120
165
  const msg = timeNudge
121
- ? 'Time limit approaching — report your findings now.'
166
+ ? `Time limit reached — report your findings now within ${words} words.`
122
167
  : agent.turns >= config.maxTurns
123
- ? 'Turn limit reached — report your findings now.'
124
- : 'KV memory pressure — report your findings now.';
168
+ ? `Turn limit reached — report your findings now within ${words} words.`
169
+ : `KV memory pressure — report your findings now within ${words} words.`;
125
170
  return { type: 'nudge', message: msg };
126
171
  }
127
172
  return { type: 'tool_call', tc };
@@ -144,10 +189,11 @@ class DefaultAgentPolicy {
144
189
  }
145
190
  return null;
146
191
  }
147
- onSettleReject(agent, _resultTokens, _pressure, config) {
192
+ onSettleReject(agent, _resultTokens, pressure, config) {
148
193
  // Nudge if possible — stateless, no escalation tracking
149
194
  if (config.terminalTool && agent.toolCallCount > 0) {
150
- return { type: 'nudge', message: 'Tool result too large for remaining KV. Report your findings now.' };
195
+ const words = tokenBudgetAsWords(pressure.remaining - pressure.hardLimit);
196
+ return { type: 'nudge', message: `Tool result too large for remaining KV. Report your findings now within ${words} words.` };
151
197
  }
152
198
  // No terminal tool: kill
153
199
  return { type: 'idle', reason: 'pressure_settle_reject' };
@@ -157,10 +203,33 @@ class DefaultAgentPolicy {
157
203
  * to wrap up. Overrides pressure-based logic immediately.
158
204
  */
159
205
  setExploitMode(force) { this._forceExploit = force; }
160
- shouldExplore(_agent, pressure) {
206
+ shouldExit(agent, pressure) {
207
+ // Terminal-tool protection applies in the graceful zone only — once
208
+ // `pressure.critical` fires, the agent must yield so the pool can
209
+ // kill+recover before native OOM. Holding this protection through
210
+ // critical territory was the DOJ runaway cause (trace-1776782401659).
211
+ if (this._terminalTool && agent.currentTool === this._terminalTool && !pressure.critical)
212
+ return false;
213
+ if (!pressure.critical) {
214
+ const timeHard = this._budget?.time?.hardLimit;
215
+ if (timeHard != null && this._elapsed(agent) >= timeHard)
216
+ return true;
217
+ return false;
218
+ }
219
+ if (this._killedThisTick)
220
+ return false;
221
+ this._killedThisTick = true;
222
+ return true;
223
+ }
224
+ shouldExplore(agent, pressure) {
161
225
  if (this._forceExploit)
162
226
  return false;
163
- return pressure.percentAvailable > this._exploreThreshold;
227
+ const contextOk = pressure.percentAvailable / 100 > this._exploreContext;
228
+ const timeSoftLimit = this._budget?.time?.softLimit;
229
+ const timeOk = timeSoftLimit == null
230
+ ? true
231
+ : this._elapsed(agent) / timeSoftLimit < this._exploreTime;
232
+ return contextOk && timeOk;
164
233
  }
165
234
  /**
166
235
  * Trailing stop: at most one agent nudged or killed per tick.
@@ -174,19 +243,7 @@ class DefaultAgentPolicy {
174
243
  this._killedThisTick = false;
175
244
  this._nudgedThisTick = false;
176
245
  }
177
- shouldExit(_agent, pressure) {
178
- if (!pressure.critical) {
179
- const timeHard = this._budget?.time?.hardLimit;
180
- if (timeHard != null && this._elapsed() >= timeHard)
181
- return true;
182
- return false;
183
- }
184
- if (this._killedThisTick)
185
- return false;
186
- this._killedThisTick = true;
187
- return true;
188
- }
189
- onRecovery(agent) {
246
+ onRecovery(agent, pressure) {
190
247
  if (!this._recovery)
191
248
  return { type: 'skip' };
192
249
  const minTokens = this._recovery.minTokens ?? 100;
@@ -194,7 +251,21 @@ class DefaultAgentPolicy {
194
251
  if (agent.tokenCount < minTokens || agent.toolCallCount < minToolCalls) {
195
252
  return { type: 'skip' };
196
253
  }
197
- return { type: 'extract', prompt: this._recovery.prompt };
254
+ // Budget recovery's generation can consume: hardLimit reserve minus the
255
+ // prefill overhead and llama.cpp's batch workspace. Expressed as words
256
+ // (not tokens) and under-advertised so the model has slack — tokenizers
257
+ // vary across models but words are universal. Rendered into the prompt
258
+ // as `it.budget` so authors can reference it via `<%= it.budget %>`.
259
+ const budgetTokens = Math.max(50, pressure.remaining - RECOVERY_PREFILL_OVERHEAD - BATCH_BUFFER);
260
+ const budget = tokenBudgetAsWords(budgetTokens);
261
+ const tctx = { budget };
262
+ return {
263
+ type: 'extract',
264
+ prompt: {
265
+ system: (0, prompt_1.renderTemplate)(this._recovery.prompt.system, tctx),
266
+ user: (0, prompt_1.renderTemplate)(this._recovery.prompt.user, tctx),
267
+ },
268
+ };
198
269
  }
199
270
  }
200
271
  exports.DefaultAgentPolicy = DefaultAgentPolicy;
@@ -1 +1 @@
1
- {"version":3,"file":"AgentPolicy.js","sourceRoot":"","sources":["../src/AgentPolicy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentPolicy.js","sourceRoot":"","sources":["../src/AgentPolicy.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import type { Operation } from 'effection';
1
+ import type { Operation, Subscription } from 'effection';
2
2
  import { type SessionContext } from '@lloyal-labs/sdk';
3
- import type { PressureThresholds, AgentPoolOptions, AgentPoolResult } from './types';
3
+ import type { PressureThresholds, AgentPoolOptions, AgentPoolResult, AgentEvent } from './types';
4
4
  /**
5
5
  * Immutable KV budget snapshot for one tick of the agent loop
6
6
  *
@@ -44,8 +44,20 @@ import type { PressureThresholds, AgentPoolOptions, AgentPoolResult } from './ty
44
44
  export declare class ContextPressure {
45
45
  /** Default softLimit: 1024 tokens reserved for downstream work */
46
46
  static readonly DEFAULT_SOFT_LIMIT = 1024;
47
- /** Default hardLimit: 128 tokens crash-prevention floor */
48
- static readonly DEFAULT_HARD_LIMIT = 128;
47
+ /**
48
+ * Default hardLimit: 512 tokens — matches llama.cpp's default `n_batch`.
49
+ * The pool validates at startup that `hardLimit >= nBatch`; the default
50
+ * is sized to satisfy the invariant for the default llama.cpp context.
51
+ * Recovery fits within the `hardLimit` reserve.
52
+ */
53
+ static readonly DEFAULT_HARD_LIMIT = 512;
54
+ /**
55
+ * Assumed `nBatch` when the native binding doesn't expose it.
56
+ * Pool startup validates `pressureThresholds.hardLimit >= this`.
57
+ * TODO: once `SessionContext.nBatch` is exposed (lloyal.node
58
+ * follow-up), read from ctx.nBatch instead.
59
+ */
60
+ static readonly ASSUMED_N_BATCH = 512;
49
61
  /** Total KV cache capacity (max positions). 0 when no context limit. */
50
62
  readonly nCtx: number;
51
63
  /** KV cells currently in use (monotonic within a pool run). */
@@ -125,5 +137,5 @@ export declare class ContextPressure {
125
137
  *
126
138
  * @category Agents
127
139
  */
128
- export declare function useAgentPool(opts: AgentPoolOptions): Operation<AgentPoolResult>;
140
+ export declare function useAgentPool(opts: AgentPoolOptions): Operation<Subscription<AgentEvent, AgentPoolResult>>;
129
141
  //# sourceMappingURL=agent-pool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-pool.d.ts","sourceRoot":"","sources":["../src/agent-pool.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAW,MAAM,WAAW,CAAC;AAEpD,OAAO,EAA+G,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAWpK,OAAO,KAAK,EACV,kBAAkB,EAElB,gBAAgB,EAChB,eAAe,EAGhB,MAAM,SAAS,CAAC;AAkBjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,qBAAa,eAAe;IAC1B,kEAAkE;IAClE,MAAM,CAAC,QAAQ,CAAC,kBAAkB,QAAQ;IAC1C,2DAA2D;IAC3D,MAAM,CAAC,QAAQ,CAAC,kBAAkB,OAAO;IAEzC,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,+DAA+D;IAC/D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,+DAA+D;IAC/D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,wEAAwE;IACxE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBAEf,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,kBAAkB;IAS1D;;;;OAIG;IACH,IAAI,QAAQ,IAAI,MAAM,CAA4C;IAElE,qEAAqE;IACrE,IAAI,QAAQ,IAAI,OAAO,CAA4C;IAEnE,iEAAiE;IACjE,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAEnC;;;;;OAKG;IACH,IAAI,gBAAgB,IAAI,MAAM,CAI7B;CACF;AAiND;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,SAAS,CAAC,eAAe,CAAC,CA0d/E"}
1
+ {"version":3,"file":"agent-pool.d.ts","sourceRoot":"","sources":["../src/agent-pool.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzD,OAAO,EAA+G,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAYpK,OAAO,KAAK,EACV,kBAAkB,EAElB,gBAAgB,EAChB,eAAe,EACf,UAAU,EAEX,MAAM,SAAS,CAAC;AAsBjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,qBAAa,eAAe;IAC1B,kEAAkE;IAClE,MAAM,CAAC,QAAQ,CAAC,kBAAkB,QAAQ;IAC1C;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,kBAAkB,OAAO;IACzC;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,eAAe,OAAO;IAEtC,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,+DAA+D;IAC/D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,+DAA+D;IAC/D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,wEAAwE;IACxE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBAEf,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,kBAAkB;IAS1D;;;;OAIG;IACH,IAAI,QAAQ,IAAI,MAAM,CAA4C;IAElE,qEAAqE;IACrE,IAAI,QAAQ,IAAI,OAAO,CAA4C;IAEnE,iEAAiE;IACjE,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAEnC;;;;;OAKG;IACH,IAAI,gBAAgB,IAAI,MAAM,CAI7B;CACF;AAoRD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,SAAS,CAAC,YAAY,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,CA2uBzG"}