@zelari/core 2.10.0 → 2.11.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 (121) hide show
  1. package/dist/context/ContextPolicy.d.ts +48 -0
  2. package/dist/context/ContextPolicy.d.ts.map +1 -0
  3. package/dist/context/ContextPolicy.js +71 -0
  4. package/dist/context/ContextPolicy.js.map +1 -0
  5. package/dist/context/ContextProjector.d.ts +44 -0
  6. package/dist/context/ContextProjector.d.ts.map +1 -0
  7. package/dist/context/ContextProjector.js +156 -0
  8. package/dist/context/ContextProjector.js.map +1 -0
  9. package/dist/context/index.d.ts +11 -0
  10. package/dist/context/index.d.ts.map +1 -0
  11. package/dist/context/index.js +11 -0
  12. package/dist/context/index.js.map +1 -0
  13. package/dist/context/parentContext.d.ts +39 -0
  14. package/dist/context/parentContext.d.ts.map +1 -0
  15. package/dist/context/parentContext.js +67 -0
  16. package/dist/context/parentContext.js.map +1 -0
  17. package/dist/core/AgentHarness.d.ts +38 -0
  18. package/dist/core/AgentHarness.d.ts.map +1 -1
  19. package/dist/core/AgentHarness.js +142 -0
  20. package/dist/core/AgentHarness.js.map +1 -1
  21. package/dist/index.d.ts +1 -0
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +1 -0
  24. package/dist/index.js.map +1 -1
  25. package/dist/runtime/controls/RuntimeControlQueue.d.ts +35 -0
  26. package/dist/runtime/controls/RuntimeControlQueue.d.ts.map +1 -0
  27. package/dist/runtime/controls/RuntimeControlQueue.js +54 -0
  28. package/dist/runtime/controls/RuntimeControlQueue.js.map +1 -0
  29. package/dist/runtime/controls/SteeringObserver.d.ts +24 -0
  30. package/dist/runtime/controls/SteeringObserver.d.ts.map +1 -0
  31. package/dist/runtime/controls/SteeringObserver.js +46 -0
  32. package/dist/runtime/controls/SteeringObserver.js.map +1 -0
  33. package/dist/runtime/controls/index.d.ts +4 -0
  34. package/dist/runtime/controls/index.d.ts.map +1 -0
  35. package/dist/runtime/controls/index.js +4 -0
  36. package/dist/runtime/controls/index.js.map +1 -0
  37. package/dist/runtime/controls/types.d.ts +43 -0
  38. package/dist/runtime/controls/types.d.ts.map +1 -0
  39. package/dist/runtime/controls/types.js +18 -0
  40. package/dist/runtime/controls/types.js.map +1 -0
  41. package/dist/runtime/guards/DuplicateSearchGuard.d.ts +41 -0
  42. package/dist/runtime/guards/DuplicateSearchGuard.d.ts.map +1 -0
  43. package/dist/runtime/guards/DuplicateSearchGuard.js +150 -0
  44. package/dist/runtime/guards/DuplicateSearchGuard.js.map +1 -0
  45. package/dist/runtime/guards/FailureSignatureGuard.d.ts +34 -0
  46. package/dist/runtime/guards/FailureSignatureGuard.d.ts.map +1 -0
  47. package/dist/runtime/guards/FailureSignatureGuard.js +143 -0
  48. package/dist/runtime/guards/FailureSignatureGuard.js.map +1 -0
  49. package/dist/runtime/guards/NoProgressGuard.d.ts +23 -0
  50. package/dist/runtime/guards/NoProgressGuard.d.ts.map +1 -0
  51. package/dist/runtime/guards/NoProgressGuard.js +84 -0
  52. package/dist/runtime/guards/NoProgressGuard.js.map +1 -0
  53. package/dist/runtime/guards/ReasoningWatchdog.d.ts +48 -0
  54. package/dist/runtime/guards/ReasoningWatchdog.d.ts.map +1 -0
  55. package/dist/runtime/guards/ReasoningWatchdog.js +135 -0
  56. package/dist/runtime/guards/ReasoningWatchdog.js.map +1 -0
  57. package/dist/runtime/guards/RepetitionGuard.d.ts +22 -0
  58. package/dist/runtime/guards/RepetitionGuard.d.ts.map +1 -0
  59. package/dist/runtime/guards/RepetitionGuard.js +56 -0
  60. package/dist/runtime/guards/RepetitionGuard.js.map +1 -0
  61. package/dist/runtime/guards/index.d.ts +6 -0
  62. package/dist/runtime/guards/index.d.ts.map +1 -0
  63. package/dist/runtime/guards/index.js +6 -0
  64. package/dist/runtime/guards/index.js.map +1 -0
  65. package/dist/runtime/index.d.ts +4 -0
  66. package/dist/runtime/index.d.ts.map +1 -1
  67. package/dist/runtime/index.js +4 -0
  68. package/dist/runtime/index.js.map +1 -1
  69. package/dist/runtime/observers/MetricsObserver.d.ts +42 -0
  70. package/dist/runtime/observers/MetricsObserver.d.ts.map +1 -0
  71. package/dist/runtime/observers/MetricsObserver.js +110 -0
  72. package/dist/runtime/observers/MetricsObserver.js.map +1 -0
  73. package/dist/runtime/observers/ObserverBus.d.ts +49 -0
  74. package/dist/runtime/observers/ObserverBus.d.ts.map +1 -0
  75. package/dist/runtime/observers/ObserverBus.js +160 -0
  76. package/dist/runtime/observers/ObserverBus.js.map +1 -0
  77. package/dist/runtime/observers/TraceObserver.d.ts +36 -0
  78. package/dist/runtime/observers/TraceObserver.d.ts.map +1 -0
  79. package/dist/runtime/observers/TraceObserver.js +78 -0
  80. package/dist/runtime/observers/TraceObserver.js.map +1 -0
  81. package/dist/runtime/observers/composeObservers.d.ts +10 -0
  82. package/dist/runtime/observers/composeObservers.d.ts.map +1 -0
  83. package/dist/runtime/observers/composeObservers.js +30 -0
  84. package/dist/runtime/observers/composeObservers.js.map +1 -0
  85. package/dist/runtime/observers/index.d.ts +7 -0
  86. package/dist/runtime/observers/index.d.ts.map +1 -0
  87. package/dist/runtime/observers/index.js +7 -0
  88. package/dist/runtime/observers/index.js.map +1 -0
  89. package/dist/runtime/observers/resolve.d.ts +3 -0
  90. package/dist/runtime/observers/resolve.d.ts.map +1 -0
  91. package/dist/runtime/observers/resolve.js +30 -0
  92. package/dist/runtime/observers/resolve.js.map +1 -0
  93. package/dist/runtime/observers/types.d.ts +113 -0
  94. package/dist/runtime/observers/types.d.ts.map +1 -0
  95. package/dist/runtime/observers/types.js +13 -0
  96. package/dist/runtime/observers/types.js.map +1 -0
  97. package/dist/runtime/recorder/Redactor.d.ts +19 -0
  98. package/dist/runtime/recorder/Redactor.d.ts.map +1 -0
  99. package/dist/runtime/recorder/Redactor.js +78 -0
  100. package/dist/runtime/recorder/Redactor.js.map +1 -0
  101. package/dist/runtime/recorder/RunRecorder.d.ts +73 -0
  102. package/dist/runtime/recorder/RunRecorder.d.ts.map +1 -0
  103. package/dist/runtime/recorder/RunRecorder.js +137 -0
  104. package/dist/runtime/recorder/RunRecorder.js.map +1 -0
  105. package/dist/runtime/recorder/index.d.ts +8 -0
  106. package/dist/runtime/recorder/index.d.ts.map +1 -0
  107. package/dist/runtime/recorder/index.js +8 -0
  108. package/dist/runtime/recorder/index.js.map +1 -0
  109. package/dist/runtime/recorder/recorderObserver.d.ts +4 -0
  110. package/dist/runtime/recorder/recorderObserver.d.ts.map +1 -0
  111. package/dist/runtime/recorder/recorderObserver.js +63 -0
  112. package/dist/runtime/recorder/recorderObserver.js.map +1 -0
  113. package/dist/runtime/recorder/retention.d.ts +15 -0
  114. package/dist/runtime/recorder/retention.d.ts.map +1 -0
  115. package/dist/runtime/recorder/retention.js +105 -0
  116. package/dist/runtime/recorder/retention.js.map +1 -0
  117. package/dist/session/taskContract.d.ts +2 -2
  118. package/dist/shared/events.d.ts +40 -2
  119. package/dist/shared/events.d.ts.map +1 -1
  120. package/dist/shared/events.js.map +1 -1
  121. package/package.json +5 -1
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Context Engine v2 — per-agent context policy (Frontier Runtime Upgrade §50–51).
3
+ *
4
+ * The full run record (session spine) is the durable truth; what each agent
5
+ * *sees* is a projection governed by one of these policies. Role defaults
6
+ * mirror the plan: lead sees recent history + graph + verification; explore
7
+ * gets summaries; verify gets diff/evidence-oriented context.
8
+ *
9
+ * Pure data — no IO, no LLM. The projector (ContextProjector.ts) consumes it.
10
+ *
11
+ * @since v2.11.0
12
+ */
13
+ /** How much of prior history an agent receives. */
14
+ export type ContextHistoryMode = 'full' | 'recent' | 'summary' | 'none';
15
+ /** How tool results are rendered inside the projection. */
16
+ export type ContextToolResultsMode = 'full' | 'projected' | 'summary-only';
17
+ export interface AgentContextPolicy {
18
+ history: ContextHistoryMode;
19
+ /** Include the parent agent's delegation summary (tentacles). */
20
+ includeParentSummary: boolean;
21
+ /** Include durable state blocks (.zelari/state — verified knowledge). */
22
+ includeDurableState: boolean;
23
+ /** Include Kraken graph state. */
24
+ includeGraphState: boolean;
25
+ /** Include verification/completion state. */
26
+ includeVerificationState: boolean;
27
+ toolResults: ContextToolResultsMode;
28
+ /** Soft cap (estimated tokens, chars/4) for the projected prompt. */
29
+ maxPromptTokens?: number;
30
+ /** Per-result inline cap in chars (projected mode). Default 12_000. */
31
+ maxToolResultChars?: number;
32
+ /** Recent-window size in turn units (recent/summary modes). Default 20. */
33
+ maxHistoryTurns?: number;
34
+ }
35
+ /** §51 — Kraken lead: recent history, graph + verification state. */
36
+ export declare const KRAKEN_LEAD_POLICY: AgentContextPolicy;
37
+ /** §51 — Explore: summaries, no graph/verification, no peer transcripts. */
38
+ export declare const KRAKEN_EXPLORE_POLICY: AgentContextPolicy;
39
+ /** §51 — General: summaries + graph awareness. */
40
+ export declare const KRAKEN_GENERAL_POLICY: AgentContextPolicy;
41
+ /** §51 — Verify: goal/diff/evidence oriented; no durable state. */
42
+ export declare const KRAKEN_VERIFY_POLICY: AgentContextPolicy;
43
+ /** Neutral default for roles without a dedicated policy. */
44
+ export declare const DEFAULT_CONTEXT_POLICY: AgentContextPolicy;
45
+ /** Resolve the context policy for a runtime agent role. */
46
+ export declare function contextPolicyForRole(role: string): AgentContextPolicy;
47
+ export declare const CONTEXT_POLICY_VERSION = 1;
48
+ //# sourceMappingURL=ContextPolicy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextPolicy.d.ts","sourceRoot":"","sources":["../../src/context/ContextPolicy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,mDAAmD;AACnD,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAExE,2DAA2D;AAC3D,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,WAAW,GAAG,cAAc,CAAC;AAE3E,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,iEAAiE;IACjE,oBAAoB,EAAE,OAAO,CAAC;IAC9B,yEAAyE;IACzE,mBAAmB,EAAE,OAAO,CAAC;IAC7B,kCAAkC;IAClC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,6CAA6C;IAC7C,wBAAwB,EAAE,OAAO,CAAC;IAClC,WAAW,EAAE,sBAAsB,CAAC;IACpC,qEAAqE;IACrE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uEAAuE;IACvE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,2EAA2E;IAC3E,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,qEAAqE;AACrE,eAAO,MAAM,kBAAkB,EAAE,kBAOhC,CAAC;AAEF,4EAA4E;AAC5E,eAAO,MAAM,qBAAqB,EAAE,kBAOnC,CAAC;AAEF,kDAAkD;AAClD,eAAO,MAAM,qBAAqB,EAAE,kBAOnC,CAAC;AAEF,mEAAmE;AACnE,eAAO,MAAM,oBAAoB,EAAE,kBAOlC,CAAC;AAEF,4DAA4D;AAC5D,eAAO,MAAM,sBAAsB,EAAE,kBAOpC,CAAC;AAWF,2DAA2D;AAC3D,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAErE;AAED,eAAO,MAAM,sBAAsB,IAAI,CAAC"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Context Engine v2 — per-agent context policy (Frontier Runtime Upgrade §50–51).
3
+ *
4
+ * The full run record (session spine) is the durable truth; what each agent
5
+ * *sees* is a projection governed by one of these policies. Role defaults
6
+ * mirror the plan: lead sees recent history + graph + verification; explore
7
+ * gets summaries; verify gets diff/evidence-oriented context.
8
+ *
9
+ * Pure data — no IO, no LLM. The projector (ContextProjector.ts) consumes it.
10
+ *
11
+ * @since v2.11.0
12
+ */
13
+ /** §51 — Kraken lead: recent history, graph + verification state. */
14
+ export const KRAKEN_LEAD_POLICY = {
15
+ history: 'recent',
16
+ includeParentSummary: false,
17
+ includeDurableState: true,
18
+ includeGraphState: true,
19
+ includeVerificationState: true,
20
+ toolResults: 'projected',
21
+ };
22
+ /** §51 — Explore: summaries, no graph/verification, no peer transcripts. */
23
+ export const KRAKEN_EXPLORE_POLICY = {
24
+ history: 'summary',
25
+ includeParentSummary: true,
26
+ includeDurableState: true,
27
+ includeGraphState: false,
28
+ includeVerificationState: false,
29
+ toolResults: 'projected',
30
+ };
31
+ /** §51 — General: summaries + graph awareness. */
32
+ export const KRAKEN_GENERAL_POLICY = {
33
+ history: 'summary',
34
+ includeParentSummary: true,
35
+ includeDurableState: true,
36
+ includeGraphState: true,
37
+ includeVerificationState: false,
38
+ toolResults: 'projected',
39
+ };
40
+ /** §51 — Verify: goal/diff/evidence oriented; no durable state. */
41
+ export const KRAKEN_VERIFY_POLICY = {
42
+ history: 'summary',
43
+ includeParentSummary: true,
44
+ includeDurableState: false,
45
+ includeGraphState: true,
46
+ includeVerificationState: true,
47
+ toolResults: 'projected',
48
+ };
49
+ /** Neutral default for roles without a dedicated policy. */
50
+ export const DEFAULT_CONTEXT_POLICY = {
51
+ history: 'recent',
52
+ includeParentSummary: false,
53
+ includeDurableState: false,
54
+ includeGraphState: false,
55
+ includeVerificationState: false,
56
+ toolResults: 'projected',
57
+ };
58
+ const ROLE_POLICIES = {
59
+ lead: KRAKEN_LEAD_POLICY,
60
+ explore: KRAKEN_EXPLORE_POLICY,
61
+ general: KRAKEN_GENERAL_POLICY,
62
+ verify: KRAKEN_VERIFY_POLICY,
63
+ council: DEFAULT_CONTEXT_POLICY,
64
+ mission: DEFAULT_CONTEXT_POLICY,
65
+ };
66
+ /** Resolve the context policy for a runtime agent role. */
67
+ export function contextPolicyForRole(role) {
68
+ return ROLE_POLICIES[role] ?? DEFAULT_CONTEXT_POLICY;
69
+ }
70
+ export const CONTEXT_POLICY_VERSION = 1;
71
+ //# sourceMappingURL=ContextPolicy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextPolicy.js","sourceRoot":"","sources":["../../src/context/ContextPolicy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA2BH,qEAAqE;AACrE,MAAM,CAAC,MAAM,kBAAkB,GAAuB;IACpD,OAAO,EAAE,QAAQ;IACjB,oBAAoB,EAAE,KAAK;IAC3B,mBAAmB,EAAE,IAAI;IACzB,iBAAiB,EAAE,IAAI;IACvB,wBAAwB,EAAE,IAAI;IAC9B,WAAW,EAAE,WAAW;CACzB,CAAC;AAEF,4EAA4E;AAC5E,MAAM,CAAC,MAAM,qBAAqB,GAAuB;IACvD,OAAO,EAAE,SAAS;IAClB,oBAAoB,EAAE,IAAI;IAC1B,mBAAmB,EAAE,IAAI;IACzB,iBAAiB,EAAE,KAAK;IACxB,wBAAwB,EAAE,KAAK;IAC/B,WAAW,EAAE,WAAW;CACzB,CAAC;AAEF,kDAAkD;AAClD,MAAM,CAAC,MAAM,qBAAqB,GAAuB;IACvD,OAAO,EAAE,SAAS;IAClB,oBAAoB,EAAE,IAAI;IAC1B,mBAAmB,EAAE,IAAI;IACzB,iBAAiB,EAAE,IAAI;IACvB,wBAAwB,EAAE,KAAK;IAC/B,WAAW,EAAE,WAAW;CACzB,CAAC;AAEF,mEAAmE;AACnE,MAAM,CAAC,MAAM,oBAAoB,GAAuB;IACtD,OAAO,EAAE,SAAS;IAClB,oBAAoB,EAAE,IAAI;IAC1B,mBAAmB,EAAE,KAAK;IAC1B,iBAAiB,EAAE,IAAI;IACvB,wBAAwB,EAAE,IAAI;IAC9B,WAAW,EAAE,WAAW;CACzB,CAAC;AAEF,4DAA4D;AAC5D,MAAM,CAAC,MAAM,sBAAsB,GAAuB;IACxD,OAAO,EAAE,QAAQ;IACjB,oBAAoB,EAAE,KAAK;IAC3B,mBAAmB,EAAE,KAAK;IAC1B,iBAAiB,EAAE,KAAK;IACxB,wBAAwB,EAAE,KAAK;IAC/B,WAAW,EAAE,WAAW;CACzB,CAAC;AAEF,MAAM,aAAa,GAAuC;IACxD,IAAI,EAAE,kBAAkB;IACxB,OAAO,EAAE,qBAAqB;IAC9B,OAAO,EAAE,qBAAqB;IAC9B,MAAM,EAAE,oBAAoB;IAC5B,OAAO,EAAE,sBAAsB;IAC/B,OAAO,EAAE,sBAAsB;CAChC,CAAC;AAEF,2DAA2D;AAC3D,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Context Engine v2 — pure projection (Frontier Runtime Upgrade §52–53).
3
+ *
4
+ * projectContext() derives the message list an agent sends to its provider
5
+ * from the full transcript, according to an AgentContextPolicy. It NEVER
6
+ * mutates the input and performs no IO — enforcement budgets live in the CLI
7
+ * layer; this module only selects and shapes.
8
+ *
9
+ * Core invariant: an assistant message carrying `toolCalls` is always emitted
10
+ * together with its tool results (whole turn units are kept or dropped), so
11
+ * providers never see an orphaned tool message (HTTP 400 on DeepSeek/GLM).
12
+ *
13
+ * 'summary' history mode here is a deterministic digest (no LLM): durable
14
+ * LLM compaction remains the CLI's llmCompact path.
15
+ *
16
+ * @since v2.11.0
17
+ */
18
+ import type { AgentMessage } from '../core/AgentHarness.js';
19
+ import type { AgentContextPolicy } from './ContextPolicy.js';
20
+ export interface ProjectedContext {
21
+ messages: AgentMessage[];
22
+ stats: {
23
+ estimatedTokens: number;
24
+ includedMessages: number;
25
+ omittedMessages: number;
26
+ truncatedToolResults: number;
27
+ digest: boolean;
28
+ };
29
+ }
30
+ /** A turn unit: one assistant(+toolCalls) with its tool results, or one standalone message. */
31
+ interface TurnUnit {
32
+ messages: AgentMessage[];
33
+ kind: 'user' | 'assistant' | 'orphan-tool' | 'other';
34
+ }
35
+ /** Deterministic one-line-per-unit digest of history units (no LLM). */
36
+ export declare function renderHistoryDigest(units: TurnUnit[]): string;
37
+ /**
38
+ * Project a full transcript into the context a single agent should see.
39
+ * System messages and the current user instruction (plus anything after it)
40
+ * are always preserved verbatim.
41
+ */
42
+ export declare function projectContext(transcript: AgentMessage[], policy: AgentContextPolicy): ProjectedContext;
43
+ export {};
44
+ //# sourceMappingURL=ContextProjector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextProjector.d.ts","sourceRoot":"","sources":["../../src/context/ContextProjector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,KAAK,EAAE;QACL,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,EAAE,MAAM,CAAC;QACzB,eAAe,EAAE,MAAM,CAAC;QACxB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC;CACH;AAED,+FAA+F;AAC/F,UAAU,QAAQ;IAChB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,aAAa,GAAG,OAAO,CAAC;CACtD;AAsCD,wEAAwE;AACxE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAc7D;AA6CD;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,YAAY,EAAE,EAC1B,MAAM,EAAE,kBAAkB,GACzB,gBAAgB,CA2DlB"}
@@ -0,0 +1,156 @@
1
+ const DEFAULT_MAX_TOOL_RESULT_CHARS = 12_000;
2
+ const DEFAULT_MAX_HISTORY_TURNS = 20;
3
+ const TRUNCATION_MARKER = '\n[…tool output truncated by context projection…]\n';
4
+ const HEAD_TAIL_MIN = 200;
5
+ function groupTurnUnits(history) {
6
+ const units = [];
7
+ let i = 0;
8
+ while (i < history.length) {
9
+ const msg = history[i];
10
+ if (msg.role === 'assistant') {
11
+ const unit = [msg];
12
+ i++;
13
+ // Attach following tool results (and continuation assistants of same turn).
14
+ while (i < history.length && history[i].role === 'tool') {
15
+ unit.push(history[i]);
16
+ i++;
17
+ }
18
+ units.push({ messages: unit, kind: 'assistant' });
19
+ }
20
+ else if (msg.role === 'tool') {
21
+ // Orphan tool result (assistant already dropped): keep as its own unit.
22
+ units.push({ messages: [msg], kind: 'orphan-tool' });
23
+ i++;
24
+ }
25
+ else {
26
+ units.push({ messages: [msg], kind: msg.role === 'user' ? 'user' : 'other' });
27
+ i++;
28
+ }
29
+ }
30
+ return units;
31
+ }
32
+ function firstLine(text, max) {
33
+ const line = text.split('\n', 1)[0] ?? '';
34
+ return line.length > max ? `${line.slice(0, max)}…` : line;
35
+ }
36
+ /** Deterministic one-line-per-unit digest of history units (no LLM). */
37
+ export function renderHistoryDigest(units) {
38
+ const lines = units.map((unit) => {
39
+ const head = unit.messages[0];
40
+ if (unit.kind === 'user')
41
+ return `- user: ${firstLine(head.content, 120)}`;
42
+ if (unit.kind === 'assistant') {
43
+ const tools = head.toolCalls?.map((t) => t.name).join(', ');
44
+ return tools
45
+ ? `- assistant (tools: ${tools})`
46
+ : `- assistant: ${firstLine(head.content, 120)}`;
47
+ }
48
+ if (unit.kind === 'orphan-tool')
49
+ return `- tool result ${head.toolCallId ?? '?'}: omitted`;
50
+ return `- ${head.role}: ${firstLine(head.content, 120)}`;
51
+ });
52
+ return `[Context digest — earlier turns omitted]\n${lines.join('\n')}`;
53
+ }
54
+ function truncateProjected(content, maxChars) {
55
+ if (content.length <= maxChars)
56
+ return content;
57
+ const markerLen = TRUNCATION_MARKER.length;
58
+ const budget = Math.max(maxChars - markerLen, HEAD_TAIL_MIN * 2);
59
+ const head = Math.floor(budget / 2);
60
+ const tail = budget - head;
61
+ return `${content.slice(0, head)}${TRUNCATION_MARKER}${content.slice(-tail)}`;
62
+ }
63
+ function summarizeToolResult(content) {
64
+ const line = firstLine(content, 200);
65
+ return `[tool result — ${content.length} chars, first line] ${line}`;
66
+ }
67
+ function applyToolResultPolicy(messages, policy) {
68
+ if (policy.toolResults === 'full')
69
+ return { messages, truncated: 0 };
70
+ const maxChars = policy.maxToolResultChars ?? DEFAULT_MAX_TOOL_RESULT_CHARS;
71
+ let truncated = 0;
72
+ const out = messages.map((msg) => {
73
+ if (msg.role !== 'tool')
74
+ return msg;
75
+ if (policy.toolResults === 'summary-only') {
76
+ truncated++;
77
+ return { ...msg, content: summarizeToolResult(msg.content) };
78
+ }
79
+ if (msg.content.length > maxChars)
80
+ truncated++;
81
+ return { ...msg, content: truncateProjected(msg.content, maxChars) };
82
+ });
83
+ return { messages: out, truncated };
84
+ }
85
+ function estimateTokens(messages) {
86
+ let chars = 0;
87
+ for (const m of messages) {
88
+ chars += m.content.length;
89
+ if (m.toolCalls)
90
+ chars += JSON.stringify(m.toolCalls).length;
91
+ if (m.reasoningContent)
92
+ chars += m.reasoningContent.length;
93
+ }
94
+ return Math.ceil(chars / 4);
95
+ }
96
+ /**
97
+ * Project a full transcript into the context a single agent should see.
98
+ * System messages and the current user instruction (plus anything after it)
99
+ * are always preserved verbatim.
100
+ */
101
+ export function projectContext(transcript, policy) {
102
+ const system = transcript.filter((m) => m.role === 'system');
103
+ const body = transcript.filter((m) => m.role !== 'system');
104
+ // Current instruction = last user message + everything after it.
105
+ let lastUserIdx = -1;
106
+ for (let i = body.length - 1; i >= 0; i--) {
107
+ if (body[i].role === 'user') {
108
+ lastUserIdx = i;
109
+ break;
110
+ }
111
+ }
112
+ const history = lastUserIdx >= 0 ? body.slice(0, lastUserIdx) : body.slice();
113
+ const tail = lastUserIdx >= 0 ? body.slice(lastUserIdx) : [];
114
+ const units = groupTurnUnits(history);
115
+ const maxTurns = policy.maxHistoryTurns ?? DEFAULT_MAX_HISTORY_TURNS;
116
+ let selected = [];
117
+ let digest = false;
118
+ let includedUnits = 0;
119
+ if (policy.history === 'full') {
120
+ selected = history.slice();
121
+ includedUnits = units.length;
122
+ }
123
+ else if (policy.history === 'recent') {
124
+ const keep = units.slice(-maxTurns);
125
+ includedUnits = keep.length;
126
+ selected = keep.flatMap((u) => u.messages);
127
+ }
128
+ else if (policy.history === 'summary') {
129
+ // Deterministic digest of everything + a small recent window.
130
+ const recentUnits = units.slice(-2);
131
+ includedUnits = recentUnits.length;
132
+ selected = recentUnits.flatMap((u) => u.messages);
133
+ if (units.length > recentUnits.length) {
134
+ digest = true;
135
+ selected.unshift({
136
+ role: 'user',
137
+ content: renderHistoryDigest(units.slice(0, units.length - recentUnits.length)),
138
+ });
139
+ }
140
+ }
141
+ // 'none': no history units at all.
142
+ const includedMessages = selected.length + tail.length + system.length;
143
+ const assembled = [...system, ...selected, ...tail];
144
+ const { messages, truncated } = applyToolResultPolicy(assembled, policy);
145
+ return {
146
+ messages,
147
+ stats: {
148
+ estimatedTokens: estimateTokens(messages),
149
+ includedMessages,
150
+ omittedMessages: Math.max(0, history.length - selected.length - (digest ? 1 : 0)),
151
+ truncatedToolResults: truncated,
152
+ digest,
153
+ },
154
+ };
155
+ }
156
+ //# sourceMappingURL=ContextProjector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextProjector.js","sourceRoot":"","sources":["../../src/context/ContextProjector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Context Engine v2 — public surface (Frontier Runtime Upgrade §46–66).
3
+ *
4
+ * Policy per agent role + pure projection from the durable transcript.
5
+ * RunRecord remains the session spine (ADR-0016); spill/compaction/token
6
+ * budget already exist in core tools / session / CLI budget respectively.
7
+ */
8
+ export * from './ContextPolicy.js';
9
+ export * from './ContextProjector.js';
10
+ export * from './parentContext.js';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Context Engine v2 — public surface (Frontier Runtime Upgrade §46–66).
3
+ *
4
+ * Policy per agent role + pure projection from the durable transcript.
5
+ * RunRecord remains the session spine (ADR-0016); spill/compaction/token
6
+ * budget already exist in core tools / session / CLI budget respectively.
7
+ */
8
+ export * from './ContextPolicy.js';
9
+ export * from './ContextProjector.js';
10
+ export * from './parentContext.js';
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Context Engine v2 — parent context for tentacles (Frontier Runtime Upgrade §51).
3
+ *
4
+ * A Kraken tentacle never receives the lead's full transcript. When the
5
+ * orchestrator has parent messages available, `parentContextForRole()`
6
+ * renders the projected summary the role's policy allows:
7
+ *
8
+ * - explore / general / verify → `includeParentSummary: true` → compact
9
+ * deterministic digest (summary history + summary-only tool results)
10
+ * - lead / roles with the flag off → `null` (no block)
11
+ *
12
+ * The block is meant to be PREPENDED to the tentacle's user prompt. It is
13
+ * pure: no mutation, no IO, no LLM.
14
+ *
15
+ * @since v2.11.0
16
+ */
17
+ import type { AgentMessage } from '../core/AgentHarness.js';
18
+ export interface ParentContextBlock {
19
+ /** Rendered markdown block to prepend to the tentacle user prompt. */
20
+ block: string;
21
+ stats: {
22
+ /** Estimated tokens of the rendered block. */
23
+ estimatedTokens: number;
24
+ /** Parent messages the projection considered (non-system). */
25
+ sourceMessages: number;
26
+ /** Whether a digest of dropped units was included. */
27
+ digest: boolean;
28
+ };
29
+ }
30
+ /**
31
+ * Build the parent-context block a tentacle of `role` may receive, or `null`
32
+ * when the role's policy excludes parent summaries (lead) or there is nothing
33
+ * to summarize. System messages are never leaked (the tentacle has its own
34
+ * persona prompt); tool results are always summarized, never full.
35
+ */
36
+ export declare function parentContextForRole(role: string, transcript: readonly AgentMessage[], opts?: {
37
+ maxBlockChars?: number;
38
+ }): ParentContextBlock | null;
39
+ //# sourceMappingURL=parentContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parentContext.d.ts","sourceRoot":"","sources":["../../src/context/parentContext.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAI5D,MAAM,WAAW,kBAAkB;IACjC,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE;QACL,8CAA8C;QAC9C,eAAe,EAAE,MAAM,CAAC;QACxB,8DAA8D;QAC9D,cAAc,EAAE,MAAM,CAAC;QACvB,sDAAsD;QACtD,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC;CACH;AAyBD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,SAAS,YAAY,EAAE,EACnC,IAAI,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,GAChC,kBAAkB,GAAG,IAAI,CAsC3B"}
@@ -0,0 +1,67 @@
1
+ import { contextPolicyForRole } from './ContextPolicy.js';
2
+ import { projectContext } from './ContextProjector.js';
3
+ const DEFAULT_MAX_BLOCK_CHARS = 6_000;
4
+ const TRUNCATION_TAIL = '\n[…parent context truncated to fit the role budget…]';
5
+ function renderCompact(m) {
6
+ if (m.role === 'user') {
7
+ const text = m.content.trim();
8
+ return text ? `user — ${text}` : null;
9
+ }
10
+ if (m.role === 'assistant') {
11
+ const tools = m.toolCalls?.length
12
+ ? ` (requested: ${m.toolCalls.map((t) => t.name).join(', ')})`
13
+ : '';
14
+ const text = m.content.trim();
15
+ return text ? `assistant${tools} — ${text}` : tools ? `assistant${tools}` : null;
16
+ }
17
+ if (m.role === 'tool') {
18
+ const text = m.content.trim();
19
+ return text ? `tool result — ${text}` : null;
20
+ }
21
+ const text = m.content.trim();
22
+ return text ? `${m.role} — ${text}` : null;
23
+ }
24
+ /**
25
+ * Build the parent-context block a tentacle of `role` may receive, or `null`
26
+ * when the role's policy excludes parent summaries (lead) or there is nothing
27
+ * to summarize. System messages are never leaked (the tentacle has its own
28
+ * persona prompt); tool results are always summarized, never full.
29
+ */
30
+ export function parentContextForRole(role, transcript, opts) {
31
+ const policy = contextPolicyForRole(role);
32
+ const body = transcript.filter((m) => m.role !== 'system');
33
+ if (!policy.includeParentSummary || body.length === 0)
34
+ return null;
35
+ const projected = projectContext([...body], {
36
+ ...policy,
37
+ history: 'summary',
38
+ toolResults: 'summary-only',
39
+ });
40
+ const lines = [];
41
+ for (const m of projected.messages) {
42
+ const line = renderCompact(m);
43
+ if (line)
44
+ lines.push(line);
45
+ }
46
+ if (lines.length === 0)
47
+ return null;
48
+ const maxChars = opts?.maxBlockChars ?? DEFAULT_MAX_BLOCK_CHARS;
49
+ let body_ = lines.join('\n');
50
+ let truncated = false;
51
+ if (body_.length > maxChars) {
52
+ body_ = body_.slice(0, maxChars) + TRUNCATION_TAIL;
53
+ truncated = true;
54
+ }
55
+ const header = truncated
56
+ ? '[Parent agent context — projected summary, full transcript not shared]'
57
+ : '[Parent agent context — projected summary]';
58
+ return {
59
+ block: `---\n${header}\n\n${body_}\n---`,
60
+ stats: {
61
+ estimatedTokens: Math.ceil(body_.length / 4),
62
+ sourceMessages: body.length,
63
+ digest: projected.stats.digest,
64
+ },
65
+ };
66
+ }
67
+ //# sourceMappingURL=parentContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parentContext.js","sourceRoot":"","sources":["../../src/context/parentContext.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,8 @@ import { type BrainEvent, type UsageBreakdown } from '../shared/events.js';
22
22
  import { ToolRegistry } from './tools/registry.js';
23
23
  import { type RoutedRequestSnapshot, type ProviderGenerationOptions } from './requestSnapshot.js';
24
24
  import type { MemoryService } from '../memory/types.js';
25
+ import type { ObserverDescriptor } from '../runtime/observers/types.js';
26
+ import type { RuntimeControlQueue } from '../runtime/controls/RuntimeControlQueue.js';
25
27
  export { collapseLoopedAssistantText, detectAssistantTextLoop, detectAssistantTextLoopWindow, normalizeLoopUnit, isStatusTheaterUnit, TEXT_LOOP_RECOVERY_SYSTEM, TEXT_LOOP_RECOVERY_USER_PROMPT, type TextLoopHit, } from './textLoopDetect.js';
26
28
  /** Inline image sent to vision-capable providers (raw base64, no data: prefix). */
27
29
  export interface AgentImage {
@@ -219,6 +221,22 @@ export interface AgentHarnessConfig {
219
221
  memoryQuery?: string;
220
222
  /** Hard character budget for the ephemeral memory block. Default 2,000. */
221
223
  memoryContextChars?: number;
224
+ /**
225
+ * Frontier PHASE 1 (opt-in): in-process observers consulted by the loop
226
+ * (deny_tool / cooperative stop / inject). Explicit descriptors always
227
+ * run; when omitted, the default bus only builds while
228
+ * ZELARI_RUNTIME_OBSERVERS is enabled — otherwise zero observer overhead.
229
+ */
230
+ observers?: ObserverDescriptor[];
231
+ /**
232
+ * Frontier PHASE 2 (opt-in): live steering queue. When provided, a
233
+ * SteeringObserver joins the observer bus (priority 20) even with the
234
+ * ZELARI_RUNTIME_OBSERVERS flag off — an explicit queue is itself an
235
+ * opt-in. Steers drain at each safe turn boundary and are injected as a
236
+ * user message for the next provider call; the in-flight request is never
237
+ * interrupted.
238
+ */
239
+ controlQueue?: RuntimeControlQueue;
222
240
  }
223
241
  export type ProviderStreamFn = (params: {
224
242
  messages: AgentMessage[];
@@ -288,6 +306,14 @@ export declare class AgentHarness {
288
306
  * model must change approach instead of soft-replaying forever.
289
307
  */
290
308
  private toolCallCounts;
309
+ /**
310
+ * Frontier PHASE 1: observer bus, or `null` when observers are off. Every
311
+ * hook site guards on `this.observerBus` so the off-path stays identical
312
+ * to the pre-observer loop.
313
+ */
314
+ private readonly observerBus;
315
+ /** Coarse turn counter attached to observer events (per run, 0-based). */
316
+ private observerTurn;
291
317
  /**
292
318
  * How many times this run re-entered the provider because the model emitted
293
319
  * tool calls as a `---TOOLS---` text block (fallback format) instead of native
@@ -350,6 +376,18 @@ export declare class AgentHarness {
350
376
  * Degrade-and-stop — a throwing gate NEVER blocks a tool call.
351
377
  */
352
378
  private checkToolCallGate;
379
+ /** Base fields shared by every observer event this harness emits. */
380
+ private observerEventBase;
381
+ /**
382
+ * Frontier PHASE 1: observer pre-dispatch gate, consulted after the host
383
+ * resource gate on EVERY registry dispatch (native + text paths).
384
+ * `deny_tool` blocks the call with a model-visible reason; `stop` is a
385
+ * cooperative cancel (agent_end reason 'cancelled'); `inject` appends a
386
+ * user/system message at the next safe boundary (the in-flight provider
387
+ * request is never mutated). `retry`/`replace` are not yet honored at
388
+ * this hook and fall through as continue.
389
+ */
390
+ private checkObserverToolGate;
353
391
  private executePendingTools;
354
392
  /**
355
393
  * Cancel the in-flight run. Events drain until end of stream.
@@ -1 +1 @@
1
- {"version":3,"file":"AgentHarness.d.ts","sourceRoot":"","sources":["../../src/core/AgentHarness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentHarness.d.ts","sourceRoot":"","sources":["../../src/core/AgentHarness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAEL,KAAK,UAAU,EASf,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAUnD,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC/B,MAAM,sBAAsB,CAAC;AAQ9B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EACV,kBAAkB,EAEnB,MAAM,+BAA+B,CAAC;AAKvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AAEtF,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,EACvB,6BAA6B,EAC7B,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,EACzB,8BAA8B,EAC9B,KAAK,WAAW,GACjB,MAAM,qBAAqB,CAAC;AAI7B,mFAAmF;AACnF,MAAM,WAAW,UAAU;IACzB,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;IACtB,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,SAAS,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,EAAE,CAAC;IAC1E;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,sEAAsE;AACtE,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,wEAAwE;IACxE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,8BAA8B,QAI2B,CAAC;AAEvE,MAAM,WAAW,kBAAkB;IACjC,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,mDAAmD;IACnD,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,cAAc,EAAE,gBAAgB,CAAC;IACjC;;;OAGG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,iFAAiF;IACjF,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,SAAS,YAAY,EAAE,CAAC;IAC5C,kEAAkE;IAClE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;;;;;;;;;;;;;OAgBG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;OAKG;IACH;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,CACb,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC1B;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;;;;;OASG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,qBAAqB,EAAE,UAAU,CAAC,EAAE,yBAAyB,KAAK,IAAI,CAAC;IACtG;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACjC;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE;IACtC,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,yEAAyE;IACzE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,yBAAyB,CAAC;CACxC,KAAK,aAAa,CAAC,aAAa,CAAC,CAAC;AAEnC,oEAAoE;AACpE,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAC1F;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AACpC;;iEAEiE;GAC/D;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,cAAc,CAAA;CAAE,CAAC;AAI7C,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAChD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAS;IAC/C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;IAC5C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,gBAAgB,CAAgC;IACxD,OAAO,CAAC,KAAK,CAAgB;IAC7B;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa,CAAkC;IACvD;;;;OAIG;IACH,OAAO,CAAC,cAAc,CAAkC;IAExD;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,0EAA0E;IAC1E,OAAO,CAAC,YAAY,CAAK;IAEzB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB,CAAK;IAE9B,sEAAsE;IACtE,OAAO,CAAC,MAAM,CAAiD;IAC/D,sEAAsE;IACtE,OAAO,CAAC,mBAAmB,CAAM;IACjC,OAAO,CAAC,aAAa,CAMnB;gBAEU,MAAM,EAAE,kBAAkB;IA2BtC;;;;;;;;;;;;;;;;OAgBG;IACH,WAAW,IAAI,SAAS,YAAY,EAAE;IAItC,uEAAuE;IACvE,gBAAgB,IAAI,QAAQ,CAAC,aAAa,CAAC;IAI3C,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,oBAAoB;IAM5B;;;;;;;OAOG;IACH,OAAO,CAAC,YAAY;IAOpB;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;;;OAIG;IACH;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAYzB,qEAAqE;IACrE,OAAO,CAAC,iBAAiB;IAgBzB;;;;;;;;OAQG;YACW,qBAAqB;YAgCrB,mBAAmB;IAyMjC;;;;;;;;;;;;OAYG;IACH,MAAM,IAAI,IAAI;IAMd,qDAAqD;IACrD,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAQ/B;;;;OAIG;IACH,WAAW,IAAI,MAAM,GAAG,IAAI;IAS5B;;;;OAIG;IACI,GAAG,IAAI,aAAa,CAAC,UAAU,CAAC;YA+WzB,oBAAoB;IAuBlC,6EAA6E;IAC7E,OAAO,CAAC,mBAAmB;IAuB3B;;;OAGG;IACH,OAAO,CAAC,YAAY;IAqBpB;;;;;;;;;;;;;;OAcG;YACY,aAAa;IA0f5B,OAAO,CAAC,IAAI;IAUZ;;;;;;;;;;;OAWG;YACY,kBAAkB;CA+ElC;AAED;;;;GAIG;AACH,oFAAoF;AACpF,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAGpE;AAgBD;;;;;;;GAOG;AACH,oEAAoE;AACpE,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAazB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,GACX;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,EAAE,CA4CnD;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,MAAM,GACX;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,EAAE,CA+CnD"}