@looprun-ai/core 0.1.2 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/guards.d.ts CHANGED
@@ -6,6 +6,15 @@
6
6
  * never read by the checker) — the prose+check pairing. Every predicate reads tool args / world
7
7
  * state / observed calls, NEVER the user text (the magnet firewall). The pure set is deterministic
8
8
  * by construction: no clock, no entropy, no network, no LLM call inside a check.
9
+ *
10
+ * DOMAIN-NEUTRALITY LAW (P8a): this package is truly language- and label-scheme-neutral. No generic
11
+ * guard carries a linguistic regex (claim verbs, confirm-language) or a label scheme by default —
12
+ * those STRINGS/REGEXES live in the business bundle's own lexicon and are passed back in as REQUIRED
13
+ * params (`labelProvenance(field, expect, scheme)`, `noFabricatedSuccess(tool, { claimRe, labelRe,
14
+ * verbClaimRe, reason })`, `pendingConfirmMustAsk({ askRe })`, `destructiveClaimRequiresSuccess(tools,
15
+ * { claimRe, askRe, offerRe, exemptRe? })`, `noFalseFailureClaim({ claimRe })`). The runtime holds
16
+ * only the MECHANISM and the generic English prose. A domain-neutrality lint scans this package for
17
+ * accented letters / language stems, so a re-introduced default fails CI.
9
18
  */
10
19
  import type { Guard, GuardCtx, Dim, ReplyMutator, AgentWorld } from './rules.js';
11
20
  export declare function custom(opts: {
@@ -26,10 +35,18 @@ export declare function argAbsent(field: string): Guard;
26
35
  export declare function labelExists(field: string): Guard;
27
36
  /** A PRESENT non-empty string arg must match `pattern`; absent/empty is left to argRequired. */
28
37
  export declare function argFormat(field: string, pattern: string, flags?: string, reason?: string): Guard;
29
- /** Upload-range labels: i900+ (the attachment-sequence convention of media worlds). */
30
- export declare function isUploadLabel(label: string): boolean;
31
- /** A label-typed arg must come from the expected provenance class (upload = i900+). */
32
- export declare function labelProvenance(field: string, expect: 'uploaded' | 'generated', reason?: string): Guard;
38
+ /**
39
+ * A label-typed arg must come from the expected provenance class. The label SCHEME is business-owned
40
+ * and injected never hardcoded here: `scheme.uploadRe` is the predicate that decides whether a label
41
+ * is an "uploaded" label; `scheme.labelNoun` (optional) names the scheme in the default deny/prose
42
+ * message; `scheme.reason` overrides that message outright. The runtime carries ONLY the mechanism and
43
+ * the generic English wording — the label regex + its noun live in the domain bundle's lexicon.
44
+ */
45
+ export declare function labelProvenance(field: string, expect: 'uploaded' | 'generated', scheme: {
46
+ uploadRe: RegExp;
47
+ labelNoun?: string;
48
+ reason?: string;
49
+ }): Guard;
33
50
  /** Generic state precondition: the call is allowed only while `ok(world)` holds. `prose` states the
34
51
  * CONDITION (always-rendered), separate from the deny `reason` (fires only when the condition is false). */
35
52
  export declare function precondition<W extends AgentWorld = AgentWorld>(ok: (world: W) => boolean, reason: string, prose?: string): Guard;
@@ -41,15 +58,42 @@ export declare function maxCallsPerConversation(tool: string, n: number, reason:
41
58
  export declare function canonArgs(v: unknown): string;
42
59
  /** Deny a call whose (tool, canonical args) already SUCCEEDED this turn. */
43
60
  export declare function noDuplicateCall(): Guard;
44
- /** A destructive tool's `confirmed:true` is legal ONLY when its probe (confirmed absent/false) ran and
45
- * took effect in an EARLIER turn never confirm your own same-turn probe, never skip it. */
46
- export declare function confirmFirst(argFlag?: string): Guard;
61
+ /**
62
+ * A destructive tool needs the user's go-ahead before it runs via one of two MECHANISMS (the
63
+ * `mechanism` option, default `'arg'`):
64
+ * - `'arg'`: the tool carries a confirm FLAG (`argFlag`, default `confirmed`). `confirmed:true` is legal
65
+ * ONLY when a `confirmed:false`/absent PROBE of the SAME tool ran OK in an EARLIER turn — never confirm
66
+ * your own same-turn probe, never skip it.
67
+ * - `'prior-ask'`: the tool has NO confirm flag (e.g. a zero-arg action). It is legal ONLY when an
68
+ * `askUser` succeeded in an EARLIER turn — the model must ASK, wait for the user's answer, and act only
69
+ * in a LATER turn. A same-turn `askUser` does NOT unlock it (that is `noActAfterAskSameTurn`'s edge —
70
+ * the two compose: prior-ask = cross-turn REQUIRE, noActAfterAskSameTurn = same-turn DENY).
71
+ * Reads observed / args only — never the user text (magnet-safe). Auto-installed by `AgentSpecBase` per
72
+ * destructive tool according to `cfg.confirmMechanism`.
73
+ */
74
+ export declare function confirmFirst(opts?: string | {
75
+ argFlag?: string;
76
+ mechanism?: 'arg' | 'prior-ask';
77
+ askRe?: RegExp;
78
+ }): Guard;
79
+ /** Deny `tools` when an `askUser` call already succeeded THIS turn — ask, wait, act only in a LATER
80
+ * turn; a model must never confirm-and-execute in the same turn as its own question (a multi-tool
81
+ * step can call askUser and a destructive tool back-to-back, which reads as "asked" to a human but
82
+ * never gave the user a chance to answer). Reads observed/turnIndex only; magnet-safe. */
83
+ export declare function noActAfterAskSameTurn(tools: string[]): Guard;
47
84
  /** At most ONE successful destructive action per turn. */
48
85
  export declare function destructiveThrottle(destructiveTools: string[]): Guard;
49
86
  export declare function resultInvariant<W extends AgentWorld = AgentWorld>(pred: (result: unknown, world: W) => boolean, reason: string): Guard;
50
- /** If `tool` did NOT succeed this turn, the reply must not claim/imply it did (existence-keyed). */
87
+ /**
88
+ * If `tool` did NOT succeed this turn, the reply must not claim/imply it did (existence-keyed). Both
89
+ * the label SCHEME (`labelRe` — which tokens are media labels) and the verb-first claim regex
90
+ * (`verbClaimRe` — the "generating an image" phrasing) are business-owned and injected; the runtime
91
+ * carries NO linguistic pattern of its own.
92
+ */
51
93
  export declare function noFabricatedSuccess(tool: string, opts: {
52
94
  claimRe: RegExp;
95
+ labelRe: RegExp;
96
+ verbClaimRe: RegExp;
53
97
  reason: string;
54
98
  }): Guard;
55
99
  /** The reply must contain at least one of `keywords` (case-insensitive). */
@@ -64,13 +108,46 @@ export declare function replyNoProductionClaim(claimRe: RegExp, reason: string):
64
108
  export declare function replyConfirmsLabels(labels: string[], reason: string): Guard;
65
109
  /** The final reply must be non-empty. */
66
110
  export declare function emptyReply(): Guard;
67
- /** A destructive PROBE returned requiresConfirmation this turn — the reply MUST relay the question. */
68
- export declare function pendingConfirmMustAsk(): Guard;
69
- /** The reply claims a deletion/removal, but no destructive tool SUCCEEDED this turn (with exemptions
70
- * for the confirm-probe two-step and honest failure/negation reports). */
71
- export declare function destructiveClaimRequiresSuccess(destructiveTools: string[], claimRe?: RegExp, exemptRe?: RegExp): Guard;
72
- /** If every tool call this turn SUCCEEDED (and at least one ran), the reply may not claim inability. */
73
- export declare function noFalseFailureClaim(): Guard;
111
+ /**
112
+ * A destructive PROBE returned requiresConfirmation this turn — the reply MUST relay the question, UNLESS
113
+ * that pending confirmation was already RESOLVED this turn: the SAME tool ran OK with the confirm flag set
114
+ * on the SAME record (its args minus the confirm flag) later in the turn — a legal probe→approved-execute
115
+ * tail of a two-step flow, where the reply correctly reports the DONE action instead of re-asking. Keys
116
+ * only the UNRESOLVED probes: if every requiresConfirmation was resolved, the guard is silent. `askRe` (the
117
+ * "does this reply seek confirmation?" regex — a business-owned, language-specific pattern) is injected;
118
+ * `confirmArg` (default `confirmed`) is the confirm flag a resolving call carries. Reads observed / reply
119
+ * only — the runtime holds no confirm-language of its own.
120
+ */
121
+ export declare function pendingConfirmMustAsk(opts: {
122
+ askRe: RegExp;
123
+ confirmArg?: string;
124
+ }): Guard;
125
+ /**
126
+ * The reply claims a deletion/removal, but no destructive tool SUCCEEDED this turn. ATTEMPT-KEYED (the
127
+ * P1-FP fix): the check may fire ONLY when a listed destructive tool was actually ATTEMPTED this turn (an
128
+ * observed call, executed OR vetoed). With NO attempt, a destructive verb in the reply is read-backed
129
+ * STATUS talk (relaying prior world state), never an action claim — so it is left alone, killing the false
130
+ * positive where a status readback tripped the claim regex. Once an attempt exists, the legal cases are
131
+ * exempted in order: the action truly took effect (a `confirmed:true` success this turn); a probe ran and
132
+ * the reply seeks confirmation (`askRe`); an honest failure/negation report (`exemptRe`). What remains is
133
+ * caught SENTENCE-SCOPED: a `claimRe` match fires only when its OWN sentence is neither a question nor an
134
+ * offer/conditional (`offerRe`), so an offer earlier in the reply can never mask a genuine declarative
135
+ * claim later. Every linguistic pattern — the destructive-claim regex, the confirm-seeking `askRe`, the
136
+ * offer/conditional `offerRe`, and the optional `exemptRe` — is injected by the domain bundle; the runtime
137
+ * supplies only the attempt-keying + sentence mechanisms and the English prose.
138
+ */
139
+ export declare function destructiveClaimRequiresSuccess(destructiveTools: string[], opts: {
140
+ claimRe: RegExp;
141
+ askRe: RegExp;
142
+ offerRe: RegExp;
143
+ exemptRe?: RegExp;
144
+ }): Guard;
145
+ /** If every tool call this turn SUCCEEDED (and at least one ran), the reply may not claim inability.
146
+ * `claimRe` (the false-failure claim regex — a business-owned, language-specific pattern) is injected;
147
+ * the runtime holds no failure-language of its own. */
148
+ export declare function noFalseFailureClaim(opts: {
149
+ claimRe: RegExp;
150
+ }): Guard;
74
151
  /** Deterministic egress jargon scrub (word-boundary, case-insensitive) before the reply leaves. */
75
152
  export declare function jargonScrub(map: Record<string, string>): ReplyMutator;
76
153
  //# sourceMappingURL=guards.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../src/guards.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"guards.d.ts","sourceRoot":"","sources":["../src/guards.ts"],"names":[],"mappings":"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"}
package/dist/guards.js CHANGED
@@ -95,15 +95,18 @@ export function argFormat(field, pattern, flags, reason) {
95
95
  prose: () => `"${field}" must match ${pattern}`,
96
96
  };
97
97
  }
98
- /** Upload-range labels: i900+ (the attachment-sequence convention of media worlds). */
99
- export function isUploadLabel(label) {
100
- return /^i(9\d\d|\d{4,})$/i.test(label);
101
- }
102
- /** A label-typed arg must come from the expected provenance class (upload = i900+). */
103
- export function labelProvenance(field, expect, reason) {
104
- const msg = reason ?? (expect === 'uploaded'
105
- ? `"${field}" must be an UPLOADED image label (i900+) — for generated images use the matching tool instead.`
106
- : `"${field}" must be a GENERATED image label — uploads (i900+) are not valid here.`);
98
+ /**
99
+ * A label-typed arg must come from the expected provenance class. The label SCHEME is business-owned
100
+ * and injected — never hardcoded here: `scheme.uploadRe` is the predicate that decides whether a label
101
+ * is an "uploaded" label; `scheme.labelNoun` (optional) names the scheme in the default deny/prose
102
+ * message; `scheme.reason` overrides that message outright. The runtime carries ONLY the mechanism and
103
+ * the generic English wording — the label regex + its noun live in the domain bundle's lexicon.
104
+ */
105
+ export function labelProvenance(field, expect, scheme) {
106
+ const noun = scheme.labelNoun;
107
+ const msg = scheme.reason ?? (expect === 'uploaded'
108
+ ? `"${field}" must be an UPLOADED image label${noun ? ` (${noun})` : ''} — for generated images use the matching tool instead.`
109
+ : `"${field}" must be a GENERATED image label — uploads${noun ? ` (${noun})` : ''} are not valid here.`);
107
110
  return {
108
111
  kind: 'labelProvenance',
109
112
  dim: 'input',
@@ -113,7 +116,7 @@ export function labelProvenance(field, expect, reason) {
113
116
  : (v && typeof v === 'object' && 'label' in v) ? String(v.label ?? '').trim() : '';
114
117
  if (!label)
115
118
  return null;
116
- const isUp = isUploadLabel(label);
119
+ const isUp = scheme.uploadRe.test(label);
117
120
  return (expect === 'uploaded' ? isUp : !isUp) ? null : msg;
118
121
  },
119
122
  prose: () => msg,
@@ -182,23 +185,78 @@ export function noDuplicateCall() {
182
185
  prose: () => 'never repeat a tool call that already succeeded with the same arguments',
183
186
  };
184
187
  }
185
- /** A destructive tool's `confirmed:true` is legal ONLY when its probe (confirmed absent/false) ran and
186
- * took effect in an EARLIER turn never confirm your own same-turn probe, never skip it. */
187
- export function confirmFirst(argFlag = 'confirmed') {
188
+ /**
189
+ * A destructive tool needs the user's go-ahead before it runs via one of two MECHANISMS (the
190
+ * `mechanism` option, default `'arg'`):
191
+ * - `'arg'`: the tool carries a confirm FLAG (`argFlag`, default `confirmed`). `confirmed:true` is legal
192
+ * ONLY when a `confirmed:false`/absent PROBE of the SAME tool ran OK in an EARLIER turn — never confirm
193
+ * your own same-turn probe, never skip it.
194
+ * - `'prior-ask'`: the tool has NO confirm flag (e.g. a zero-arg action). It is legal ONLY when an
195
+ * `askUser` succeeded in an EARLIER turn — the model must ASK, wait for the user's answer, and act only
196
+ * in a LATER turn. A same-turn `askUser` does NOT unlock it (that is `noActAfterAskSameTurn`'s edge —
197
+ * the two compose: prior-ask = cross-turn REQUIRE, noActAfterAskSameTurn = same-turn DENY).
198
+ * Reads observed / args only — never the user text (magnet-safe). Auto-installed by `AgentSpecBase` per
199
+ * destructive tool according to `cfg.confirmMechanism`.
200
+ */
201
+ export function confirmFirst(opts) {
202
+ const o = typeof opts === 'string' ? { argFlag: opts } : (opts ?? {});
203
+ const argFlag = o.argFlag ?? 'confirmed';
204
+ const mechanism = o.mechanism ?? 'arg';
188
205
  return {
189
206
  kind: 'confirmFirst',
190
207
  dim: 'run',
191
208
  check(ctx) {
192
209
  if (!ctx.tool)
193
210
  return null;
211
+ if (mechanism === 'prior-ask') {
212
+ // The probe is EITHER an earlier-turn askUser OR an earlier-turn ATTEMPT of this same tool
213
+ // (executed or vetoed — vetoed attempts land in observed with ok:false). The attempt disjunct is
214
+ // load-bearing: models often relay the confirmation question via replyToUser instead of askUser,
215
+ // and the ask-only form dead-locks the legitimate later-turn action. A prior attempt proves the
216
+ // confirm flow started and the user has since answered.
217
+ // Third disjunct: a prior-turn replyToUser whose TEXT matches the injected confirm-question
218
+ // regex (the bundle lexicon). Models often ask politely via replyToUser without touching the
219
+ // tool at all; ask-or-attempt alone dead-locks the legitimate later-turn action. The text read
220
+ // is the MODEL'S OWN prior output — firewall-clean.
221
+ const askRe = o.askRe;
222
+ const probedEarlier = ctx.observed.some((obs) => obs.turnIndex < ctx.turnIndex &&
223
+ (obs.name === ctx.tool ||
224
+ (obs.name === 'askUser' && obs.ok) ||
225
+ (askRe != null && obs.name === 'replyToUser' && obs.ok && askRe.test(String(obs.args?.text ?? '')))));
226
+ return probedEarlier
227
+ ? null
228
+ : `Do NOT run ${ctx.tool} yet — first ask the user to confirm and STOP; run it only in a LATER turn after they agree.`;
229
+ }
194
230
  if (ctx.args[argFlag] !== true)
195
231
  return null;
196
- const probe = ctx.observed.find((o) => o.name === ctx.tool && o.ok && o.args?.[argFlag] !== true && o.turnIndex < ctx.turnIndex);
232
+ const probe = ctx.observed.find((obs) => obs.name === ctx.tool && obs.ok && obs.args?.[argFlag] !== true && obs.turnIndex < ctx.turnIndex);
197
233
  return probe
198
234
  ? null
199
235
  : `Do NOT pass ${argFlag}:true — first call ${ctx.tool} WITHOUT it, relay the confirmation question to the user, and only confirm in a LATER turn after the user agrees.`;
200
236
  },
201
- prose: () => `destructive actions need ${argFlag}:false first + the USER's explicit confirmation in a later turn`,
237
+ prose: () => mechanism === 'prior-ask'
238
+ ? 'this destructive action requires asking the user to confirm first and running it only in a LATER turn after they agree — never on the opening turn or in the same turn as the question'
239
+ : `destructive actions need ${argFlag}:false first + the USER's explicit confirmation in a later turn`,
240
+ };
241
+ }
242
+ /** Deny `tools` when an `askUser` call already succeeded THIS turn — ask, wait, act only in a LATER
243
+ * turn; a model must never confirm-and-execute in the same turn as its own question (a multi-tool
244
+ * step can call askUser and a destructive tool back-to-back, which reads as "asked" to a human but
245
+ * never gave the user a chance to answer). Reads observed/turnIndex only; magnet-safe. */
246
+ export function noActAfterAskSameTurn(tools) {
247
+ const set = new Set(tools);
248
+ return {
249
+ kind: 'noActAfterAskSameTurn',
250
+ dim: 'run',
251
+ check(ctx) {
252
+ if (!ctx.tool || !set.has(ctx.tool))
253
+ return null;
254
+ const askedThisTurn = ctx.observed.some((o) => o.name === 'askUser' && o.ok && o.turnIndex === ctx.turnIndex);
255
+ return askedThisTurn
256
+ ? 'You already asked the user a question this turn — wait for their answer; do not execute this action in the same turn as the question.'
257
+ : null;
258
+ },
259
+ prose: () => `never call ${tools.join(', ')} in the same turn as an askUser question — wait for the user's answer and act only in a LATER turn`,
202
260
  };
203
261
  }
204
262
  /** At most ONE successful destructive action per turn. */
@@ -232,8 +290,12 @@ export function resultInvariant(pred, reason) {
232
290
  };
233
291
  }
234
292
  // ── BEHAVIOR (reply-checks) ──────────────────────────────────────────────────
235
- const VERB_FIRST_CLAIM_RE = /(gerando|criando|preparando|gerei|criei|generating|creating)\s+(\w+\s+){0,2}(imagem|image)/i;
236
- /** If `tool` did NOT succeed this turn, the reply must not claim/imply it did (existence-keyed). */
293
+ /**
294
+ * If `tool` did NOT succeed this turn, the reply must not claim/imply it did (existence-keyed). Both
295
+ * the label SCHEME (`labelRe` — which tokens are media labels) and the verb-first claim regex
296
+ * (`verbClaimRe` — the "generating an image" phrasing) are business-owned and injected; the runtime
297
+ * carries NO linguistic pattern of its own.
298
+ */
237
299
  export function noFabricatedSuccess(tool, opts) {
238
300
  return {
239
301
  kind: 'noFabricatedSuccess',
@@ -242,12 +304,12 @@ export function noFabricatedSuccess(tool, opts) {
242
304
  if (ranThisTurn(ctx, tool))
243
305
  return null;
244
306
  const reply = ctx.reply ?? '';
245
- const labels = reply.match(/\bi\d{3,}\b/gi) ?? [];
307
+ const labels = reply.match(opts.labelRe) ?? [];
246
308
  const produced = ctx.producedThisTurn ?? [];
247
309
  const invented = labels.filter((l) => !produced.includes(l) && !ctx.world.hasMediaLabel(l));
248
310
  if (invented.length)
249
311
  return opts.reason;
250
- const claims = opts.claimRe.test(reply) || VERB_FIRST_CLAIM_RE.test(reply);
312
+ const claims = opts.claimRe.test(reply) || opts.verbClaimRe.test(reply);
251
313
  if (claims && labels.length === 0)
252
314
  return opts.reason;
253
315
  return null;
@@ -330,52 +392,97 @@ export function emptyReply() {
330
392
  prose: () => 'never end a turn with an empty reply',
331
393
  };
332
394
  }
333
- // A reply "seeks confirmation" if it asks a question OR carries confirm-language (EN + pt/es).
334
- const CONFIRM_ASK_RE = /\?|\b(confirm|are you sure|do you want|would you like|shall i|proceed\??|go ahead|confirma|confirmar|tem certeza|deseja|quer(?:es)?|gostaria|posso prosseguir|autoriz)/i;
335
- /** A destructive PROBE returned requiresConfirmation this turn the reply MUST relay the question. */
336
- export function pendingConfirmMustAsk() {
395
+ /**
396
+ * A destructive PROBE returned requiresConfirmation this turn the reply MUST relay the question, UNLESS
397
+ * that pending confirmation was already RESOLVED this turn: the SAME tool ran OK with the confirm flag set
398
+ * on the SAME record (its args minus the confirm flag) later in the turn — a legal probe→approved-execute
399
+ * tail of a two-step flow, where the reply correctly reports the DONE action instead of re-asking. Keys
400
+ * only the UNRESOLVED probes: if every requiresConfirmation was resolved, the guard is silent. `askRe` (the
401
+ * "does this reply seek confirmation?" regex — a business-owned, language-specific pattern) is injected;
402
+ * `confirmArg` (default `confirmed`) is the confirm flag a resolving call carries. Reads observed / reply
403
+ * only — the runtime holds no confirm-language of its own.
404
+ */
405
+ export function pendingConfirmMustAsk(opts) {
406
+ const confirmArg = opts.confirmArg ?? 'confirmed';
407
+ // The "record" a call acts on = its canonical args with the confirm flag stripped (a probe and its
408
+ // approved re-run differ ONLY in that flag, so matching the rest pins them to the same record).
409
+ const record = (args) => {
410
+ const rest = {};
411
+ for (const [k, v] of Object.entries(args ?? {}))
412
+ if (k !== confirmArg)
413
+ rest[k] = v;
414
+ return canonArgs(rest);
415
+ };
337
416
  return {
338
417
  kind: 'pendingConfirmMustAsk',
339
418
  dim: 'behavior',
340
419
  check(ctx) {
341
- const pending = ctx.observed.some((o) => o.turnIndex === ctx.turnIndex && o.resultFlags?.requiresConfirmation);
342
- if (!pending)
420
+ const thisTurn = ctx.observed.filter((o) => o.turnIndex === ctx.turnIndex);
421
+ const unresolved = thisTurn
422
+ .filter((o) => o.resultFlags?.requiresConfirmation)
423
+ .filter((probe) => !thisTurn.some((o) => o.name === probe.name && o.ok && o.args?.[confirmArg] === true && record(o.args) === record(probe.args)));
424
+ if (!unresolved.length)
343
425
  return null;
344
- return CONFIRM_ASK_RE.test(ctx.reply ?? '')
426
+ return opts.askRe.test(ctx.reply ?? '')
345
427
  ? null
346
428
  : 'A confirmation is PENDING — relay the confirmation question to the user (your reply must ask it), and do not summarize the action as done.';
347
429
  },
348
430
  prose: () => 'when a tool asks for confirmation, relay that question to the user before anything else',
349
431
  };
350
432
  }
351
- /** The reply claims a deletion/removal, but no destructive tool SUCCEEDED this turn (with exemptions
352
- * for the confirm-probe two-step and honest failure/negation reports). */
353
- export function destructiveClaimRequiresSuccess(destructiveTools, claimRe, exemptRe) {
354
- const re = claimRe ?? /(exclu[íi]d?[oa]?|apagad[oa]|apaguei|removid[oa]|removi|deletad[oa]|deleted|removed)/i;
433
+ /** Split a reply into sentences on ./!/? boundaries pure, LANGUAGE-NEUTRAL (punctuation only; no
434
+ * stateful regex split() takes no g/y flag, so there is no lastIndex to leak between calls). */
435
+ function splitSentences(text) {
436
+ return text.split(/(?<=[.!?])\s+/).map((s) => s.trim()).filter(Boolean);
437
+ }
438
+ /**
439
+ * The reply claims a deletion/removal, but no destructive tool SUCCEEDED this turn. ATTEMPT-KEYED (the
440
+ * P1-FP fix): the check may fire ONLY when a listed destructive tool was actually ATTEMPTED this turn (an
441
+ * observed call, executed OR vetoed). With NO attempt, a destructive verb in the reply is read-backed
442
+ * STATUS talk (relaying prior world state), never an action claim — so it is left alone, killing the false
443
+ * positive where a status readback tripped the claim regex. Once an attempt exists, the legal cases are
444
+ * exempted in order: the action truly took effect (a `confirmed:true` success this turn); a probe ran and
445
+ * the reply seeks confirmation (`askRe`); an honest failure/negation report (`exemptRe`). What remains is
446
+ * caught SENTENCE-SCOPED: a `claimRe` match fires only when its OWN sentence is neither a question nor an
447
+ * offer/conditional (`offerRe`), so an offer earlier in the reply can never mask a genuine declarative
448
+ * claim later. Every linguistic pattern — the destructive-claim regex, the confirm-seeking `askRe`, the
449
+ * offer/conditional `offerRe`, and the optional `exemptRe` — is injected by the domain bundle; the runtime
450
+ * supplies only the attempt-keying + sentence mechanisms and the English prose.
451
+ */
452
+ export function destructiveClaimRequiresSuccess(destructiveTools, opts) {
453
+ const { claimRe: re, askRe, offerRe, exemptRe } = opts;
355
454
  const set = new Set(destructiveTools);
356
455
  return {
357
456
  kind: 'destructiveClaimRequiresSuccess',
358
457
  dim: 'behavior',
359
458
  check(ctx) {
360
- const destructiveOk = ctx.observed.some((o) => o.turnIndex === ctx.turnIndex && o.ok && set.has(o.name) && o.args?.confirmed === true);
361
- if (destructiveOk)
459
+ // ATTEMPT-KEYING: no listed destructive tool touched this turn any destructive verb is read-backed
460
+ // status, not an action claim — do not fire.
461
+ const attempts = ctx.observed.filter((o) => o.turnIndex === ctx.turnIndex && set.has(o.name));
462
+ if (!attempts.length)
463
+ return null;
464
+ const tookEffect = attempts.some((o) => o.ok && o.args?.confirmed === true);
465
+ if (tookEffect)
362
466
  return null;
363
467
  const reply = ctx.reply ?? '';
364
- const probedThisTurn = ctx.observed.some((o) => o.turnIndex === ctx.turnIndex && o.ok && set.has(o.name) && o.args?.confirmed !== true);
365
- if (probedThisTurn && CONFIRM_ASK_RE.test(reply))
468
+ const probedThisTurn = attempts.some((o) => o.ok && o.args?.confirmed !== true);
469
+ if (probedThisTurn && askRe.test(reply))
366
470
  return null;
367
471
  if (exemptRe && exemptRe.test(reply))
368
472
  return null;
369
- return re.test(reply)
473
+ const declarativeClaim = splitSentences(reply).some((sentence) => re.test(sentence) && !sentence.endsWith('?') && !offerRe.test(sentence));
474
+ return declarativeClaim
370
475
  ? 'Nothing destructive succeeded this turn — do not claim a deletion/removal happened. Report the actual state.'
371
476
  : null;
372
477
  },
373
478
  prose: () => 'never claim something was deleted/removed unless the destructive tool actually succeeded this turn',
374
479
  };
375
480
  }
376
- /** If every tool call this turn SUCCEEDED (and at least one ran), the reply may not claim inability. */
377
- export function noFalseFailureClaim() {
378
- const claimRe = /(n[ãa]o (consigo|foi poss[íi]vel|posso)|infelizmente n[ãa]o|cannot|can'?t|unable to|falh(ou|a)|failed)[^.!?\n]{0,40}(atualiz|update|alter|salv|sav|configur|aplic|apply|cri(ar|ei)|creat|gerar|generat|aprend|learn)/i;
481
+ /** If every tool call this turn SUCCEEDED (and at least one ran), the reply may not claim inability.
482
+ * `claimRe` (the false-failure claim regex — a business-owned, language-specific pattern) is injected;
483
+ * the runtime holds no failure-language of its own. */
484
+ export function noFalseFailureClaim(opts) {
485
+ const claimRe = opts.claimRe;
379
486
  return {
380
487
  kind: 'noFalseFailureClaim',
381
488
  dim: 'behavior',
@@ -1 +1 @@
1
- {"version":3,"file":"guards.js","sourceRoot":"","sources":["../src/guards.ts"],"names":[],"mappings":"AAWA,gFAAgF;AAChF,MAAM,UAAU,MAAM,CAAC,IAKtB;IACC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;AAClF,CAAC;AAED,gFAAgF;AAChF,MAAM,EAAE,GAAG,CAAC,CAAU,EAAU,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AACjE,MAAM,GAAG,GAAG,CAAC,QAAwB,EAAE,IAAY,EAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AAC/G,MAAM,WAAW,GAAG,CAAC,GAAa,EAAE,IAAY,EAAW,EAAE,CAC3D,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC;AAErF,SAAS,YAAY,CAAC,IAA6B,EAAE,KAAa;IAChE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IACtB,IAAI,CAAC,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAC3B,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;IACnD,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,IAAK,CAAY,EAAE,CAAC;QACtD,MAAM,CAAC,GAAI,CAAyB,CAAC,KAAK,CAAC;QAC3C,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;IACrD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,gFAAgF;AAEhF,qFAAqF;AACrF,MAAM,UAAU,cAAc,CAAC,IAAc;IAC3C,OAAO;QACL,IAAI,EAAE,gBAAgB;QACtB,GAAG,EAAE,SAAS;QACd,KAAK,CAAC,GAAG;YACP,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;YAC1D,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,wCAAwC,CAAC,CAAC,CAAC,IAAI,CAAC;QACtG,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU;KACtD,CAAC;AACJ,CAAC;AAED,oCAAoC;AACpC,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;AAC9F,CAAC;AAED,gFAAgF;AAEhF,iDAAiD;AACjD,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,GAAG,EAAE,OAAO;QACZ,KAAK,CAAC,GAAG;YACP,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,MAAM,KAAK,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACtE,OAAO,KAAK,CAAC,CAAC,CAAC,8BAA8B,KAAK,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5E,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,gBAAgB,KAAK,GAAG;KACtC,CAAC;AACJ,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,GAAG,EAAE,OAAO;QACZ,KAAK,CAAC,GAAG;YACP,OAAO,KAAK,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,gBAAgB,KAAK,6BAA6B,CAAC,CAAC,CAAC,IAAI,CAAC;QAClH,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,eAAe,KAAK,wCAAwC;KAC1E,CAAC;AACJ,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,GAAG,EAAE,OAAO;QACZ,KAAK,CAAC,GAAG;YACP,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;YACpB,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC5C,IAAI,KAAK,IAAI,IAAI;gBAAE,OAAO,2BAA2B,KAAK,IAAI,CAAC;YAC/D,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5B,MAAM,KAAK,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC9B,OAAO,UAAU,KAAK,8EAA8E,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,0BAA0B,CAAC;YAC7J,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,KAAK,8DAA8D;KACrF,CAAC;AACJ,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,SAAS,CAAC,KAAa,EAAE,OAAe,EAAE,KAAc,EAAE,MAAe;IACvF,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,MAAM,IAAI,aAAa,KAAK,kCAAkC,OAAO,wCAAwC,CAAC;IAC1H,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,GAAG,EAAE,OAAO;QACZ,KAAK,CAAC,GAAG;YACP,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE;gBAAE,OAAO,IAAI,CAAC;YACnD,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;QACjC,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,KAAK,gBAAgB,OAAO,EAAE;KAChD,CAAC;AACJ,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1C,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,MAAgC,EAAE,MAAe;IAC9F,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,KAAK,UAAU;QAC1C,CAAC,CAAC,IAAI,KAAK,iGAAiG;QAC5G,CAAC,CAAC,IAAI,KAAK,yEAAyE,CAAC,CAAC;IACxF,OAAO;QACL,IAAI,EAAE,iBAAiB;QACvB,GAAG,EAAE,OAAO;QACZ,KAAK,CAAC,GAAG;YACP,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;gBAC5C,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,IAAK,CAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAE,CAAyB,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1H,IAAI,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC;YACxB,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;YAClC,OAAO,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;QAC7D,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG;KACjB,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF;6GAC6G;AAC7G,MAAM,UAAU,YAAY,CAAoC,EAAyB,EAAE,MAAc,EAAE,KAAc;IACvH,OAAO;QACL,IAAI,EAAE,cAAc;QACpB,GAAG,EAAE,KAAK;QACV,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;QACpD,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,MAAM;KAC7B,CAAC;AACJ,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,CAAS,EAAE,MAAc;IACrE,OAAO;QACL,IAAI,EAAE,iBAAiB;QACvB,GAAG,EAAE,KAAK;QACV,KAAK,CAAC,GAAG;YACP,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;YAC1G,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QACpC,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM;KACpB,CAAC;AACJ,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,uBAAuB,CAAC,IAAY,EAAE,CAAS,EAAE,MAAc;IAC7E,OAAO;QACL,IAAI,EAAE,yBAAyB;QAC/B,GAAG,EAAE,KAAK;QACV,KAAK,CAAC,GAAG;YACP,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC;YACzE,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QACpC,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM;KACpB,CAAC;AACJ,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,SAAS,CAAC,CAAU;IAClC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAC/D,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,CAA4B,CAAC;QACzC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;QACzE,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IACvF,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;AACrC,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,eAAe;IAC7B,OAAO;QACL,IAAI,EAAE,iBAAiB;QACvB,GAAG,EAAE,KAAK;QACV,KAAK,CAAC,GAAG;YACP,IAAI,CAAC,GAAG,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAC;YAC3B,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAC7B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CACjG,CAAC;YACF,OAAO,KAAK;gBACV,CAAC,CAAC,sBAAsB,GAAG,CAAC,IAAI,uIAAuI;gBACvK,CAAC,CAAC,IAAI,CAAC;QACX,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,yEAAyE;KACvF,CAAC;AACJ,CAAC;AAED;8FAC8F;AAC9F,MAAM,UAAU,YAAY,CAAC,OAAO,GAAG,WAAW;IAChD,OAAO;QACL,IAAI,EAAE,cAAc;QACpB,GAAG,EAAE,KAAK;QACV,KAAK,CAAC,GAAG;YACP,IAAI,CAAC,GAAG,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAC;YAC3B,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC;YAC5C,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAC7B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAChG,CAAC;YACF,OAAO,KAAK;gBACV,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,eAAe,OAAO,sBAAsB,GAAG,CAAC,IAAI,mHAAmH,CAAC;QAC9K,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,4BAA4B,OAAO,iEAAiE;KAClH,CAAC;AACJ,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,mBAAmB,CAAC,gBAA0B;IAC5D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACtC,OAAO;QACL,IAAI,EAAE,qBAAqB;QAC3B,GAAG,EAAE,KAAK;QACV,KAAK,CAAC,GAAG;YACP,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;YACjD,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACjG,OAAO,KAAK;gBACV,CAAC,CAAC,yBAAyB,KAAK,CAAC,IAAI,2FAA2F;gBAChI,CAAC,CAAC,IAAI,CAAC;QACX,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,yCAAyC;KACvD,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF,MAAM,UAAU,eAAe,CAAoC,IAA4C,EAAE,MAAc;IAC7H,OAAO;QACL,IAAI,EAAE,iBAAiB;QACvB,GAAG,EAAE,QAAQ;QACb,KAAK,CAAC,GAAG;YACP,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC;YAC1C,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;QAC1D,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM;KACpB,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF,MAAM,mBAAmB,GAAG,6FAA6F,CAAC;AAE1H,oGAAoG;AACpG,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,IAAyC;IACzF,OAAO;QACL,IAAI,EAAE,qBAAqB;QAC3B,GAAG,EAAE,UAAU;QACf,KAAK,CAAC,GAAG;YACP,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;YACxC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;YAClD,MAAM,QAAQ,GAAG,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5F,IAAI,QAAQ,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC,MAAM,CAAC;YACxC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3E,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC,MAAM,CAAC;YACtD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM;KACzB,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,gBAAgB,CAAC,QAAkB,EAAE,MAAc;IACjE,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,GAAG,EAAE,UAAU;QACf,KAAK,CAAC,GAAG;YACP,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACxB,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;QACjE,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM;KACpB,CAAC;AACJ,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,mBAAmB,CAAC,IAAc,EAAE,CAAS,EAAE,MAAc;IAC3E,OAAO;QACL,IAAI,EAAE,qBAAqB;QAC3B,GAAG,EAAE,UAAU;QACf,KAAK,CAAC,GAAG;YACP,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC9D,OAAO,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QACtC,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM;KACpB,CAAC;AACJ,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,OAAO;QACL,IAAI,EAAE,qBAAqB;QAC3B,GAAG,EAAE,UAAU;QACf,KAAK,CAAC,GAAG;YACP,MAAM,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YACpE,OAAO,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;QAC7C,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM;KACpB,CAAC;AACJ,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,sBAAsB,CAAC,OAAe,EAAE,MAAc;IACpE,OAAO;QACL,IAAI,EAAE,wBAAwB;QAC9B,GAAG,EAAE,UAAU;QACf,KAAK,CAAC,GAAG;YACP,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QACvD,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM;KACpB,CAAC;AACJ,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,mBAAmB,CAAC,MAAgB,EAAE,MAAc;IAClE,OAAO;QACL,IAAI,EAAE,qBAAqB;QAC3B,GAAG,EAAE,UAAU;QACf,KAAK,CAAC,GAAG;YACP,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;gBAAE,OAAO,MAAM,CAAC;YACnC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;QAC5D,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM;KACpB,CAAC;AACJ,CAAC;AAED,yCAAyC;AACzC,MAAM,UAAU,UAAU;IACxB,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,GAAG,EAAE,UAAU;QACf,KAAK,CAAC,GAAG;YACP,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;gBACpC,CAAC,CAAC,+FAA+F;gBACjG,CAAC,CAAC,IAAI,CAAC;QACX,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,sCAAsC;KACpD,CAAC;AACJ,CAAC;AAED,+FAA+F;AAC/F,MAAM,cAAc,GAClB,yKAAyK,CAAC;AAE5K,uGAAuG;AACvG,MAAM,UAAU,qBAAqB;IACnC,OAAO;QACL,IAAI,EAAE,uBAAuB;QAC7B,GAAG,EAAE,UAAU;QACf,KAAK,CAAC,GAAG;YACP,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;YAC/G,IAAI,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAC;YAC1B,OAAO,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;gBACzC,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,4IAA4I,CAAC;QACnJ,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,yFAAyF;KACvG,CAAC;AACJ,CAAC;AAED;2EAC2E;AAC3E,MAAM,UAAU,+BAA+B,CAAC,gBAA0B,EAAE,OAAgB,EAAE,QAAiB;IAC7G,MAAM,EAAE,GAAG,OAAO,IAAI,uFAAuF,CAAC;IAC9G,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACtC,OAAO;QACL,IAAI,EAAE,iCAAiC;QACvC,GAAG,EAAE,UAAU;QACf,KAAK,CAAC,GAAG;YACP,MAAM,aAAa,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC,CAAC;YACvI,IAAI,aAAa;gBAAE,OAAO,IAAI,CAAC;YAC/B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;YAC9B,MAAM,cAAc,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC,CAAC;YACxI,IAAI,cAAc,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC9D,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAClD,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;gBACnB,CAAC,CAAC,8GAA8G;gBAChH,CAAC,CAAC,IAAI,CAAC;QACX,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,oGAAoG;KAClH,CAAC;AACJ,CAAC;AAED,wGAAwG;AACxG,MAAM,UAAU,mBAAmB;IACjC,MAAM,OAAO,GAAG,uNAAuN,CAAC;IACxO,OAAO;QACL,IAAI,EAAE,qBAAqB;QAC3B,GAAG,EAAE,UAAU;QACf,KAAK,CAAC,GAAG;YACP,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC;YAC3E,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAAE,OAAO,IAAI,CAAC;YACjE,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;gBAClC,CAAC,CAAC,4IAA4I;gBAC9I,CAAC,CAAC,IAAI,CAAC;QACX,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,oHAAoH;KAClI,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF,mGAAmG;AACnG,MAAM,UAAU,WAAW,CAAC,GAA2B;IACrD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,CAAC,MAAM,IAAI,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACzG,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,KAAK,CAAC,KAAK;YACT,IAAI,GAAG,GAAG,KAAK,CAAC;YAChB,KAAK,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,OAAO;gBAAE,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5D,OAAO,GAAG,CAAC;QACb,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"guards.js","sourceRoot":"","sources":["../src/guards.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -7,17 +7,18 @@
7
7
  */
8
8
  export * from './rules.js';
9
9
  export * from './guards.js';
10
- export { AgentSpecMinimal, AgentSpecBase, AgentSpecFull, resolveBindings, resolveGuards, resolveMutators, } from './spec.js';
11
- export type { AgentSpec, AgentSpecConfig, AgentControls, AgentModelRef, GuardBinding, MutatorBinding, StateDirective, TerminalPolicy, ToolSchemaLike, Hook, ToolTarget, Layer, } from './spec.js';
10
+ export { AgentSpecBase, resolveBindings, resolveGuards, resolveMutators, } from './spec.js';
11
+ export type { AgentSpec, AgentSpecConfig, AgentControls, AgentModelRef, ChainSpec, GuardBinding, MutatorBinding, StateDirective, TerminalPolicy, ToolSchemaLike, Hook, ToolTarget, Layer, } from './spec.js';
12
12
  export { renderScopedSpecTrunk, chainOrder } from './trunk.js';
13
13
  export type { TrunkTheme } from './trunk.js';
14
14
  export { validateSpec, MAX_TOOL_SURFACE } from './validate.js';
15
15
  export type { SpecWarning } from './validate.js';
16
- export { geminiThinkingOff, pinnedDecoding, normalizeModelParams } from './model-params.js';
16
+ export { geminiThinkingOff, pinnedDecoding, normalizeModelParams, resolveModelSettings } from './model-params.js';
17
+ export type { SamplingSettings } from './model-params.js';
17
18
  export type { ToolDef, TokenUsage, TurnInput, TurnRecord, RunResult, RuntimeTurnInput, RuntimeTurnRecord } from './runtime/types.js';
18
19
  export { createLedger, beginTurn, resultOk, recordVeto, recordToolResult, recordTerminal, vetoStormHit, VETO_STORM_LIMIT } from './runtime/ledger.js';
19
- export type { TurnLedger } from './runtime/ledger.js';
20
+ export type { TurnLedger, PostToolViolation } from './runtime/ledger.js';
20
21
  export { TERMINAL_TOOLS, isTerminal, terminalProtocol, TERMINAL_PROTOCOL, TERMINAL_PROTOCOL_REPLY_ONLY, forcedTerminalPrompt, terminalToolDefs, } from './runtime/terminal.js';
21
- export { evaluatePreTool, evaluateOnInput, applyMutators, checkReply, redriveMessage, defaultExhaustionReply, finalizeReply, } from './runtime/turn.js';
22
- export type { PreToolVerdict, ReplyViolation, FinalizedReply } from './runtime/turn.js';
22
+ export { evaluatePreTool, evaluateOnInput, applyMutators, checkReply, enforcePostTool, redriveMessage, defaultExhaustionReply, finalizeReply, shouldFireChain, runChainCompletionPass, } from './runtime/turn.js';
23
+ export type { PreToolVerdict, ReplyViolation, FinalizedReply, PostToolEnforcement, ChainPassCtx, ChainPassResult, } from './runtime/turn.js';
23
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,eAAe,EACf,aAAa,EACb,eAAe,GAChB,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,SAAS,EACT,eAAe,EACf,aAAa,EACb,aAAa,EACb,YAAY,EACZ,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,IAAI,EACJ,UAAU,EACV,KAAK,GACN,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC/D,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC/D,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAG5F,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACrI,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACtJ,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EACL,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,4BAA4B,EAC5B,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,eAAe,EACf,eAAe,EACf,aAAa,EACb,UAAU,EACV,cAAc,EACd,sBAAsB,EACtB,aAAa,GACd,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,OAAO,EACL,aAAa,EACb,eAAe,EACf,aAAa,EACb,eAAe,GAChB,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,SAAS,EACT,eAAe,EACf,aAAa,EACb,aAAa,EACb,SAAS,EACT,YAAY,EACZ,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,IAAI,EACJ,UAAU,EACV,KAAK,GACN,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC/D,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC/D,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAClH,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG1D,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACrI,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACtJ,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EACL,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,4BAA4B,EAC5B,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,eAAe,EACf,eAAe,EACf,aAAa,EACb,UAAU,EACV,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,aAAa,EACb,eAAe,EACf,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,cAAc,EACd,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,YAAY,EACZ,eAAe,GAChB,MAAM,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -7,11 +7,11 @@
7
7
  */
8
8
  export * from './rules.js';
9
9
  export * from './guards.js';
10
- export { AgentSpecMinimal, AgentSpecBase, AgentSpecFull, resolveBindings, resolveGuards, resolveMutators, } from './spec.js';
10
+ export { AgentSpecBase, resolveBindings, resolveGuards, resolveMutators, } from './spec.js';
11
11
  export { renderScopedSpecTrunk, chainOrder } from './trunk.js';
12
12
  export { validateSpec, MAX_TOOL_SURFACE } from './validate.js';
13
- export { geminiThinkingOff, pinnedDecoding, normalizeModelParams } from './model-params.js';
13
+ export { geminiThinkingOff, pinnedDecoding, normalizeModelParams, resolveModelSettings } from './model-params.js';
14
14
  export { createLedger, beginTurn, resultOk, recordVeto, recordToolResult, recordTerminal, vetoStormHit, VETO_STORM_LIMIT } from './runtime/ledger.js';
15
15
  export { TERMINAL_TOOLS, isTerminal, terminalProtocol, TERMINAL_PROTOCOL, TERMINAL_PROTOCOL_REPLY_ONLY, forcedTerminalPrompt, terminalToolDefs, } from './runtime/terminal.js';
16
- export { evaluatePreTool, evaluateOnInput, applyMutators, checkReply, redriveMessage, defaultExhaustionReply, finalizeReply, } from './runtime/turn.js';
16
+ export { evaluatePreTool, evaluateOnInput, applyMutators, checkReply, enforcePostTool, redriveMessage, defaultExhaustionReply, finalizeReply, shouldFireChain, runChainCompletionPass, } from './runtime/turn.js';
17
17
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,eAAe,EACf,aAAa,EACb,eAAe,GAChB,MAAM,WAAW,CAAC;AAenB,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAE/D,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAI5F,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEtJ,OAAO,EACL,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,4BAA4B,EAC5B,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,eAAe,EACf,eAAe,EACf,aAAa,EACb,UAAU,EACV,cAAc,EACd,sBAAsB,EACtB,aAAa,GACd,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,OAAO,EACL,aAAa,EACb,eAAe,EACf,aAAa,EACb,eAAe,GAChB,MAAM,WAAW,CAAC;AAgBnB,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAE/D,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAKlH,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEtJ,OAAO,EACL,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,4BAA4B,EAC5B,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,eAAe,EACf,eAAe,EACf,aAAa,EACb,UAAU,EACV,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,aAAa,EACb,eAAe,EACf,sBAAsB,GACvB,MAAM,mBAAmB,CAAC"}
@@ -25,4 +25,20 @@ export declare function pinnedDecoding(opts?: {
25
25
  * seam so both preset-style ({ modelSettings: … }) and flat ({ temperature: 0 }) inputs work.
26
26
  */
27
27
  export declare function normalizeModelParams(params: Record<string, unknown>): Record<string, unknown>;
28
+ /** Per-agent AI-SDK call settings (spec.controls.sampling) — the keys an agent may override. */
29
+ export interface SamplingSettings {
30
+ temperature?: number;
31
+ topP?: number;
32
+ maxOutputTokens?: number;
33
+ seed?: number;
34
+ }
35
+ /**
36
+ * Fold a spec's per-agent `sampling` OVER an already-normalized modelParams object (agent wins on any
37
+ * key it sets), preserving providerOptions and every other top-level key. The one merged object is
38
+ * spread into EVERY generate() call of the turn (main generation, forced-terminal, redrive), so a
39
+ * creative agent can run at temperature 0.7 beside a temp-0 admin agent in the same domain. Absent /
40
+ * empty sampling ⇒ the input returned unchanged (the zero-diff guarantee). Pure + exported so the merge
41
+ * is unit-testable without a live model.
42
+ */
43
+ export declare function resolveModelSettings(normalized: Record<string, unknown>, sampling?: SamplingSettings): Record<string, unknown>;
28
44
  //# sourceMappingURL=model-params.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"model-params.d.ts","sourceRoot":"","sources":["../src/model-params.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAM3D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQ9G;AAaD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAU7F"}
1
+ {"version":3,"file":"model-params.d.ts","sourceRoot":"","sources":["../src/model-params.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAM3D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQ9G;AAaD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAU7F;AAED,gGAAgG;AAChG,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,QAAQ,CAAC,EAAE,gBAAgB,GAC1B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAIzB"}