@looprun-ai/core 0.1.2 → 0.2.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.
package/dist/spec.js CHANGED
@@ -8,17 +8,21 @@
8
8
  * postTool → recorded via `afterToolCall`
9
9
  * onReply → runtime finalization (bounded no-tools redrive; exhaustion ⇒ a deterministic
10
10
  * guard-authored closure)
11
- * controls → maxSteps (stop condition) · terminal (reply-only policy) · directives · escalate ·
12
- * exhaustionReply
11
+ * controls → maxSteps (stop condition) · terminal (reply-only policy) · directives · chains ·
12
+ * escalate · sampling · exhaustionReply
13
13
  *
14
- * Layer hierarchy (guards installed by the constructor, layer-tagged and addressable):
15
- * AgentSpecMinimal invariants EVERY agent carries: noDuplicateCall (preTool) + emptyReply (onReply).
16
- * AgentSpecBase — Minimal + the destructive-safety protocol on `destructiveTools`:
17
- * confirmFirst + destructiveThrottle.
18
- * AgentSpecFull — Base + the schema-auto layer (argRequired/argFormat from tool JSON schemas).
19
- * resolveBindings sorts each hook agent → full → base → minimal so an agent correction wins.
14
+ * ONE class, `AgentSpecBase` (the former Minimal/Base/Full ladder is collapsed a spec is a spec).
15
+ * Its constructor auto-installs, layer-tagged and addressable, exactly:
16
+ * - ALWAYS the invariants EVERY agent carries: noDuplicateCall (preTool, id `minimal:noDuplicateCall`)
17
+ * + emptyReply (onReply, id `minimal:emptyReply`);
18
+ * - IFF `destructiveTools` is non-empty, the destructive-safety protocol on those tools:
19
+ * confirmFirst (id `base:confirmFirst`) + destructiveThrottle (id `base:destructiveThrottle`).
20
+ * Per-tool schema guards (argRequired/argFormat) are now AUTHORED explicitly by the spec — there is no
21
+ * auto-schema layer. The `minimal:`/`base:` id namespaces are retained (load-bearing for resolveBindings
22
+ * layer ordering + trunk prose order). resolveBindings sorts each hook agent → full → base → minimal so
23
+ * an agent correction always wins.
20
24
  */
21
- import { argFormat, argRequired, confirmFirst, destructiveThrottle, emptyReply, noDuplicateCall } from './guards.js';
25
+ import { confirmFirst, destructiveThrottle, emptyReply, noDuplicateCall, noFalseFailureClaim } from './guards.js';
22
26
  const TERMINAL_TOOLS = ['replyToUser', 'askUser'];
23
27
  const LAYER_ORDER = { agent: 0, full: 1, base: 2, minimal: 3 };
24
28
  export function resolveBindings(bindings, tool) {
@@ -35,7 +39,15 @@ export function resolveMutators(bindings) {
35
39
  .sort((a, b) => LAYER_ORDER[a.layer] - LAYER_ORDER[b.layer])
36
40
  .map((b) => b.mutator);
37
41
  }
38
- export class AgentSpecMinimal {
42
+ /**
43
+ * The ONE AgentSpec class (no Minimal/Base/Full ladder). Its constructor always installs the universal
44
+ * invariants (noDuplicateCall + emptyReply, + noFalseFailureClaim iff `cfg.lexicon` provides its regex)
45
+ * and, iff `destructiveTools` is non-empty, the destructive-safety protocol (confirmFirst +
46
+ * destructiveThrottle) on those tools — confirmFirst keyed per-tool by `cfg.confirmMechanism`. Ids and
47
+ * install order are byte-stable (`minimal:*` then `base:*`) so the layer-sorted trunk prose and
48
+ * resolveBindings order are unchanged from the former ladder.
49
+ */
50
+ export class AgentSpecBase {
39
51
  id;
40
52
  mode;
41
53
  persona;
@@ -46,6 +58,8 @@ export class AgentSpecMinimal {
46
58
  behavior;
47
59
  theme;
48
60
  destructiveTools;
61
+ confirmMechanism;
62
+ lexicon;
49
63
  toolSchemas;
50
64
  seq = 0;
51
65
  constructor(cfg) {
@@ -77,18 +91,56 @@ export class AgentSpecMinimal {
77
91
  ...(cfg.directives?.length ? { directives: [...cfg.directives] } : {}),
78
92
  ...(cfg.escalate ? { escalate: cfg.escalate } : {}),
79
93
  ...(cfg.exhaustionReply ? { exhaustionReply: cfg.exhaustionReply } : {}),
94
+ ...(cfg.sampling ? { sampling: cfg.sampling } : {}),
95
+ ...(cfg.chains?.length ? { chains: [...cfg.chains] } : {}),
80
96
  };
81
97
  this.behavior = [...(cfg.behavior ?? [])];
82
98
  if (cfg.theme)
83
99
  this.theme = cfg.theme;
84
100
  this.destructiveTools = [...(cfg.destructiveTools ?? [])];
101
+ this.confirmMechanism = { ...(cfg.confirmMechanism ?? {}) };
102
+ this.lexicon = { ...(cfg.lexicon ?? {}) };
85
103
  this.toolSchemas = cfg.toolSchemas ?? {};
104
+ // Install order is load-bearing (byte-stable trunk): universal invariants first, destructive layer
105
+ // second — same as the former AgentSpecMinimal → AgentSpecBase super()/installBase() flow.
86
106
  this.installMinimal();
107
+ this.installBase();
87
108
  }
88
109
  installMinimal() {
89
110
  this.addGuard('preTool', 'any', noDuplicateCall(), { layer: 'minimal', id: 'minimal:noDuplicateCall' });
111
+ // ALWAYS-ON reply-honesty invariant — auto-installed IFF the bundle injects its false-failure lexicon
112
+ // (auto-iff-provided keeps a spec that ships no lexicon byte-stable). Ordered BEFORE emptyReply so the
113
+ // resolved onReply tail is `… , minimal:noFalseFailureClaim, minimal:emptyReply` (the same relative
114
+ // position the agent-layer install formerly held, just under a stable minimal id).
115
+ if (this.lexicon.falseFailureClaimRe) {
116
+ this.addGuard('onReply', 'any', noFalseFailureClaim({ claimRe: this.lexicon.falseFailureClaimRe }), { layer: 'minimal', id: 'minimal:noFalseFailureClaim' });
117
+ }
90
118
  this.addGuard('onReply', 'any', emptyReply(), { layer: 'minimal', id: 'minimal:emptyReply' });
91
119
  }
120
+ /** Iff the spec declares destructiveTools: the confirm-first + throttle protocol on exactly those tools
121
+ * (validated ⊆ surface). The confirm MECHANISM is per-tool (`cfg.confirmMechanism`, default `'arg'`):
122
+ * the tools are partitioned so each mechanism renders its OWN prose under its own base id — arg-flag
123
+ * tools → `base:confirmFirst`, prior-ask tools → `base:confirmFirstPriorAsk` — while `destructiveThrottle`
124
+ * covers ALL of them. A no-op when the list is empty — every non-destructive spec is clean. */
125
+ installBase() {
126
+ const destructive = this.destructiveTools;
127
+ if (!destructive.length)
128
+ return;
129
+ const missing = destructive.filter((t) => !this.surface.tools.includes(t));
130
+ if (missing.length) {
131
+ throw new Error(`AgentSpec "${this.id}": destructiveTools not in the tool surface: ${missing.join(', ')}.`);
132
+ }
133
+ const mechOf = (t) => this.confirmMechanism[t] ?? 'arg';
134
+ const argTools = destructive.filter((t) => mechOf(t) === 'arg');
135
+ const priorAskTools = destructive.filter((t) => mechOf(t) === 'prior-ask');
136
+ if (argTools.length) {
137
+ this.addGuard('preTool', argTools, confirmFirst(), { layer: 'base', id: 'base:confirmFirst' });
138
+ }
139
+ if (priorAskTools.length) {
140
+ this.addGuard('preTool', priorAskTools, confirmFirst({ mechanism: 'prior-ask', askRe: this.lexicon.confirmAskRe }), { layer: 'base', id: 'base:confirmFirstPriorAsk' });
141
+ }
142
+ this.addGuard('preTool', destructive, destructiveThrottle(destructive), { layer: 'base', id: 'base:destructiveThrottle' });
143
+ }
92
144
  addGuard(hook, target, guard, opts) {
93
145
  if (hook === 'preTool' && (guard.dim === 'behavior' || guard.dim === 'output')) {
94
146
  throw new Error(`AgentSpec "${this.id}": a '${guard.dim}'-dim guard (${guard.kind}) cannot be a preTool gate — use onReply/postTool.`);
@@ -124,45 +176,4 @@ export class AgentSpecMinimal {
124
176
  return this;
125
177
  }
126
178
  }
127
- export class AgentSpecBase extends AgentSpecMinimal {
128
- constructor(cfg) {
129
- super(cfg);
130
- this.installBase();
131
- }
132
- installBase() {
133
- const destructive = this.destructiveTools;
134
- if (!destructive.length)
135
- return;
136
- const missing = destructive.filter((t) => !this.surface.tools.includes(t));
137
- if (missing.length) {
138
- throw new Error(`AgentSpec "${this.id}": destructiveTools not in the tool surface: ${missing.join(', ')}.`);
139
- }
140
- this.addGuard('preTool', destructive, confirmFirst(), { layer: 'base', id: 'base:confirmFirst' });
141
- this.addGuard('preTool', destructive, destructiveThrottle(destructive), { layer: 'base', id: 'base:destructiveThrottle' });
142
- }
143
- }
144
- export class AgentSpecFull extends AgentSpecBase {
145
- constructor(cfg) {
146
- super(cfg);
147
- this.installFull();
148
- }
149
- installFull() {
150
- for (const tool of this.surface.tools) {
151
- const s = this.toolSchemas[tool];
152
- if (!s)
153
- continue;
154
- for (const field of s.required ?? []) {
155
- this.addGuard('preTool', [tool], argRequired(field), { layer: 'full', id: `full:argRequired:${tool}.${field}` });
156
- }
157
- for (const [field, prop] of Object.entries(s.properties ?? {})) {
158
- if (!prop.pattern)
159
- continue;
160
- try {
161
- this.addGuard('preTool', [tool], argFormat(field, prop.pattern), { layer: 'full', id: `full:argFormat:${tool}.${field}` });
162
- }
163
- catch { /* a malformed pattern degrades one guard, not the import */ }
164
- }
165
- }
166
- }
167
- }
168
179
  //# sourceMappingURL=spec.js.map
package/dist/spec.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"spec.js","sourceRoot":"","sources":["../src/spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spec.js","sourceRoot":"","sources":["../src/spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@looprun-ai/core",
3
- "version": "0.1.2",
3
+ "version": "0.2.0",
4
4
  "type": "module",
5
5
  "description": "looprun core: the AgentSpec governance layer for LLM agents — typed deterministic guards (prose+check pairing), the byte-stable scoped trunk renderer, and the backend-agnostic governed-turn machine. Framework-free: zero runtime dependencies; backends (@looprun-ai/mastra, …) supply the loop.",
6
6
  "keywords": [