@sponsio/sdk 0.1.0-alpha.3 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (176) hide show
  1. package/bin/sponsio.cjs +11 -0
  2. package/contracts/capability/credentials.yaml +8 -8
  3. package/contracts/capability/database.yaml +6 -6
  4. package/contracts/capability/filesystem-strict.yaml +4 -4
  5. package/contracts/capability/filesystem.yaml +9 -9
  6. package/contracts/capability/host-config-integrity.yaml +285 -0
  7. package/contracts/capability/self-modify.yaml +214 -9
  8. package/contracts/capability/shell.yaml +25 -32
  9. package/contracts/capability/subagent.yaml +5 -5
  10. package/contracts/core/llm_safety.yaml +23 -13
  11. package/contracts/incident/claude-code-secret-bypass.yaml +10 -11
  12. package/contracts/incident/cursor-railway-wipe.yaml +3 -3
  13. package/contracts/incident/mcp-composition.yaml +12 -12
  14. package/contracts/incident/openclaw.yaml +53 -45
  15. package/contracts/incident/subagent-escape.yaml +4 -4
  16. package/dist/cli/check.d.ts +2 -0
  17. package/dist/cli/check.d.ts.map +1 -0
  18. package/dist/cli/check.js +283 -0
  19. package/dist/cli/check.js.map +1 -0
  20. package/dist/cli/cli.d.ts +25 -0
  21. package/dist/cli/cli.d.ts.map +1 -0
  22. package/dist/cli/cli.js +459 -0
  23. package/dist/cli/cli.js.map +1 -0
  24. package/dist/cli/config.d.ts +88 -0
  25. package/dist/cli/config.d.ts.map +1 -0
  26. package/dist/cli/config.js +243 -0
  27. package/dist/cli/config.js.map +1 -0
  28. package/dist/cli/demo.d.ts +12 -0
  29. package/dist/cli/demo.d.ts.map +1 -0
  30. package/dist/cli/demo.js +350 -0
  31. package/dist/cli/demo.js.map +1 -0
  32. package/dist/cli/doctor.d.ts +11 -0
  33. package/dist/cli/doctor.d.ts.map +1 -0
  34. package/dist/cli/doctor.js +201 -0
  35. package/dist/cli/doctor.js.map +1 -0
  36. package/dist/cli/eval.d.ts +2 -0
  37. package/dist/cli/eval.d.ts.map +1 -0
  38. package/dist/cli/eval.js +361 -0
  39. package/dist/cli/eval.js.map +1 -0
  40. package/dist/cli/explain.d.ts +2 -0
  41. package/dist/cli/explain.d.ts.map +1 -0
  42. package/dist/cli/explain.js +266 -0
  43. package/dist/cli/explain.js.map +1 -0
  44. package/dist/cli/export-sessions.d.ts +2 -0
  45. package/dist/cli/export-sessions.d.ts.map +1 -0
  46. package/dist/cli/export-sessions.js +182 -0
  47. package/dist/cli/export-sessions.js.map +1 -0
  48. package/dist/cli/export.d.ts +2 -0
  49. package/dist/cli/export.d.ts.map +1 -0
  50. package/dist/cli/export.js +222 -0
  51. package/dist/cli/export.js.map +1 -0
  52. package/dist/cli/extractors/common.d.ts +27 -0
  53. package/dist/cli/extractors/common.d.ts.map +1 -0
  54. package/dist/cli/extractors/common.js +107 -0
  55. package/dist/cli/extractors/common.js.map +1 -0
  56. package/dist/cli/extractors/generic.d.ts +37 -0
  57. package/dist/cli/extractors/generic.d.ts.map +1 -0
  58. package/dist/cli/extractors/generic.js +185 -0
  59. package/dist/cli/extractors/generic.js.map +1 -0
  60. package/dist/cli/extractors/langchain.d.ts +18 -0
  61. package/dist/cli/extractors/langchain.d.ts.map +1 -0
  62. package/dist/cli/extractors/langchain.js +86 -0
  63. package/dist/cli/extractors/langchain.js.map +1 -0
  64. package/dist/cli/extractors/vercel.d.ts +17 -0
  65. package/dist/cli/extractors/vercel.d.ts.map +1 -0
  66. package/dist/cli/extractors/vercel.js +46 -0
  67. package/dist/cli/extractors/vercel.js.map +1 -0
  68. package/dist/cli/index.d.ts +38 -0
  69. package/dist/cli/index.d.ts.map +1 -0
  70. package/dist/cli/index.js +146 -0
  71. package/dist/cli/index.js.map +1 -0
  72. package/dist/cli/init.d.ts +2 -0
  73. package/dist/cli/init.d.ts.map +1 -0
  74. package/dist/cli/init.js +177 -0
  75. package/dist/cli/init.js.map +1 -0
  76. package/dist/cli/mode.d.ts +2 -0
  77. package/dist/cli/mode.d.ts.map +1 -0
  78. package/dist/cli/mode.js +71 -0
  79. package/dist/cli/mode.js.map +1 -0
  80. package/dist/cli/onboard.d.ts +88 -0
  81. package/dist/cli/onboard.d.ts.map +1 -0
  82. package/dist/cli/onboard.js +758 -0
  83. package/dist/cli/onboard.js.map +1 -0
  84. package/dist/cli/otlp.d.ts +27 -0
  85. package/dist/cli/otlp.d.ts.map +1 -0
  86. package/dist/cli/otlp.js +79 -0
  87. package/dist/cli/otlp.js.map +1 -0
  88. package/dist/cli/package.json +1 -0
  89. package/dist/cli/packs.d.ts +16 -0
  90. package/dist/cli/packs.d.ts.map +1 -0
  91. package/dist/cli/packs.js +184 -0
  92. package/dist/cli/packs.js.map +1 -0
  93. package/dist/cli/patterns.d.ts +15 -0
  94. package/dist/cli/patterns.d.ts.map +1 -0
  95. package/dist/cli/patterns.js +135 -0
  96. package/dist/cli/patterns.js.map +1 -0
  97. package/dist/cli/prompt.d.ts +2 -0
  98. package/dist/cli/prompt.d.ts.map +1 -0
  99. package/dist/cli/prompt.js +54 -0
  100. package/dist/cli/prompt.js.map +1 -0
  101. package/dist/cli/replay.d.ts +2 -0
  102. package/dist/cli/replay.d.ts.map +1 -0
  103. package/dist/cli/replay.js +196 -0
  104. package/dist/cli/replay.js.map +1 -0
  105. package/dist/cli/report.d.ts +57 -0
  106. package/dist/cli/report.d.ts.map +1 -0
  107. package/dist/cli/report.js +298 -0
  108. package/dist/cli/report.js.map +1 -0
  109. package/dist/cli/scan.d.ts +2 -0
  110. package/dist/cli/scan.d.ts.map +1 -0
  111. package/dist/cli/scan.js +172 -0
  112. package/dist/cli/scan.js.map +1 -0
  113. package/dist/cli/skill.d.ts +15 -0
  114. package/dist/cli/skill.d.ts.map +1 -0
  115. package/dist/cli/skill.js +131 -0
  116. package/dist/cli/skill.js.map +1 -0
  117. package/dist/cli/tokens.d.ts +31 -0
  118. package/dist/cli/tokens.d.ts.map +1 -0
  119. package/dist/cli/tokens.js +73 -0
  120. package/dist/cli/tokens.js.map +1 -0
  121. package/dist/cli/types.d.ts +46 -0
  122. package/dist/cli/types.d.ts.map +1 -0
  123. package/dist/cli/types.js +3 -0
  124. package/dist/cli/types.js.map +1 -0
  125. package/dist/cli/validate.d.ts +19 -0
  126. package/dist/cli/validate.d.ts.map +1 -0
  127. package/dist/cli/validate.js +205 -0
  128. package/dist/cli/validate.js.map +1 -0
  129. package/dist/cli/zod.d.ts +36 -0
  130. package/dist/cli/zod.d.ts.map +1 -0
  131. package/dist/cli/zod.js +226 -0
  132. package/dist/cli/zod.js.map +1 -0
  133. package/dist/contract.d.ts +13 -13
  134. package/dist/contract.d.ts.map +1 -1
  135. package/dist/contract.js +21 -21
  136. package/dist/contract.js.map +1 -1
  137. package/dist/core/config-loader.d.ts +1 -1
  138. package/dist/core/config-loader.js +35 -17
  139. package/dist/core/config-loader.js.map +1 -1
  140. package/dist/core/grounding.d.ts +49 -2
  141. package/dist/core/grounding.d.ts.map +1 -1
  142. package/dist/core/grounding.js +302 -142
  143. package/dist/core/grounding.js.map +1 -1
  144. package/dist/core/nl-parser.d.ts.map +1 -1
  145. package/dist/core/nl-parser.js +74 -2
  146. package/dist/core/nl-parser.js.map +1 -1
  147. package/dist/core/pattern-factory.d.ts +4 -4
  148. package/dist/core/pattern-factory.d.ts.map +1 -1
  149. package/dist/core/pattern-factory.js +46 -4
  150. package/dist/core/pattern-factory.js.map +1 -1
  151. package/dist/core/patterns.d.ts +78 -4
  152. package/dist/core/patterns.d.ts.map +1 -1
  153. package/dist/core/patterns.js +211 -3
  154. package/dist/core/patterns.js.map +1 -1
  155. package/dist/core/spans.d.ts +1 -1
  156. package/dist/core/spans.d.ts.map +1 -1
  157. package/dist/core/spans.js.map +1 -1
  158. package/dist/core/sto.d.ts +32 -62
  159. package/dist/core/sto.d.ts.map +1 -1
  160. package/dist/core/sto.js +32 -90
  161. package/dist/core/sto.js.map +1 -1
  162. package/dist/index.d.ts +77 -32
  163. package/dist/index.d.ts.map +1 -1
  164. package/dist/index.js +172 -133
  165. package/dist/index.js.map +1 -1
  166. package/dist/integrations/openai-agents.d.ts.map +1 -1
  167. package/dist/integrations/openai-agents.js +5 -4
  168. package/dist/integrations/openai-agents.js.map +1 -1
  169. package/dist/render/tokens.d.ts.map +1 -1
  170. package/dist/render/tokens.js +1 -0
  171. package/dist/render/tokens.js.map +1 -1
  172. package/package.json +28 -4
  173. package/prompts/onboard.md +250 -0
  174. package/prompts/refresh.md +118 -0
  175. package/prompts/scan.md +125 -0
  176. package/skills/SKILL.md +502 -0
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Grounding: convert tool-call events into per-timestep predicate valuations.
2
+ * Grounding: convert events into per-timestep predicate valuations.
3
3
  *
4
4
  * Port of sponsio/tracer/grounding.py (Det-relevant atoms).
5
5
  *
@@ -16,6 +16,11 @@
16
16
  * arg_paths_within(tool, *prefixes) — all paths in args within prefix set
17
17
  * token_count(type) — cumulative tokens (from event.args.tokens)
18
18
  * delegation_depth — depth of agent-to-agent delegation
19
+ * ctx(key, value) — external fact pushed via observe_context
20
+ * ctx_matches(key, pattern) — current ctx[key] matches regex
21
+ * llm_said(pattern) — llm_response content matches regex
22
+ * response_words / response_chars — response length on llm_response
23
+ * time_since(predicate_key) — event-clock delta since predicate last True
19
24
  */
20
25
  import { predKey } from "./formula.js";
21
26
  export function newGroundingState() {
@@ -26,8 +31,43 @@ export function newGroundingState() {
26
31
  consecutiveCounts: {},
27
32
  tokenCounts: {},
28
33
  delegationDepth: 0,
34
+ currentCtx: {},
35
+ now: 0,
36
+ lastTs: {},
37
+ trueAtPrev: new Set(),
29
38
  };
30
39
  }
40
+ /**
41
+ * Predicates whose grounding requires the formula AST to tell
42
+ * grounding which arg tuples to check (regex on content, ctx_matches,
43
+ * time_since key targets, …). Mirrors Python's ``_CONTENT_PREDICATES``.
44
+ */
45
+ const CONTENT_PREDICATES = new Set([
46
+ "called_with",
47
+ "count_with",
48
+ "arg_has",
49
+ "arg_field_has",
50
+ "arg_length_exceeds",
51
+ "arg_paths_within",
52
+ "arg_numeric",
53
+ "llm_said",
54
+ "ctx_matches",
55
+ "time_since",
56
+ ]);
57
+ /**
58
+ * Var names that must be extracted from the formula tree for grounding.
59
+ * Includes both the atom-style content predicates and bare arithmetic
60
+ * Vars so ``Le(Var(count, x), Const(N))`` carries ``("x",)`` through.
61
+ */
62
+ const VAR_PREDICATES = new Set([
63
+ "count_with",
64
+ "count",
65
+ "consecutive_count",
66
+ "arg_numeric",
67
+ "token_count",
68
+ "delegation_depth",
69
+ "time_since",
70
+ ]);
31
71
  /**
32
72
  * Collect content atoms from a formula tree.
33
73
  * These are atoms whose grounding depends on event content (arg patterns).
@@ -37,20 +77,14 @@ export function collectContentAtoms(formulas) {
37
77
  function walk(node) {
38
78
  if (node.kind === "Atom") {
39
79
  const pred = node.predicate;
40
- if ([
41
- "called_with", "count_with",
42
- "arg_has", "arg_field_has", "arg_length_exceeds", "arg_paths_within",
43
- ].includes(pred)) {
80
+ if (CONTENT_PREDICATES.has(pred)) {
44
81
  if (!atoms[pred])
45
82
  atoms[pred] = new Set();
46
83
  atoms[pred].add(node.args.join("|"));
47
84
  }
48
85
  }
49
86
  else if (node.kind === "Var") {
50
- if ([
51
- "count_with", "count", "consecutive_count",
52
- "arg_numeric", "token_count", "delegation_depth",
53
- ].includes(node.name)) {
87
+ if (VAR_PREDICATES.has(node.name)) {
54
88
  const pred = node.name;
55
89
  if (!atoms[pred])
56
90
  atoms[pred] = new Set();
@@ -69,172 +103,260 @@ export function collectContentAtoms(formulas) {
69
103
  walk(f);
70
104
  return atoms;
71
105
  }
106
+ function escapeRegexLiteral(literal) {
107
+ return literal.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
108
+ }
72
109
  /**
73
- * Ground a single tool-call event into a predicate valuation dict.
110
+ * Ground a single event into a predicate valuation dict.
111
+ *
112
+ * Routes by ``event.event_type``:
113
+ * - ``tool_call`` (default) — emits the full tool-call atom set
114
+ * - ``llm_response`` — emits ``llm_said(pattern)`` + length atoms
115
+ * - ``context_update`` — merges ``event.args`` into ``state.currentCtx``
116
+ *
117
+ * Ctx atoms (``ctx(k, v)``), accumulator snapshots, and ``time_since``
118
+ * fire on every event regardless of type (matching Python parity).
74
119
  */
75
120
  export function groundEvent(event, state, contentAtoms) {
76
121
  const v = {};
77
- const tool = event.tool;
78
- const argsStr = event.args ? JSON.stringify(event.args) : "";
79
- // called(tool)
80
- v[predKey("called", tool)] = true;
81
- // called_any — fires whenever any tool is invoked. Used by
82
- // ``tool_allowlist`` to encode "whenever any tool runs, it must
83
- // be one of the allowed ones".
84
- v[predKey("called_any")] = true;
85
- // count(tool)
86
- state.callCounts[tool] = (state.callCounts[tool] || 0) + 1;
87
- v[predKey("count", tool)] = state.callCounts[tool];
88
- // consecutive_count(tool)
89
- if (tool === state.lastTool) {
90
- state.consecutiveCounts[tool] = (state.consecutiveCounts[tool] || 1) + 1;
122
+ const eventType = event.event_type ?? "tool_call";
123
+ // Advance the event clock (mirrors ``state.now = float(event.ts)``).
124
+ if (typeof event.ts === "number") {
125
+ state.now = event.ts;
91
126
  }
92
127
  else {
93
- if (state.lastTool)
94
- state.consecutiveCounts[state.lastTool] = 0;
95
- state.consecutiveCounts[tool] = 1;
128
+ state.now += 1;
96
129
  }
97
- state.lastTool = tool;
98
- v[predKey("consecutive_count", tool)] = state.consecutiveCounts[tool];
99
- // called_with / count_with — regex on serialized args
100
- if (contentAtoms) {
101
- const cwPatterns = new Set();
102
- for (const key of ["called_with", "count_with"]) {
103
- const s = contentAtoms[key];
104
- if (s)
105
- for (const p of s)
106
- cwPatterns.add(p);
130
+ if (eventType === "tool_call") {
131
+ const tool = event.tool;
132
+ const argsStr = event.args ? JSON.stringify(event.args) : "";
133
+ // called(tool)
134
+ v[predKey("called", tool)] = true;
135
+ // called_any — fires whenever any tool is invoked. Used by
136
+ // ``tool_allowlist`` to encode "whenever any tool runs, it must
137
+ // be one of the allowed ones".
138
+ v[predKey("called_any")] = true;
139
+ // count(tool)
140
+ state.callCounts[tool] = (state.callCounts[tool] || 0) + 1;
141
+ v[predKey("count", tool)] = state.callCounts[tool];
142
+ // consecutive_count(tool)
143
+ if (tool === state.lastTool) {
144
+ state.consecutiveCounts[tool] = (state.consecutiveCounts[tool] || 1) + 1;
107
145
  }
108
- for (const raw of cwPatterns) {
109
- const parts = raw.split("|");
110
- if (parts.length >= 2) {
111
- const targetTool = parts[0];
112
- const pattern = parts.slice(1).join("|");
113
- if (targetTool === tool) {
114
- const matched = new RegExp(pattern).test(argsStr);
115
- v[predKey("called_with", targetTool, pattern)] = matched;
116
- if (matched) {
117
- const cwKey = `${targetTool}|${pattern}`;
118
- state.callWithCounts[cwKey] = (state.callWithCounts[cwKey] || 0) + 1;
119
- }
120
- v[predKey("count_with", targetTool, pattern)] =
121
- state.callWithCounts[`${targetTool}|${pattern}`] || 0;
122
- }
123
- }
146
+ else {
147
+ if (state.lastTool)
148
+ state.consecutiveCounts[state.lastTool] = 0;
149
+ state.consecutiveCounts[tool] = 1;
124
150
  }
125
- // arg_has(tool, pattern)
126
- const argHasPatterns = contentAtoms["arg_has"];
127
- if (argHasPatterns && argsStr) {
128
- for (const raw of argHasPatterns) {
151
+ state.lastTool = tool;
152
+ v[predKey("consecutive_count", tool)] = state.consecutiveCounts[tool];
153
+ // called_with / count_with — regex on serialized args
154
+ if (contentAtoms) {
155
+ const cwPatterns = new Set();
156
+ for (const key of ["called_with", "count_with"]) {
157
+ const s = contentAtoms[key];
158
+ if (s)
159
+ for (const p of s)
160
+ cwPatterns.add(p);
161
+ }
162
+ for (const raw of cwPatterns) {
129
163
  const parts = raw.split("|");
130
164
  if (parts.length >= 2) {
131
165
  const targetTool = parts[0];
132
166
  const pattern = parts.slice(1).join("|");
133
167
  if (targetTool === tool) {
134
- v[predKey("arg_has", targetTool, pattern)] = new RegExp(pattern).test(argsStr);
168
+ const matched = new RegExp(pattern).test(argsStr);
169
+ v[predKey("called_with", targetTool, pattern)] = matched;
170
+ if (matched) {
171
+ const cwKey = `${targetTool}|${pattern}`;
172
+ state.callWithCounts[cwKey] = (state.callWithCounts[cwKey] || 0) + 1;
173
+ }
174
+ v[predKey("count_with", targetTool, pattern)] =
175
+ state.callWithCounts[`${targetTool}|${pattern}`] || 0;
135
176
  }
136
177
  }
137
178
  }
138
- }
139
- // arg_field_has(tool, field, pattern)
140
- const afhPatterns = contentAtoms["arg_field_has"];
141
- if (afhPatterns && event.args) {
142
- for (const raw of afhPatterns) {
143
- const parts = raw.split("|");
144
- if (parts.length >= 3) {
145
- const targetTool = parts[0];
146
- const field = parts[1];
147
- const pattern = parts.slice(2).join("|");
148
- if (targetTool === tool) {
149
- const fieldVal = event.args[field];
150
- const matched = fieldVal != null && new RegExp(pattern).test(String(fieldVal));
151
- v[predKey("arg_field_has", targetTool, field, pattern)] = matched;
179
+ // arg_has(tool, pattern)
180
+ const argHasPatterns = contentAtoms["arg_has"];
181
+ if (argHasPatterns && argsStr) {
182
+ for (const raw of argHasPatterns) {
183
+ const parts = raw.split("|");
184
+ if (parts.length >= 2) {
185
+ const targetTool = parts[0];
186
+ const pattern = parts.slice(1).join("|");
187
+ if (targetTool === tool) {
188
+ v[predKey("arg_has", targetTool, pattern)] = new RegExp(pattern).test(argsStr);
189
+ }
152
190
  }
153
191
  }
154
192
  }
155
- }
156
- // arg_length_exceeds(tool, field, max_chars)
157
- const ale = contentAtoms["arg_length_exceeds"];
158
- if (ale && event.args) {
159
- for (const raw of ale) {
160
- const parts = raw.split("|");
161
- if (parts.length >= 3) {
162
- const targetTool = parts[0];
163
- const field = parts[1];
164
- const maxChars = parseInt(parts[2], 10) || 500;
165
- if (targetTool === tool) {
166
- const fieldVal = event.args[field] ?? "";
167
- v[predKey("arg_length_exceeds", targetTool, field, String(maxChars))] =
168
- String(fieldVal).length > maxChars;
193
+ // arg_field_has(tool, field, pattern)
194
+ const afhPatterns = contentAtoms["arg_field_has"];
195
+ if (afhPatterns && event.args) {
196
+ for (const raw of afhPatterns) {
197
+ const parts = raw.split("|");
198
+ if (parts.length >= 3) {
199
+ const targetTool = parts[0];
200
+ const field = parts[1];
201
+ const pattern = parts.slice(2).join("|");
202
+ if (targetTool === tool) {
203
+ const fieldVal = event.args[field];
204
+ const matched = fieldVal != null && new RegExp(pattern).test(String(fieldVal));
205
+ v[predKey("arg_field_has", targetTool, field, pattern)] = matched;
206
+ }
169
207
  }
170
208
  }
171
209
  }
172
- }
173
- // arg_numeric(tool, field) — extract numeric value via 3 strategies:
174
- // 1. Direct dict key
175
- // 2. CLI flag "--field VALUE"
176
- // 3. Positional token in command string
177
- const anPatterns = contentAtoms["arg_numeric"];
178
- if (anPatterns) {
179
- for (const raw of anPatterns) {
180
- const parts = raw.split("|");
181
- if (parts.length >= 2) {
182
- const targetTool = parts[0];
183
- const field = parts[1];
184
- if (targetTool === tool) {
185
- let numericVal = null;
186
- // Strategy 1: direct dict key
187
- if (event.args && field in event.args) {
188
- const val = event.args[field];
189
- const n = typeof val === "number" ? val : parseFloat(String(val));
190
- if (!isNaN(n))
191
- numericVal = n;
210
+ // arg_length_exceeds(tool, field, max_chars)
211
+ const ale = contentAtoms["arg_length_exceeds"];
212
+ if (ale && event.args) {
213
+ for (const raw of ale) {
214
+ const parts = raw.split("|");
215
+ if (parts.length >= 3) {
216
+ const targetTool = parts[0];
217
+ const field = parts[1];
218
+ const maxChars = parseInt(parts[2], 10) || 500;
219
+ if (targetTool === tool) {
220
+ const fieldVal = event.args[field] ?? "";
221
+ v[predKey("arg_length_exceeds", targetTool, field, String(maxChars))] =
222
+ String(fieldVal).length > maxChars;
192
223
  }
193
- // Strategy 2: CLI --field VALUE
194
- if (numericVal == null && argsStr) {
195
- const flagRe = new RegExp(`--${field.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}\\s+([+-]?\\d+(?:\\.\\d+)?)`);
196
- const m = argsStr.match(flagRe);
197
- if (m)
198
- numericVal = parseFloat(m[1]);
199
- }
200
- // Strategy 3: positional index
201
- if (numericVal == null && event.args && /^\d+$/.test(field)) {
202
- const cmdStr = String(event.args.command ?? "");
203
- const tokens = cmdStr.split(/\s+/);
204
- const pos = parseInt(field, 10);
205
- if (pos < tokens.length) {
206
- const n = parseFloat(tokens[pos]);
224
+ }
225
+ }
226
+ }
227
+ // arg_numeric(tool, field) — extract numeric value via 3 strategies:
228
+ // 1. Direct dict key
229
+ // 2. CLI flag "--field VALUE"
230
+ // 3. Positional token in command string
231
+ const anPatterns = contentAtoms["arg_numeric"];
232
+ if (anPatterns) {
233
+ for (const raw of anPatterns) {
234
+ const parts = raw.split("|");
235
+ if (parts.length >= 2) {
236
+ const targetTool = parts[0];
237
+ const field = parts[1];
238
+ if (targetTool === tool) {
239
+ let numericVal = null;
240
+ // Strategy 1: direct dict key
241
+ if (event.args && field in event.args) {
242
+ const val = event.args[field];
243
+ const n = typeof val === "number" ? val : parseFloat(String(val));
207
244
  if (!isNaN(n))
208
245
  numericVal = n;
209
246
  }
247
+ // Strategy 2: CLI --field VALUE
248
+ if (numericVal == null && argsStr) {
249
+ const flagRe = new RegExp(`--${escapeRegexLiteral(field)}\\s+([+-]?\\d+(?:\\.\\d+)?)`);
250
+ const m = argsStr.match(flagRe);
251
+ if (m)
252
+ numericVal = parseFloat(m[1]);
253
+ }
254
+ // Strategy 3: positional index
255
+ if (numericVal == null && event.args && /^\d+$/.test(field)) {
256
+ const cmdStr = String(event.args.command ?? "");
257
+ const tokens = cmdStr.split(/\s+/);
258
+ const pos = parseInt(field, 10);
259
+ if (pos < tokens.length) {
260
+ const n = parseFloat(tokens[pos]);
261
+ if (!isNaN(n))
262
+ numericVal = n;
263
+ }
264
+ }
265
+ if (numericVal != null) {
266
+ v[predKey("arg_numeric", targetTool, field)] = numericVal;
267
+ }
210
268
  }
211
- if (numericVal != null) {
212
- v[predKey("arg_numeric", targetTool, field)] = numericVal;
269
+ }
270
+ }
271
+ }
272
+ // arg_paths_within(tool, *prefixes) — all /-paths in args within prefix set
273
+ const apw = contentAtoms["arg_paths_within"];
274
+ if (apw && argsStr) {
275
+ for (const raw of apw) {
276
+ const parts = raw.split("|");
277
+ if (parts.length >= 2) {
278
+ const targetTool = parts[0];
279
+ const prefixes = parts.slice(1);
280
+ if (targetTool === tool) {
281
+ const paths = argsStr.match(/(\/[^\s;|&>"']+)/g) ?? [];
282
+ const allWithin = paths.length === 0 ||
283
+ paths.every((p) => prefixes.some((pre) => p.startsWith(pre)));
284
+ v[predKey("arg_paths_within", targetTool, ...prefixes)] = allWithin;
213
285
  }
214
286
  }
215
287
  }
216
288
  }
217
289
  }
218
- // arg_paths_within(tool, *prefixes) — all /-paths in args within prefix set
219
- const apw = contentAtoms["arg_paths_within"];
220
- if (apw && argsStr) {
221
- for (const raw of apw) {
222
- const parts = raw.split("|");
223
- if (parts.length >= 2) {
224
- const targetTool = parts[0];
225
- const prefixes = parts.slice(1);
226
- if (targetTool === tool) {
227
- const paths = argsStr.match(/(\/[^\s;|&>"']+)/g) ?? [];
228
- const allWithin = paths.length === 0 ||
229
- paths.every((p) => prefixes.some((pre) => p.startsWith(pre)));
230
- v[predKey("arg_paths_within", targetTool, ...prefixes)] = allWithin;
290
+ }
291
+ else if (eventType === "llm_response") {
292
+ // ── llm_said(pattern) ───────────────────────────────────────
293
+ const content = event.content ?? "";
294
+ if (content && contentAtoms && contentAtoms["llm_said"]) {
295
+ for (const raw of contentAtoms["llm_said"]) {
296
+ const pattern = raw;
297
+ if (!pattern)
298
+ continue;
299
+ let matched = false;
300
+ try {
301
+ matched = new RegExp(pattern).test(content);
302
+ }
303
+ catch {
304
+ // Bad regex → never matches (parity with Python re.search → no match).
305
+ }
306
+ v[predKey("llm_said", pattern)] = matched;
307
+ }
308
+ }
309
+ // response_words / response_chars — unparameterized Vars consumed by max_length.
310
+ if (content) {
311
+ v["response_words"] = content.trim().length === 0 ? 0 : content.trim().split(/\s+/).length;
312
+ v["response_chars"] = content.length;
313
+ }
314
+ // ``args.segment`` convention: extended-thinking integrations tag
315
+ // segment="thinking" / "answer" so contracts can scope content
316
+ // checks to one segment only.
317
+ if (event.args && typeof event.args.segment === "string" && event.args.segment) {
318
+ v[predKey("segment", String(event.args.segment))] = true;
319
+ }
320
+ }
321
+ else if (eventType === "context_update") {
322
+ // Merge user-pushed facts into state.currentCtx so every
323
+ // subsequent event sees them as ctx(k, v) atoms. Apply BEFORE
324
+ // the ctx-emission loop so a contract at the same timestep as
325
+ // the update already observes the new keys.
326
+ if (event.args) {
327
+ for (const [k, val] of Object.entries(event.args)) {
328
+ if (k == null)
329
+ continue;
330
+ state.currentCtx[String(k)] = val == null ? "" : String(val);
331
+ }
332
+ }
333
+ }
334
+ // ── ctx(k, v) — emit one atom per current_ctx entry, every event ─
335
+ for (const [k, val] of Object.entries(state.currentCtx)) {
336
+ v[predKey("ctx", k, val)] = true;
337
+ }
338
+ // ── ctx_matches(key, pattern) — regex against current_ctx[key] ──
339
+ if (contentAtoms && contentAtoms["ctx_matches"]) {
340
+ for (const raw of contentAtoms["ctx_matches"]) {
341
+ const parts = raw.split("|");
342
+ if (parts.length >= 2) {
343
+ const key = parts[0];
344
+ const pattern = parts.slice(1).join("|");
345
+ const cur = state.currentCtx[key];
346
+ let matched = false;
347
+ if (cur != null) {
348
+ try {
349
+ matched = new RegExp(pattern).test(cur);
350
+ }
351
+ catch {
352
+ matched = false;
231
353
  }
232
354
  }
355
+ v[predKey("ctx_matches", key, pattern)] = matched;
233
356
  }
234
357
  }
235
358
  }
236
- // token_count(type) — cumulative token count
237
- // Extract from event.args.tokens if present (gen_ai.usage.* convention)
359
+ // token_count(type) — cumulative token count (only meaningful for events with usage)
238
360
  if (event.args) {
239
361
  const tokens = event.args.tokens;
240
362
  if (tokens) {
@@ -251,18 +373,56 @@ export function groundEvent(event, state, contentAtoms) {
251
373
  for (const [scope, cnt] of Object.entries(state.tokenCounts)) {
252
374
  v[predKey("token_count", scope)] = cnt;
253
375
  }
254
- // delegation_depth — incremented by event.event_type === "delegation"
255
- if (event.event_type === "delegation") {
376
+ // delegation_depth — incremented by event_type === "delegation"
377
+ if (eventType === "delegation") {
256
378
  state.delegationDepth += 1;
257
379
  }
258
380
  v[predKey("delegation_depth")] = state.delegationDepth;
259
- // Emit count/count_with for all tracked vars
381
+ // Emit count snapshots for all tracked tools
260
382
  for (const [t, cnt] of Object.entries(state.callCounts)) {
261
383
  v[predKey("count", t)] = cnt;
262
384
  }
263
385
  for (const [key, cnt] of Object.entries(state.callWithCounts)) {
264
- const [t, p] = [key.split("|")[0], key.split("|").slice(1).join("|")];
265
- v[predKey("count_with", t, p)] = cnt;
386
+ const idx = key.indexOf("|");
387
+ if (idx > 0) {
388
+ v[predKey("count_with", key.slice(0, idx), key.slice(idx + 1))] = cnt;
389
+ }
390
+ }
391
+ // ── last_ts bookkeeping (fresh False→True transitions) ─────────
392
+ // A predicate that was True last event and still True now is
393
+ // "sustained" — we do NOT refresh its last_ts. Sustained covers
394
+ // ctx atoms re-emitted while held in scope; this is what makes
395
+ // time_since(ctx(approval.role, alice)) measure time since the
396
+ // approval was granted, not the trivial 0 from re-emission.
397
+ const trueNow = new Set();
398
+ for (const [key, val] of Object.entries(v)) {
399
+ if (val === true) {
400
+ trueNow.add(key);
401
+ if (!state.trueAtPrev.has(key)) {
402
+ state.lastTs[key] = state.now;
403
+ }
404
+ }
405
+ }
406
+ state.trueAtPrev = trueNow;
407
+ // ── time atoms (emitted last so they see fresh state.now) ─────
408
+ v["now"] = state.now;
409
+ if (contentAtoms && contentAtoms["time_since"]) {
410
+ for (const raw of contentAtoms["time_since"]) {
411
+ if (!raw)
412
+ continue;
413
+ const targetKey = raw;
414
+ let delta;
415
+ if (targetKey in state.lastTs) {
416
+ delta = state.now - state.lastTs[targetKey];
417
+ }
418
+ else {
419
+ // Sentinel — predicate has never fired. "Very long ago" is
420
+ // the right semantics for Le(time_since(P), N): if P never
421
+ // happened, the constraint must evaluate False.
422
+ delta = 1e18;
423
+ }
424
+ v[predKey("time_since", targetKey)] = delta;
425
+ }
266
426
  }
267
427
  return v;
268
428
  }
@@ -1 +1 @@
1
- {"version":3,"file":"grounding.js","sourceRoot":"","sources":["../../src/core/grounding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grounding.js","sourceRoot":"","sources":["../../src/core/grounding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAmDvC,MAAM,UAAU,iBAAiB;IAC/B,OAAO;QACL,UAAU,EAAE,EAAE;QACd,cAAc,EAAE,EAAE;QAClB,QAAQ,EAAE,IAAI;QACd,iBAAiB,EAAE,EAAE;QACrB,WAAW,EAAE,EAAE;QACf,eAAe,EAAE,CAAC;QAClB,UAAU,EAAE,EAAE;QACd,GAAG,EAAE,CAAC;QACN,MAAM,EAAE,EAAE;QACV,UAAU,EAAE,IAAI,GAAG,EAAE;KACtB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAS;IACzC,aAAa;IACb,YAAY;IACZ,SAAS;IACT,eAAe;IACf,oBAAoB;IACpB,kBAAkB;IAClB,aAAa;IACb,UAAU;IACV,aAAa;IACb,YAAY;CACb,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,cAAc,GAAG,IAAI,GAAG,CAAS;IACrC,YAAY;IACZ,OAAO;IACP,mBAAmB;IACnB,aAAa;IACb,aAAa;IACb,kBAAkB;IAClB,YAAY;CACb,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAmB;IAEnB,MAAM,KAAK,GAAgC,EAAE,CAAC;IAE9C,SAAS,IAAI,CAAC,IAAa;QACzB,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;YAC5B,IAAI,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;oBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;gBAC1C,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC/B,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACvB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;oBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;gBAC1C,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QAED,wBAAwB;QACxB,IAAI,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,IAAI,CAAC,KAAgB,CAAC,CAAC;QAC/D,IAAI,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,IAAe,CAAC,CAAC;QAC5D,IAAI,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,IAAI,CAAC,KAAgB,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,QAAQ;QAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAClC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAe;IACzC,OAAO,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CACzB,KAAgB,EAChB,KAAqB,EACrB,YAA0C;IAE1C,MAAM,CAAC,GAAqC,EAAE,CAAC;IAC/C,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,IAAI,WAAW,CAAC;IAElD,qEAAqE;IACrE,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;QACjC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAE7D,eAAe;QACf,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QAElC,2DAA2D;QAC3D,gEAAgE;QAChE,+BAA+B;QAC/B,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC;QAEhC,cAAc;QACd,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3D,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAEnD,0BAA0B;QAC1B,IAAI,IAAI,KAAK,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3E,CAAC;aAAM,CAAC;YACN,IAAI,KAAK,CAAC,QAAQ;gBAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAChE,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC;QACD,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;QACtB,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAEtE,sDAAsD;QACtD,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;YACrC,KAAK,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,EAAE,CAAC;gBAChD,MAAM,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;gBAC5B,IAAI,CAAC;oBAAE,KAAK,MAAM,CAAC,IAAI,CAAC;wBAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9C,CAAC;YAED,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC7B,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBACtB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACzC,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;wBACxB,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBAClD,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC;wBACzD,IAAI,OAAO,EAAE,CAAC;4BACZ,MAAM,KAAK,GAAG,GAAG,UAAU,IAAI,OAAO,EAAE,CAAC;4BACzC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;wBACvE,CAAC;wBACD,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;4BAC3C,KAAK,CAAC,cAAc,CAAC,GAAG,UAAU,IAAI,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;oBAC1D,CAAC;gBACH,CAAC;YACH,CAAC;YAED,yBAAyB;YACzB,MAAM,cAAc,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;YAC/C,IAAI,cAAc,IAAI,OAAO,EAAE,CAAC;gBAC9B,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;oBACjC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC7B,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;wBACtB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBACzC,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;4BACxB,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBACjF,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,sCAAsC;YACtC,MAAM,WAAW,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;YAClD,IAAI,WAAW,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC9B,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;oBAC9B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC7B,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;wBACtB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBACvB,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBACzC,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;4BACxB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;4BACnC,MAAM,OAAO,GAAG,QAAQ,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;4BAC/E,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC;wBACpE,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,6CAA6C;YAC7C,MAAM,GAAG,GAAG,YAAY,CAAC,oBAAoB,CAAC,CAAC;YAC/C,IAAI,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACtB,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;oBACtB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC7B,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;wBACtB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBACvB,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;wBAC/C,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;4BACxB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;4BACzC,CAAC,CAAC,OAAO,CAAC,oBAAoB,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;gCACnE,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,QAAQ,CAAC;wBACvC,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,qEAAqE;YACrE,uBAAuB;YACvB,gCAAgC;YAChC,0CAA0C;YAC1C,MAAM,UAAU,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;YAC/C,IAAI,UAAU,EAAE,CAAC;gBACf,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;oBAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC7B,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;wBACtB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBACvB,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;4BACxB,IAAI,UAAU,GAAkB,IAAI,CAAC;4BAErC,8BAA8B;4BAC9B,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gCACtC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gCAC9B,MAAM,CAAC,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gCAClE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;oCAAE,UAAU,GAAG,CAAC,CAAC;4BAChC,CAAC;4BAED,gCAAgC;4BAChC,IAAI,UAAU,IAAI,IAAI,IAAI,OAAO,EAAE,CAAC;gCAClC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,KAAK,kBAAkB,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;gCACvF,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gCAChC,IAAI,CAAC;oCAAE,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BACvC,CAAC;4BAED,+BAA+B;4BAC/B,IAAI,UAAU,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gCAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;gCAChD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gCACnC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gCAChC,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;oCACxB,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;oCAClC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;wCAAE,UAAU,GAAG,CAAC,CAAC;gCAChC,CAAC;4BACH,CAAC;4BAED,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;gCACvB,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,GAAG,UAAU,CAAC;4BAC5D,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,4EAA4E;YAC5E,MAAM,GAAG,GAAG,YAAY,CAAC,kBAAkB,CAAC,CAAC;YAC7C,IAAI,GAAG,IAAI,OAAO,EAAE,CAAC;gBACnB,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;oBACtB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC7B,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;wBACtB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBAC5B,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBAChC,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;4BACxB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;4BACvD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC;gCAClC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;4BAChE,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAC;wBACtE,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;QACxC,+DAA+D;QAC/D,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;QACpC,IAAI,OAAO,IAAI,YAAY,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;YACxD,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC3C,MAAM,OAAO,GAAG,GAAG,CAAC;gBACpB,IAAI,CAAC,OAAO;oBAAE,SAAS;gBACvB,IAAI,OAAO,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC;oBACH,OAAO,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC9C,CAAC;gBAAC,MAAM,CAAC;oBACP,uEAAuE;gBACzE,CAAC;gBACD,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC;YAC5C,CAAC;QACH,CAAC;QACD,iFAAiF;QACjF,IAAI,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;YAC3F,CAAC,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;QACvC,CAAC;QACD,kEAAkE;QAClE,+DAA+D;QAC/D,8BAA8B;QAC9B,IAAI,KAAK,CAAC,IAAI,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/E,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QAC3D,CAAC;IACH,CAAC;SAAM,IAAI,SAAS,KAAK,gBAAgB,EAAE,CAAC;QAC1C,yDAAyD;QACzD,8DAA8D;QAC9D,8DAA8D;QAC9D,4CAA4C;QAC5C,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClD,IAAI,CAAC,IAAI,IAAI;oBAAE,SAAS;gBACxB,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;IACH,CAAC;IAED,oEAAoE;IACpE,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;QACxD,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;IACnC,CAAC;IACD,mEAAmE;IACnE,IAAI,YAAY,IAAI,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC;QAChD,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC;YAC9C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACtB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACrB,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACzC,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBAClC,IAAI,OAAO,GAAG,KAAK,CAAC;gBACpB,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;oBAChB,IAAI,CAAC;wBACH,OAAO,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC1C,CAAC;oBAAC,MAAM,CAAC;wBACP,OAAO,GAAG,KAAK,CAAC;oBAClB,CAAC;gBACH,CAAC;gBACD,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC;YACpD,CAAC;QACH,CAAC;IACH,CAAC;IAED,qFAAqF;IACrF,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAA4C,CAAC;QACvE,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACrC,KAAK,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;YAC9F,CAAC;YACD,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACtC,KAAK,CAAC,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;YACjG,CAAC;YACD,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;YACzD,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;QACzE,CAAC;IACH,CAAC;IACD,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7D,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;IACzC,CAAC;IAED,gEAAgE;IAChE,IAAI,SAAS,KAAK,YAAY,EAAE,CAAC;QAC/B,KAAK,CAAC,eAAe,IAAI,CAAC,CAAC;IAC7B,CAAC;IACD,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,GAAG,KAAK,CAAC,eAAe,CAAC;IAEvD,6CAA6C;IAC7C,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;QACxD,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IAC/B,CAAC;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;QAC9D,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACZ,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACxE,CAAC;IACH,CAAC;IAED,kEAAkE;IAClE,6DAA6D;IAC7D,gEAAgE;IAChE,+DAA+D;IAC/D,+DAA+D;IAC/D,4DAA4D;IAC5D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACjB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IACD,KAAK,CAAC,UAAU,GAAG,OAAO,CAAC;IAE3B,iEAAiE;IACjE,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC;IACrB,IAAI,YAAY,IAAI,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/C,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,MAAM,SAAS,GAAG,GAAG,CAAC;YACtB,IAAI,KAAa,CAAC;YAClB,IAAI,SAAS,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC9B,KAAK,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,2DAA2D;gBAC3D,2DAA2D;gBAC3D,gDAAgD;gBAChD,KAAK,GAAG,IAAI,CAAC;YACf,CAAC;YACD,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,GAAG,KAAK,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,OAAO,CAAC,CAAC;AACX,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"nl-parser.d.ts","sourceRoot":"","sources":["../../src/core/nl-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAmHhD,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CA8CvD"}
1
+ {"version":3,"file":"nl-parser.d.ts","sourceRoot":"","sources":["../../src/core/nl-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAsLhD,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAoDvD"}