agent-nuvira 3.2.0 → 3.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/code-assessment/SKILL.md +10 -1
- package/.agents/skills/index.json +1 -1
- package/README.md +42 -1
- package/dist/agents/agents/writer.d.ts.map +1 -1
- package/dist/agents/agents/writer.js +7 -1
- package/dist/agents/agents/writer.js.map +1 -1
- package/dist/cli/chat.d.ts +6 -0
- package/dist/cli/chat.d.ts.map +1 -1
- package/dist/cli/chat.js +45 -1
- package/dist/cli/chat.js.map +1 -1
- package/dist/cli/cli-program.d.ts.map +1 -1
- package/dist/cli/cli-program.js +6 -2
- package/dist/cli/cli-program.js.map +1 -1
- package/dist/cli/commands.d.ts +2 -1
- package/dist/cli/commands.d.ts.map +1 -1
- package/dist/cli/commands.js +3 -2
- package/dist/cli/commands.js.map +1 -1
- package/dist/cli/config.js +2 -2
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/dashboard.d.ts +26 -0
- package/dist/cli/dashboard.d.ts.map +1 -1
- package/dist/cli/dashboard.js +123 -3
- package/dist/cli/dashboard.js.map +1 -1
- package/dist/cli/execute.d.ts.map +1 -1
- package/dist/cli/execute.js +48 -3
- package/dist/cli/execute.js.map +1 -1
- package/dist/cli/intent.d.ts +1 -1
- package/dist/cli/intent.js +2 -2
- package/dist/cli/intent.js.map +1 -1
- package/dist/cli/loop-executor.d.ts +24 -0
- package/dist/cli/loop-executor.d.ts.map +1 -1
- package/dist/cli/loop-executor.js +161 -1
- package/dist/cli/loop-executor.js.map +1 -1
- package/dist/cli/process-control.d.ts +15 -0
- package/dist/cli/process-control.d.ts.map +1 -1
- package/dist/cli/process-control.js +38 -14
- package/dist/cli/process-control.js.map +1 -1
- package/dist/cli/trace.d.ts +19 -0
- package/dist/cli/trace.d.ts.map +1 -1
- package/dist/cli/trace.js +82 -2
- package/dist/cli/trace.js.map +1 -1
- package/dist/forwarded.d.ts +2 -0
- package/dist/forwarded.d.ts.map +1 -0
- package/dist/forwarded.js +2 -0
- package/dist/forwarded.js.map +1 -0
- package/dist/gateway/registry.d.ts.map +1 -1
- package/dist/gateway/registry.js +22 -3
- package/dist/gateway/registry.js.map +1 -1
- package/dist/inference/tool-call-utils.d.ts +54 -0
- package/dist/inference/tool-call-utils.d.ts.map +1 -1
- package/dist/inference/tool-call-utils.js +216 -4
- package/dist/inference/tool-call-utils.js.map +1 -1
- package/dist/learning/autonomy-policy.d.ts +42 -0
- package/dist/learning/autonomy-policy.d.ts.map +1 -1
- package/dist/learning/autonomy-policy.js +115 -19
- package/dist/learning/autonomy-policy.js.map +1 -1
- package/dist/learning/cost-tracker.d.ts +14 -0
- package/dist/learning/cost-tracker.d.ts.map +1 -1
- package/dist/learning/cost-tracker.js +22 -0
- package/dist/learning/cost-tracker.js.map +1 -1
- package/dist/learning/deliverable-class.d.ts +48 -0
- package/dist/learning/deliverable-class.d.ts.map +1 -1
- package/dist/learning/deliverable-class.js +72 -0
- package/dist/learning/deliverable-class.js.map +1 -1
- package/dist/learning/engine-router.d.ts +12 -1
- package/dist/learning/engine-router.d.ts.map +1 -1
- package/dist/learning/engine-router.js +28 -0
- package/dist/learning/engine-router.js.map +1 -1
- package/dist/learning/eval-framework.d.ts +24 -0
- package/dist/learning/eval-framework.d.ts.map +1 -1
- package/dist/learning/eval-framework.js +291 -0
- package/dist/learning/eval-framework.js.map +1 -1
- package/dist/learning/intent-envelope.d.ts +162 -0
- package/dist/learning/intent-envelope.d.ts.map +1 -0
- package/dist/learning/intent-envelope.js +235 -0
- package/dist/learning/intent-envelope.js.map +1 -0
- package/dist/learning/long-form.d.ts.map +1 -1
- package/dist/learning/long-form.js +12 -1
- package/dist/learning/long-form.js.map +1 -1
- package/dist/learning/reasoning-trace.d.ts +89 -0
- package/dist/learning/reasoning-trace.d.ts.map +1 -1
- package/dist/learning/reasoning-trace.js +49 -0
- package/dist/learning/reasoning-trace.js.map +1 -1
- package/dist/learning/run-trace.d.ts +164 -0
- package/dist/learning/run-trace.d.ts.map +1 -0
- package/dist/learning/run-trace.js +342 -0
- package/dist/learning/run-trace.js.map +1 -0
- package/dist/learning/skill-store.d.ts.map +1 -1
- package/dist/learning/skill-store.js +5 -1
- package/dist/learning/skill-store.js.map +1 -1
- package/dist/learning/skill-types.d.ts +14 -0
- package/dist/learning/skill-types.d.ts.map +1 -1
- package/dist/learning/skill-types.js +19 -0
- package/dist/learning/skill-types.js.map +1 -1
- package/dist/learning/unattended-job.d.ts +57 -0
- package/dist/learning/unattended-job.d.ts.map +1 -1
- package/dist/learning/unattended-job.js +92 -0
- package/dist/learning/unattended-job.js.map +1 -1
- package/dist/nlu/conversation-gate.d.ts +9 -0
- package/dist/nlu/conversation-gate.d.ts.map +1 -1
- package/dist/nlu/conversation-gate.js +38 -17
- package/dist/nlu/conversation-gate.js.map +1 -1
- package/dist/resources/command-manifest.json +10 -10
- package/dist/skills/bundled-skills.d.ts.map +1 -1
- package/dist/skills/bundled-skills.js +13 -2
- package/dist/skills/bundled-skills.js.map +1 -1
- package/dist/tools/coding-tools.d.ts.map +1 -1
- package/dist/tools/coding-tools.js +33 -8
- package/dist/tools/coding-tools.js.map +1 -1
- package/dist/tools/edit-verification.d.ts +95 -0
- package/dist/tools/edit-verification.d.ts.map +1 -1
- package/dist/tools/edit-verification.js +238 -16
- package/dist/tools/edit-verification.js.map +1 -1
- package/dist/tools/registry.d.ts +31 -2
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +44 -5
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/run-cli.d.ts.map +1 -1
- package/dist/tools/run-cli.js +15 -2
- package/dist/tools/run-cli.js.map +1 -1
- package/dist/tools/run-terminal.d.ts.map +1 -1
- package/dist/tools/run-terminal.js +23 -4
- package/dist/tools/run-terminal.js.map +1 -1
- package/dist/tools/skill-tool.d.ts.map +1 -1
- package/dist/tools/skill-tool.js +5 -0
- package/dist/tools/skill-tool.js.map +1 -1
- package/dist/tools/tool-loop.d.ts +102 -1
- package/dist/tools/tool-loop.d.ts.map +1 -1
- package/dist/tools/tool-loop.js +480 -13
- package/dist/tools/tool-loop.js.map +1 -1
- package/dist/web-dashboard/chat-console.d.ts +7 -0
- package/dist/web-dashboard/chat-console.d.ts.map +1 -1
- package/dist/web-dashboard/chat-console.js +41 -3
- package/dist/web-dashboard/chat-console.js.map +1 -1
- package/dist/web-dashboard/server.d.ts +46 -0
- package/dist/web-dashboard/server.d.ts.map +1 -1
- package/dist/web-dashboard/server.js +115 -1
- package/dist/web-dashboard/server.js.map +1 -1
- package/dist/web-dashboard/src/admin-auth.d.ts +49 -2
- package/dist/web-dashboard/src/admin-auth.d.ts.map +1 -1
- package/dist/web-dashboard/src/admin-auth.js +64 -3
- package/dist/web-dashboard/src/admin-auth.js.map +1 -1
- package/dist/web-dashboard/src/types.d.ts +41 -0
- package/dist/web-dashboard/src/types.d.ts.map +1 -1
- package/package.json +5 -2
- package/src/web-dashboard/public/assets/index-CjvoBhlz.js +207 -0
- package/src/web-dashboard/public/assets/index-CjvoBhlz.js.map +1 -0
- package/src/web-dashboard/public/index.html +1 -1
- package/src/web-dashboard/public/assets/index-kCUkORm7.js +0 -207
- package/src/web-dashboard/public/assets/index-kCUkORm7.js.map +0 -1
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Intent Envelope — authorization as a property of the INTENT, not of each
|
|
3
|
+
* individual action.
|
|
4
|
+
*
|
|
5
|
+
* WHY THIS EXISTS (the "permission every second" audit):
|
|
6
|
+
*
|
|
7
|
+
* Every confirmation-gated tool asked the same question — "has the user
|
|
8
|
+
* authorized this?" — and answered it by re-deriving a verdict from the LAST
|
|
9
|
+
* USER MESSAGE, once per turn (`writesAuthorized`). That design has two fatal
|
|
10
|
+
* properties at scale:
|
|
11
|
+
*
|
|
12
|
+
* 1. PERMISSION AT ACTION GRANULARITY. The number of human round trips is the
|
|
13
|
+
* number of state-changing operations. On a four-file calculator that is a
|
|
14
|
+
* handful; on a real codebase it is O(n) interruptions — the manual
|
|
15
|
+
* cadence, at scale. A permission that attaches to each keystroke is not
|
|
16
|
+
* safety; it is friction that merely LOOKS like diligence.
|
|
17
|
+
* 2. AUTHORIZATION IS NOT DURABLE. It evaporates at the turn boundary and is
|
|
18
|
+
* recomputed from whatever sentence the user typed last. So an approval
|
|
19
|
+
* that was given five minutes ago ("go ahead and fix it") is worth nothing
|
|
20
|
+
* on the next turn, and an unrelated word at the front of a message
|
|
21
|
+
* ("why are you asking me this again? Apply a safe expression parser by
|
|
22
|
+
* updating script.js") can flip the entire turn to UNAUTHORIZED — which is
|
|
23
|
+
* how a complaint about repeated questions made the agent ask MORE.
|
|
24
|
+
*
|
|
25
|
+
* The fix is the same one a good developer applies to a client relationship:
|
|
26
|
+
* agree the intent ONCE, then execute it. This module is that agreement as an
|
|
27
|
+
* object.
|
|
28
|
+
*
|
|
29
|
+
* WHAT IT IS: `{ goal, scope, grantedAt, expiresAt, source }`. It is granted by
|
|
30
|
+
* an explicit directive request, or — the path that matters most — by the user
|
|
31
|
+
* APPROVING THE AGENT'S PLAN. Inside the envelope, reversible work executes with
|
|
32
|
+
* no prompt. It is scoped (a tool set + optional path prefixes), it expires, and
|
|
33
|
+
* it NEVER covers the two classes that must stay the user's call: actions that
|
|
34
|
+
* leave this machine (`external`) and actions that irreversibly remove what
|
|
35
|
+
* exists (`destructive`). A plan approval is not a licence to publish, delete,
|
|
36
|
+
* or spend.
|
|
37
|
+
*
|
|
38
|
+
* WHERE IT LIVES: per CONVERSATION, not per turn — the envelope is stored
|
|
39
|
+
* against the session's plan store (the dashboard console keeps exactly one per
|
|
40
|
+
* session and re-injects it every turn), so it outlives the turn that granted
|
|
41
|
+
* it and dies with the conversation. A `WeakMap` key means the entry is
|
|
42
|
+
* collected with the session; nothing to clean up, nothing to leak.
|
|
43
|
+
*
|
|
44
|
+
* DELIBERATELY NOT HERE: any natural-language policy. The defect this replaces
|
|
45
|
+
* was prose regexes over the request (`^why` disabled authorization
|
|
46
|
+
* outright). Authorization is now decided from STRUCTURED state — a granted
|
|
47
|
+
* envelope and a change class — with prose used only to *present* the decision.
|
|
48
|
+
*/
|
|
49
|
+
import { type StateChangeClass } from './autonomy-policy.js';
|
|
50
|
+
/** What an envelope permits. */
|
|
51
|
+
export interface EnvelopeScope {
|
|
52
|
+
/**
|
|
53
|
+
* Workspace-relative path prefixes the envelope permits. EMPTY means the
|
|
54
|
+
* envelope covers the whole workspace — the right default when the user's
|
|
55
|
+
* request was project-wide ("fix the calculator"), and the reason a whole-file
|
|
56
|
+
* overwrite still needs its path to be NAMED (see `envelopeNamesPath`).
|
|
57
|
+
*/
|
|
58
|
+
paths: string[];
|
|
59
|
+
/** Tools the envelope permits. Empty means `DEFAULT_ENVELOPE_TOOLS`. */
|
|
60
|
+
tools: string[];
|
|
61
|
+
}
|
|
62
|
+
/** The approved intent — one grant, then execution. */
|
|
63
|
+
export interface IntentEnvelope {
|
|
64
|
+
/** The intent, in the user's words (trimmed for display). */
|
|
65
|
+
goal: string;
|
|
66
|
+
scope: EnvelopeScope;
|
|
67
|
+
grantedAt: number;
|
|
68
|
+
/** Absolute epoch ms. Expiry is the brakeman on a stale grant. */
|
|
69
|
+
expiresAt: number;
|
|
70
|
+
/**
|
|
71
|
+
* How it was granted. `plan-approval` is the high-trust path (the user saw the
|
|
72
|
+
* plan and said yes); `request` is a direct order in the request text.
|
|
73
|
+
*/
|
|
74
|
+
source: 'request' | 'plan-approval';
|
|
75
|
+
/** Why — recorded so the judgment is auditable rather than a vibe. */
|
|
76
|
+
reason: string;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* How long a grant stays live. Two hours is long enough to outlast a working
|
|
80
|
+
* session and short enough that yesterday's approval cannot silently authorize
|
|
81
|
+
* today's work. Deliberately no "renew on use": a grant that never expires is a
|
|
82
|
+
* permanent licence, which is the failure this module exists to avoid.
|
|
83
|
+
*/
|
|
84
|
+
export declare const ENVELOPE_TTL_MS: number;
|
|
85
|
+
/**
|
|
86
|
+
* The reversible tool set an envelope authorizes when it names none. This is
|
|
87
|
+
* NOT a safety boundary on its own — the change-class veto below is — so the
|
|
88
|
+
* list is the work surface, not a fence: reads, the two write tools, the shell,
|
|
89
|
+
* git, and plan tracking.
|
|
90
|
+
*/
|
|
91
|
+
export declare const DEFAULT_ENVELOPE_TOOLS: readonly string[];
|
|
92
|
+
/** Is this object usable as an envelope key (a session handle)? */
|
|
93
|
+
export declare function isEnvelopeKey(key: unknown): key is object;
|
|
94
|
+
/** Grant (or replace) the envelope for a conversation. */
|
|
95
|
+
export declare function grantEnvelope(key: object, envelope: IntentEnvelope): void;
|
|
96
|
+
/**
|
|
97
|
+
* The live envelope for a conversation, or null. An EXPIRED envelope is removed
|
|
98
|
+
* on read, so a stale grant can never be observed — the failure direction is
|
|
99
|
+
* always "ask again", never "act on yesterday's approval".
|
|
100
|
+
*/
|
|
101
|
+
export declare function getEnvelope(key: object | undefined, now?: number): IntentEnvelope | null;
|
|
102
|
+
/** Drop the envelope (the conversation ended, or the user revoked it). */
|
|
103
|
+
export declare function clearEnvelope(key: object | undefined): void;
|
|
104
|
+
/** One action, as the acting tool can measure it. */
|
|
105
|
+
export interface EnvelopeAction {
|
|
106
|
+
/** Tool name (`edit_file`, `run_terminal`, …). */
|
|
107
|
+
tool: string;
|
|
108
|
+
/** Workspace-relative target path, when the action targets a file. */
|
|
109
|
+
path?: string;
|
|
110
|
+
/** What kind of change the action makes (from the state-change table). */
|
|
111
|
+
changeClass: StateChangeClass;
|
|
112
|
+
}
|
|
113
|
+
/** The ruling on whether the envelope covers an action. */
|
|
114
|
+
export interface EnvelopeVerdict {
|
|
115
|
+
covered: boolean;
|
|
116
|
+
reason: string;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Does the approved envelope cover this action?
|
|
120
|
+
*
|
|
121
|
+
* Order is load-bearing, and the two never-authorized classes are settled first:
|
|
122
|
+
*
|
|
123
|
+
* 1. NO ENVELOPE -> not covered. The default is the original strictness.
|
|
124
|
+
* 2. EXTERNAL / DESTRUCTIVE -> not covered, whatever the request said. The
|
|
125
|
+
* user approving a plan is not consenting to publish, delete or spend.
|
|
126
|
+
* 3. TOOL NOT IN SCOPE -> not covered.
|
|
127
|
+
* 4. PATH OUTSIDE SCOPE -> not covered. An empty path list means the whole
|
|
128
|
+
* workspace, which is the correct reading of a project-wide request.
|
|
129
|
+
* 5. OTHERWISE -> covered.
|
|
130
|
+
*/
|
|
131
|
+
export declare function envelopeCoversAction(envelope: IntentEnvelope | null | undefined, action: EnvelopeAction): EnvelopeVerdict;
|
|
132
|
+
/**
|
|
133
|
+
* Does the envelope NAME this exact path?
|
|
134
|
+
*
|
|
135
|
+
* The stricter question a whole-file overwrite needs. A project-wide envelope
|
|
136
|
+
* ("fix the calculator") covers edits but must NOT authorize replacing a file
|
|
137
|
+
* wholesale — a re-run cannot recover that, so it stays the user's call unless
|
|
138
|
+
* their request named the file. Deliberately false for a whole-workspace
|
|
139
|
+
* envelope, which is the entire point.
|
|
140
|
+
*/
|
|
141
|
+
export declare function envelopeNamesPath(envelope: IntentEnvelope | null | undefined, path: string): boolean;
|
|
142
|
+
/**
|
|
143
|
+
* Build an envelope from a DIRECTIVE request, or null when the request does not
|
|
144
|
+
* authorize the work.
|
|
145
|
+
*
|
|
146
|
+
* Uses the same verdict the write gates already trusted (`requestAuthorizesWrites`),
|
|
147
|
+
* so "the request authorized this" is defined once — the difference is that the
|
|
148
|
+
* result is now a durable, scoped object instead of a per-turn boolean.
|
|
149
|
+
*/
|
|
150
|
+
export declare function envelopeFromRequest(request: string, now?: number): IntentEnvelope | null;
|
|
151
|
+
/**
|
|
152
|
+
* Build an envelope from an APPROVED PLAN — the high-trust path.
|
|
153
|
+
*
|
|
154
|
+
* This is the "ask once for the concept, then implement" contract made
|
|
155
|
+
* mechanical: the user saw the plan and approved it, so the plan's goal is the
|
|
156
|
+
* intent and its named paths are the scope. `paths` is optional; an empty list
|
|
157
|
+
* means the whole workspace, which is what a project-wide plan should get.
|
|
158
|
+
*/
|
|
159
|
+
export declare function envelopeFromPlan(goal: string, paths?: string[], now?: number): IntentEnvelope;
|
|
160
|
+
/** The line shown when the agent proceeds inside an approved envelope. */
|
|
161
|
+
export declare function envelopeGrantedLine(envelope: IntentEnvelope): string;
|
|
162
|
+
//# sourceMappingURL=intent-envelope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intent-envelope.d.ts","sourceRoot":"","sources":["../../src/learning/intent-envelope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAEH,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,sBAAsB,CAAC;AAE9B,gCAAgC;AAChC,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,wEAAwE;IACxE,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,uDAAuD;AACvD,MAAM,WAAW,cAAc;IAC7B,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,MAAM,EAAE,SAAS,GAAG,eAAe,CAAC;IACpC,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,QAAqB,CAAC;AAElD;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAWnD,CAAC;AAcF,mEAAmE;AACnE,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,CAEzD;AAED,0DAA0D;AAC1D,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,IAAI,CAEzE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,SAAa,GAAG,cAAc,GAAG,IAAI,CAS5F;AAED,0EAA0E;AAC1E,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAE3D;AAED,qDAAqD;AACrD,MAAM,WAAW,cAAc;IAC7B,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0EAA0E;IAC1E,WAAW,EAAE,gBAAgB,CAAC;CAC/B;AAED,2DAA2D;AAC3D,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAiBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,EAC3C,MAAM,EAAE,cAAc,GACrB,eAAe,CAuBjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,EAC3C,IAAI,EAAE,MAAM,GACX,OAAO,CAGT;AASD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAa,GAAG,cAAc,GAAG,IAAI,CAe5F;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,MAAM,EAAO,EACpB,GAAG,SAAa,GACf,cAAc,CAUhB;AAED,0EAA0E;AAC1E,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAKpE"}
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Intent Envelope — authorization as a property of the INTENT, not of each
|
|
3
|
+
* individual action.
|
|
4
|
+
*
|
|
5
|
+
* WHY THIS EXISTS (the "permission every second" audit):
|
|
6
|
+
*
|
|
7
|
+
* Every confirmation-gated tool asked the same question — "has the user
|
|
8
|
+
* authorized this?" — and answered it by re-deriving a verdict from the LAST
|
|
9
|
+
* USER MESSAGE, once per turn (`writesAuthorized`). That design has two fatal
|
|
10
|
+
* properties at scale:
|
|
11
|
+
*
|
|
12
|
+
* 1. PERMISSION AT ACTION GRANULARITY. The number of human round trips is the
|
|
13
|
+
* number of state-changing operations. On a four-file calculator that is a
|
|
14
|
+
* handful; on a real codebase it is O(n) interruptions — the manual
|
|
15
|
+
* cadence, at scale. A permission that attaches to each keystroke is not
|
|
16
|
+
* safety; it is friction that merely LOOKS like diligence.
|
|
17
|
+
* 2. AUTHORIZATION IS NOT DURABLE. It evaporates at the turn boundary and is
|
|
18
|
+
* recomputed from whatever sentence the user typed last. So an approval
|
|
19
|
+
* that was given five minutes ago ("go ahead and fix it") is worth nothing
|
|
20
|
+
* on the next turn, and an unrelated word at the front of a message
|
|
21
|
+
* ("why are you asking me this again? Apply a safe expression parser by
|
|
22
|
+
* updating script.js") can flip the entire turn to UNAUTHORIZED — which is
|
|
23
|
+
* how a complaint about repeated questions made the agent ask MORE.
|
|
24
|
+
*
|
|
25
|
+
* The fix is the same one a good developer applies to a client relationship:
|
|
26
|
+
* agree the intent ONCE, then execute it. This module is that agreement as an
|
|
27
|
+
* object.
|
|
28
|
+
*
|
|
29
|
+
* WHAT IT IS: `{ goal, scope, grantedAt, expiresAt, source }`. It is granted by
|
|
30
|
+
* an explicit directive request, or — the path that matters most — by the user
|
|
31
|
+
* APPROVING THE AGENT'S PLAN. Inside the envelope, reversible work executes with
|
|
32
|
+
* no prompt. It is scoped (a tool set + optional path prefixes), it expires, and
|
|
33
|
+
* it NEVER covers the two classes that must stay the user's call: actions that
|
|
34
|
+
* leave this machine (`external`) and actions that irreversibly remove what
|
|
35
|
+
* exists (`destructive`). A plan approval is not a licence to publish, delete,
|
|
36
|
+
* or spend.
|
|
37
|
+
*
|
|
38
|
+
* WHERE IT LIVES: per CONVERSATION, not per turn — the envelope is stored
|
|
39
|
+
* against the session's plan store (the dashboard console keeps exactly one per
|
|
40
|
+
* session and re-injects it every turn), so it outlives the turn that granted
|
|
41
|
+
* it and dies with the conversation. A `WeakMap` key means the entry is
|
|
42
|
+
* collected with the session; nothing to clean up, nothing to leak.
|
|
43
|
+
*
|
|
44
|
+
* DELIBERATELY NOT HERE: any natural-language policy. The defect this replaces
|
|
45
|
+
* was prose regexes over the request (`^why` disabled authorization
|
|
46
|
+
* outright). Authorization is now decided from STRUCTURED state — a granted
|
|
47
|
+
* envelope and a change class — with prose used only to *present* the decision.
|
|
48
|
+
*/
|
|
49
|
+
import { requestAuthorizesWrites, extractRequestedPath, } from './autonomy-policy.js';
|
|
50
|
+
/**
|
|
51
|
+
* How long a grant stays live. Two hours is long enough to outlast a working
|
|
52
|
+
* session and short enough that yesterday's approval cannot silently authorize
|
|
53
|
+
* today's work. Deliberately no "renew on use": a grant that never expires is a
|
|
54
|
+
* permanent licence, which is the failure this module exists to avoid.
|
|
55
|
+
*/
|
|
56
|
+
export const ENVELOPE_TTL_MS = 2 * 60 * 60 * 1000;
|
|
57
|
+
/**
|
|
58
|
+
* The reversible tool set an envelope authorizes when it names none. This is
|
|
59
|
+
* NOT a safety boundary on its own — the change-class veto below is — so the
|
|
60
|
+
* list is the work surface, not a fence: reads, the two write tools, the shell,
|
|
61
|
+
* git, and plan tracking.
|
|
62
|
+
*/
|
|
63
|
+
export const DEFAULT_ENVELOPE_TOOLS = [
|
|
64
|
+
'read_file',
|
|
65
|
+
'list_dir',
|
|
66
|
+
'glob',
|
|
67
|
+
'code_search',
|
|
68
|
+
'edit_file',
|
|
69
|
+
'write_file',
|
|
70
|
+
'run_terminal',
|
|
71
|
+
'run_cli',
|
|
72
|
+
'git',
|
|
73
|
+
'plan_todo',
|
|
74
|
+
];
|
|
75
|
+
/**
|
|
76
|
+
* Change classes the envelope NEVER covers. Settled FIRST, so no later rule can
|
|
77
|
+
* turn a publish or a delete into an autonomous action.
|
|
78
|
+
*/
|
|
79
|
+
const NEVER_COVERED = new Set([
|
|
80
|
+
'external',
|
|
81
|
+
'destructive',
|
|
82
|
+
]);
|
|
83
|
+
/** Per-conversation envelope store, keyed by the session's plan store. */
|
|
84
|
+
const store = new WeakMap();
|
|
85
|
+
/** Is this object usable as an envelope key (a session handle)? */
|
|
86
|
+
export function isEnvelopeKey(key) {
|
|
87
|
+
return (typeof key === 'object' && key !== null) || typeof key === 'function';
|
|
88
|
+
}
|
|
89
|
+
/** Grant (or replace) the envelope for a conversation. */
|
|
90
|
+
export function grantEnvelope(key, envelope) {
|
|
91
|
+
store.set(key, envelope);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* The live envelope for a conversation, or null. An EXPIRED envelope is removed
|
|
95
|
+
* on read, so a stale grant can never be observed — the failure direction is
|
|
96
|
+
* always "ask again", never "act on yesterday's approval".
|
|
97
|
+
*/
|
|
98
|
+
export function getEnvelope(key, now = Date.now()) {
|
|
99
|
+
if (!isEnvelopeKey(key))
|
|
100
|
+
return null;
|
|
101
|
+
const env = store.get(key);
|
|
102
|
+
if (!env)
|
|
103
|
+
return null;
|
|
104
|
+
if (env.expiresAt <= now) {
|
|
105
|
+
store.delete(key);
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
return env;
|
|
109
|
+
}
|
|
110
|
+
/** Drop the envelope (the conversation ended, or the user revoked it). */
|
|
111
|
+
export function clearEnvelope(key) {
|
|
112
|
+
if (isEnvelopeKey(key))
|
|
113
|
+
store.delete(key);
|
|
114
|
+
}
|
|
115
|
+
/** Normalize a workspace-relative path for prefix comparison. */
|
|
116
|
+
function normalizeRel(path) {
|
|
117
|
+
return String(path ?? '').trim().replace(/^\.\//, '').replace(/\/+$/, '');
|
|
118
|
+
}
|
|
119
|
+
/** Is `path` inside one of `prefixes` (or under it)? */
|
|
120
|
+
function pathInScope(path, prefixes) {
|
|
121
|
+
const rel = normalizeRel(path);
|
|
122
|
+
return prefixes.some((p) => {
|
|
123
|
+
const prefix = normalizeRel(p);
|
|
124
|
+
if (!prefix)
|
|
125
|
+
return false;
|
|
126
|
+
return rel === prefix || rel.startsWith(`${prefix}/`);
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Does the approved envelope cover this action?
|
|
131
|
+
*
|
|
132
|
+
* Order is load-bearing, and the two never-authorized classes are settled first:
|
|
133
|
+
*
|
|
134
|
+
* 1. NO ENVELOPE -> not covered. The default is the original strictness.
|
|
135
|
+
* 2. EXTERNAL / DESTRUCTIVE -> not covered, whatever the request said. The
|
|
136
|
+
* user approving a plan is not consenting to publish, delete or spend.
|
|
137
|
+
* 3. TOOL NOT IN SCOPE -> not covered.
|
|
138
|
+
* 4. PATH OUTSIDE SCOPE -> not covered. An empty path list means the whole
|
|
139
|
+
* workspace, which is the correct reading of a project-wide request.
|
|
140
|
+
* 5. OTHERWISE -> covered.
|
|
141
|
+
*/
|
|
142
|
+
export function envelopeCoversAction(envelope, action) {
|
|
143
|
+
if (!envelope) {
|
|
144
|
+
return { covered: false, reason: 'no approved intent envelope for this conversation' };
|
|
145
|
+
}
|
|
146
|
+
if (NEVER_COVERED.has(action.changeClass)) {
|
|
147
|
+
return {
|
|
148
|
+
covered: false,
|
|
149
|
+
reason: `an approved plan authorizes the work inside it, never a ${action.changeClass} action — ` +
|
|
150
|
+
'that stays the user’s call',
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
const tools = envelope.scope.tools.length > 0 ? envelope.scope.tools : [...DEFAULT_ENVELOPE_TOOLS];
|
|
154
|
+
if (!tools.includes(action.tool)) {
|
|
155
|
+
return { covered: false, reason: `'${action.tool}' is outside the approved envelope` };
|
|
156
|
+
}
|
|
157
|
+
if (action.path && envelope.scope.paths.length > 0 && !pathInScope(action.path, envelope.scope.paths)) {
|
|
158
|
+
return {
|
|
159
|
+
covered: false,
|
|
160
|
+
reason: `'${action.path}' is outside the approved envelope scope (${envelope.scope.paths.join(', ')})`,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
return { covered: true, reason: `inside the approved envelope for “${envelope.goal}”` };
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Does the envelope NAME this exact path?
|
|
167
|
+
*
|
|
168
|
+
* The stricter question a whole-file overwrite needs. A project-wide envelope
|
|
169
|
+
* ("fix the calculator") covers edits but must NOT authorize replacing a file
|
|
170
|
+
* wholesale — a re-run cannot recover that, so it stays the user's call unless
|
|
171
|
+
* their request named the file. Deliberately false for a whole-workspace
|
|
172
|
+
* envelope, which is the entire point.
|
|
173
|
+
*/
|
|
174
|
+
export function envelopeNamesPath(envelope, path) {
|
|
175
|
+
if (!envelope || envelope.scope.paths.length === 0)
|
|
176
|
+
return false;
|
|
177
|
+
return pathInScope(path, envelope.scope.paths);
|
|
178
|
+
}
|
|
179
|
+
/** A one-line goal for display (the request can be a paragraph). */
|
|
180
|
+
function summarizeGoal(request, max = 120) {
|
|
181
|
+
const one = String(request ?? '').replace(/\s+/g, ' ').trim();
|
|
182
|
+
if (!one)
|
|
183
|
+
return '(untitled intent)';
|
|
184
|
+
return one.length > max ? `${one.slice(0, max)}…` : one;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Build an envelope from a DIRECTIVE request, or null when the request does not
|
|
188
|
+
* authorize the work.
|
|
189
|
+
*
|
|
190
|
+
* Uses the same verdict the write gates already trusted (`requestAuthorizesWrites`),
|
|
191
|
+
* so "the request authorized this" is defined once — the difference is that the
|
|
192
|
+
* result is now a durable, scoped object instead of a per-turn boolean.
|
|
193
|
+
*/
|
|
194
|
+
export function envelopeFromRequest(request, now = Date.now()) {
|
|
195
|
+
const auth = requestAuthorizesWrites(request);
|
|
196
|
+
if (!auth.authorized)
|
|
197
|
+
return null;
|
|
198
|
+
const named = auth.requestedPath ?? extractRequestedPath(request);
|
|
199
|
+
return {
|
|
200
|
+
goal: summarizeGoal(request),
|
|
201
|
+
scope: {
|
|
202
|
+
paths: named ? [normalizeRel(named)] : [],
|
|
203
|
+
tools: [...DEFAULT_ENVELOPE_TOOLS],
|
|
204
|
+
},
|
|
205
|
+
grantedAt: now,
|
|
206
|
+
expiresAt: now + ENVELOPE_TTL_MS,
|
|
207
|
+
source: 'request',
|
|
208
|
+
reason: auth.reason,
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Build an envelope from an APPROVED PLAN — the high-trust path.
|
|
213
|
+
*
|
|
214
|
+
* This is the "ask once for the concept, then implement" contract made
|
|
215
|
+
* mechanical: the user saw the plan and approved it, so the plan's goal is the
|
|
216
|
+
* intent and its named paths are the scope. `paths` is optional; an empty list
|
|
217
|
+
* means the whole workspace, which is what a project-wide plan should get.
|
|
218
|
+
*/
|
|
219
|
+
export function envelopeFromPlan(goal, paths = [], now = Date.now()) {
|
|
220
|
+
const scopePaths = (paths ?? []).map(normalizeRel).filter((p) => p.length > 0);
|
|
221
|
+
return {
|
|
222
|
+
goal: summarizeGoal(goal),
|
|
223
|
+
scope: { paths: scopePaths, tools: [...DEFAULT_ENVELOPE_TOOLS] },
|
|
224
|
+
grantedAt: now,
|
|
225
|
+
expiresAt: now + ENVELOPE_TTL_MS,
|
|
226
|
+
source: 'plan-approval',
|
|
227
|
+
reason: 'the user approved this plan — its steps run under one grant',
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
/** The line shown when the agent proceeds inside an approved envelope. */
|
|
231
|
+
export function envelopeGrantedLine(envelope) {
|
|
232
|
+
return (`✅ Approved: “${envelope.goal}” — running it under one grant. ` +
|
|
233
|
+
'You will not be asked per step; say the word to stop or change course.');
|
|
234
|
+
}
|
|
235
|
+
//# sourceMappingURL=intent-envelope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intent-envelope.js","sourceRoot":"","sources":["../../src/learning/intent-envelope.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"long-form.d.ts","sourceRoot":"","sources":["../../src/learning/long-form.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"long-form.d.ts","sourceRoot":"","sources":["../../src/learning/long-form.ts"],"names":[],"mappings":"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"}
|
|
@@ -395,9 +395,20 @@ export function jobProgress(job) {
|
|
|
395
395
|
const total = job.sections.length;
|
|
396
396
|
const done = job.sections.filter((s) => s.status === 'done').length;
|
|
397
397
|
const words = job.sections.reduce((sum, s) => sum + (s.status === 'done' ? s.words : 0), 0);
|
|
398
|
-
const
|
|
398
|
+
const wordsPercent = job.target.wordsTarget > 0
|
|
399
399
|
? Math.min(100, Math.round((words / job.target.wordsTarget) * 100))
|
|
400
400
|
: 0;
|
|
401
|
+
// The completion percentage is the MINIMUM of the two ways the deliverable can
|
|
402
|
+
// be incomplete, and that is deliberate. Writers routinely OVERSHOOT the per-
|
|
403
|
+
// chapter target — a live 100-page run hit 43,906 words against a 35,000 target
|
|
404
|
+
// by chapter 31 of 39 — so a word-only percentage saturated at 100 while eight
|
|
405
|
+
// units were still owed: the progress line read "31/39 complete … 100%", which
|
|
406
|
+
// is the same class of contradiction as a listing count presented as a
|
|
407
|
+
// capability. Units are the generation boundary and the work still outstanding,
|
|
408
|
+
// so the lower of the two is the honest number, and 100% means the deliverable
|
|
409
|
+
// EXISTS (all units done) rather than "the word count ran out of road".
|
|
410
|
+
const unitPercent = total > 0 ? Math.round((done / total) * 100) : 0;
|
|
411
|
+
const percent = Math.min(wordsPercent, unitPercent);
|
|
401
412
|
return {
|
|
402
413
|
done,
|
|
403
414
|
total,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"long-form.js","sourceRoot":"","sources":["../../src/learning/long-form.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"long-form.js","sourceRoot":"","sources":["../../src/learning/long-form.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE7D,+EAA+E;AAE/E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAC;AAElC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAExC,wEAAwE;AACxE,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAEvC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAEnC,4EAA4E;AAC5E,MAAM,YAAY,GAAG,GAAG,CAAC;AAEzB,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,SAAS,GAAG,gBAAgB,CAAC;AA4DnC,+EAA+E;AAE/E,8EAA8E;AAC9E,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAE5B;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpB,sEAAsE;IACtE,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACtE,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;IACtE,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAEtE,MAAM,GAAG,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEpF,0EAA0E;IAC1E,4EAA4E;IAC5E,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC7E,CAAC;IAED,2EAA2E;IAC3E,+DAA+D;IAC/D,IAAI,0CAA0C,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,OAAO,UAAU,CAAC,UAAU,EAAE,gBAAgB,EAAE,sCAAsC,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,yEAAyE;AACzE,SAAS,UAAU,CAAC,IAAkB,EAAE,MAAc,EAAE,MAAc;IACpE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACzD,IAAI,WAAmB,CAAC;IACxB,IAAI,SAAiB,CAAC;IACtB,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,OAAO;YACV,yEAAyE;YACzE,gEAAgE;YAChE,WAAW,GAAG,UAAU,GAAG,cAAc,CAAC;YAC1C,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,oBAAoB,CAAC,CAAC;YAC1D,MAAM;QACR,KAAK,OAAO;YACV,WAAW,GAAG,UAAU,CAAC;YACzB,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,oBAAoB,CAAC,CAAC;YAC1D,MAAM;QACR,KAAK,UAAU;YACb,mEAAmE;YACnE,wEAAwE;YACxE,uDAAuD;YACvD,WAAW,GAAG,UAAU,GAAG,iBAAiB,CAAC;YAC7C,SAAS,GAAG,UAAU,CAAC;YACvB,MAAM;QACR;YACE,WAAW,GAAG,UAAU,GAAG,oBAAoB,CAAC;YAChD,SAAS,GAAG,UAAU,CAAC;IAC3B,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;AACtH,CAAC;AAED,+EAA+E;AAE/E,gDAAgD;AAChD,SAAS,IAAI,CAAC,IAAY;IACxB,OAAO,IAAI;SACR,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC;AAC5B,CAAC;AAED,iEAAiE;AACjE,SAAS,GAAG,CAAC,CAAS;IACpB,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACpC,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,YAAY,CAAC,GAA4B,EAAE,KAAa;IACtE,OAAO,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,EAAE,CAAC;AACtE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,MAAsB,EACtB,GAA4B,EAC5B,GAAG,GAAG,UAAU;IAEhB,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC;IAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,GAAG,IAAI,GAAG,KAAK,CAAC;IACpD,MAAM,QAAQ,GAAsB,EAAE,CAAC;IACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACnC,QAAQ,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,CAAC;YACR,KAAK;YACL,IAAI,EAAE,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK;YAC1C,WAAW,EAAE,IAAI,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5C,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,CAAC;YACR,QAAQ,EAAE,CAAC;SACZ,CAAC,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,cAAc,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrE,CAAC;AASD,SAAS,WAAW,CAAC,IAAY;IAC/B,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,mDAAmD;AACnD,SAAS,SAAS;IAChB,MAAM,QAAQ,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;IAC3C,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,iBAAiB,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,SAAS,UAAU;IACjB,OAAO,IAAI,CAAC,SAAS,EAAE,EAAE,SAAS,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,UAAU;IACjB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAe,CAAC;QAC7C,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3F,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,eAAe,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QAC3E,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,oEAAoE;IACtE,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AAChD,CAAC;AAED,SAAS,WAAW,CAAC,IAAgB;IACnC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,yEAAyE;QACzE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACxD,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,aAAa,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACvG,CAAC;IAAC,MAAM,CAAC;QACP,qDAAqD;IACvD,CAAC;AACH,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,WAAW,CAAC,WAAmB,EAAE,OAAe;IAC9D,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;AACxD,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,mBAAmB,CAAC,WAAmB,EAAE,WAAmB;IAC1E,OAAO,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAC3C,CAAC;AAED,+EAA+E;AAE/E;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAOhC;IACC,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEvB,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;QAClD,yEAAyE;QACzE,yEAAyE;QACzE,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBAC1F,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC;gBACrB,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;gBACZ,QAAQ,GAAG,IAAI,CAAC;YAClB,CAAC;QACH,CAAC;QACD,IAAI,QAAQ;YAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;QACpC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QAC3B,QAAQ,CAAC,SAAS,GAAG,GAAG,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;QAC1B,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/E,MAAM,GAAG,GAAgB;QACvB,GAAG;QACH,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC;QACvC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;QAC/B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,QAAQ;QACR,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,aAAa;QACrB,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;KACf,CAAC;IACF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACrB,WAAW,CAAC,IAAI,CAAC,CAAC;IAClB,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACjC,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,MAAM,CAAC,WAAmB,EAAE,OAAe;IACzD,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;IAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC;AAC9D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,WAAmB;IAC/C,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;IAC1B,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACjC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;SACxC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,GAAG,CAAC;SACpC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;IAC7C,OAAO,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC/B,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAAmB;IACnD,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;IAC1B,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACjC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;SACxC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,GAAG,IAAI,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC;SAClE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;IAC7C,OAAO,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC/B,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IACjB,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;AAC/C,CAAC;AAED,SAAS,WAAW,CAAC,GAAgB;IACnC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5F,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAClC,GAAgB,EAChB,KAAa,EACb,OAAwD;IAExD,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;IAC5D,IAAI,CAAC,OAAO;QAAE,OAAO,GAAG,CAAC;IACzB,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC;IACtB,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;QACxB,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;QAC/C,OAAO,OAAO,CAAC,SAAS,CAAC;IAC3B,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC;QAC1B,OAAO,CAAC,SAAS,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACvE,CAAC;IACD,WAAW,CAAC,GAAG,CAAC,CAAC;IACjB,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC;IACrF,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;IAC1B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACzB,WAAW,CAAC,IAAI,CAAC,CAAC;IAClB,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,GAAgB;IACtC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,WAAW,CAAC,GAAG,CAAC,CAAC;IACjB,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC;IACrF,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;IAC1B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACzB,WAAW,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAgB,EAAE,KAAK,GAAG,iBAAiB;IAC7E,OAAO,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AACtF,CAAC;AAcD,MAAM,UAAU,WAAW,CAAC,GAAgB;IAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;IAClC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IACpE,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5F,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC;QAC7C,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC,CAAC;IACN,+EAA+E;IAC/E,8EAA8E;IAC9E,gFAAgF;IAChF,+EAA+E;IAC/E,+EAA+E;IAC/E,uEAAuE;IACvE,gFAAgF;IAChF,+EAA+E;IAC/E,wEAAwE;IACxE,MAAM,WAAW,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IACpD,OAAO;QACL,IAAI;QACJ,KAAK;QACL,KAAK;QACL,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW;QACnC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC;QAC3B,WAAW,EAAE,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC;QAClD,OAAO;QACP,QAAQ,EAAE,KAAK,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK;KACtC,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,GAAgB;IAC7C,MAAM,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC3B,MAAM,IAAI,GAAG,GAAG,CAAC,gBAAgB,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IACzE,OAAO,MAAM,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,eAAe,CAAC,CAAC,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,WAAW,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,WAAW,WAAW,CAAC,CAAC,OAAO,IAAI,CAAC;AACjL,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,aAAa,CAAC,GAAgB,EAAE,KAAK,GAAG,iBAAiB;IAQvE,MAAM,MAAM,GAAqG,EAAE,CAAC;IACpH,KAAK,MAAM,CAAC,IAAI,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,YAAY,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,EAAE,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;SACnG,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,iEAAiE;AACjE,SAAS,eAAe,CAAC,GAAgB,EAAE,KAAa;IACtD,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC;IAC7D,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/B,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,QAAQ,CAAC,YAAoB,EAAE,KAAa;IAC1D,IAAI,CAAC;QACH,IAAI,CAAC,YAAY,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;YAAE,OAAO,EAAE,CAAC;QAC1D,MAAM,IAAI,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAWD;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAgB;IAC/C,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,CAAC,QAAQ,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAEpC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,mBAAmB,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,CAAC;YACH,IAAI,UAAU,CAAC,GAAG,CAAC;gBAAE,IAAI,GAAG,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QAChE,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,GAAG,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,OAAO,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpC,MAAM,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/B,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;AACxF,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,WAAW,CAAC,WAAmB,EAAE,QAAgB;IAC/D,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,QAAQ,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED,yCAAyC;AACzC,MAAM,UAAU,iBAAiB;IAC/B,WAAW,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;AACtD,CAAC"}
|
|
@@ -122,6 +122,67 @@ export interface TraceOutcome {
|
|
|
122
122
|
* `unverifiedClaim` — the honesty flag for a false "I have fixed it".
|
|
123
123
|
*/
|
|
124
124
|
unverifiedEditClaim?: boolean;
|
|
125
|
+
/**
|
|
126
|
+
* G13b — True when the request asked for an AUTHORED deliverable to be
|
|
127
|
+
* PRODUCED and the turn wrote NOTHING to disk (see
|
|
128
|
+
* `ToolLoopResult.undeliveredArtifact`). The reply may be excellent prose —
|
|
129
|
+
* the 12-page story that was composed into a chat window instead of a file —
|
|
130
|
+
* but the deliverable does not exist, so the Trace tab must not read it as
|
|
131
|
+
* finished work.
|
|
132
|
+
*/
|
|
133
|
+
undeliveredArtifact?: boolean;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Which gate made a decision, or refused one.
|
|
137
|
+
*
|
|
138
|
+
* `confirmation` is the family the G18 audit could not see at all: a tool that
|
|
139
|
+
* declined to act until a human approved. `permission`/`verification`/
|
|
140
|
+
* `deliverable`/`promise` are the loop's own bounded nudges; `autonomy` is a
|
|
141
|
+
* gate that DECIDED to proceed on the request's own authorization; `budget` is
|
|
142
|
+
* a bound (step/continuation) being reached.
|
|
143
|
+
*/
|
|
144
|
+
export type TraceGateName = 'permission' | 'verification' | 'deliverable' | 'promise' | 'confirmation' | 'workspace' | 'autonomy' | 'repeat' | 'budget';
|
|
145
|
+
/**
|
|
146
|
+
* A NON-LLM fact about a turn: a tool call, a gate decision, or a refusal.
|
|
147
|
+
*
|
|
148
|
+
* WHY THIS IS NOT A `TraceStep`. `steps` are LLM calls — they carry a prompt
|
|
149
|
+
* digest, a model, tokens, and they feed `getTraceStats`. A tool call has none
|
|
150
|
+
* of those, and folding it in would corrupt every aggregate the Trace tab and
|
|
151
|
+
* the stats command already report. This is the separate, equally honest
|
|
152
|
+
* record: WHAT THE TURN DID, alongside what the model was asked.
|
|
153
|
+
*
|
|
154
|
+
* The gap it closes was recorded as G18: the loop engine wrote no trace at all,
|
|
155
|
+
* and the audit of the confirmation gates had to be done by reading code and
|
|
156
|
+
* driving the real tools, because "the trace store showed 0 refusals" meant
|
|
157
|
+
* "it cannot see refusals" — not "there were none".
|
|
158
|
+
*/
|
|
159
|
+
export interface TraceEvent {
|
|
160
|
+
/** 1-based position within the trace's event list. */
|
|
161
|
+
seq: number;
|
|
162
|
+
/** Epoch ms when the event was recorded. */
|
|
163
|
+
timestamp: number;
|
|
164
|
+
/**
|
|
165
|
+
* `tool` — a tool call that actually ran (ok/error, duration, args);
|
|
166
|
+
* `gate` — a gate made a DECISION (nudge spent, or autonomy proceeded);
|
|
167
|
+
* `refusal` — a call was DECLINED (`Error:` result, confirmation gate,
|
|
168
|
+
* unknown/disabled tool, repeat dispatch);
|
|
169
|
+
* `decision` — a non-tool decision worth auditing (e.g. the provider walk
|
|
170
|
+
* abandoning a candidate, a loop bound being reached).
|
|
171
|
+
*/
|
|
172
|
+
kind: 'tool' | 'gate' | 'refusal' | 'decision';
|
|
173
|
+
/** Tool name for `tool`/`refusal` events. */
|
|
174
|
+
tool?: string;
|
|
175
|
+
/** Which gate/nudge/bound this is about (see {@link TraceGateName}). */
|
|
176
|
+
gate?: TraceGateName;
|
|
177
|
+
/** One line, human-readable — the same wording the console prints. */
|
|
178
|
+
summary: string;
|
|
179
|
+
/** Bounded args preview for a tool call (what the gate actually saw). */
|
|
180
|
+
args?: string;
|
|
181
|
+
/** Bounded result/error preview (the evidence the verdict was read from). */
|
|
182
|
+
result?: string;
|
|
183
|
+
/** True when the call succeeded; false for an error or a refusal. */
|
|
184
|
+
ok?: boolean;
|
|
185
|
+
durationMs?: number;
|
|
125
186
|
}
|
|
126
187
|
/** A full reasoning trace — one pipeline execution. */
|
|
127
188
|
export interface ReasoningTrace {
|
|
@@ -148,6 +209,12 @@ export interface ReasoningTrace {
|
|
|
148
209
|
outcome?: TraceOutcome;
|
|
149
210
|
/** LLM calls in execution order. */
|
|
150
211
|
steps: TraceStep[];
|
|
212
|
+
/**
|
|
213
|
+
* Non-LLM facts about the run, in order: tool calls, gate decisions, and
|
|
214
|
+
* refusals (G18). Absent on traces written before this existed — readers must
|
|
215
|
+
* treat `undefined` as "no events were recorded", never as "none happened".
|
|
216
|
+
*/
|
|
217
|
+
events?: TraceEvent[];
|
|
151
218
|
/**
|
|
152
219
|
* The FULL stable layer (system prompt), captured ONCE per trace.
|
|
153
220
|
* Previously every trace exposed only the first 80 characters of it, so the
|
|
@@ -170,6 +237,18 @@ export interface TraceStats {
|
|
|
170
237
|
byAgentType: Record<string, number>;
|
|
171
238
|
/** Steps by model. */
|
|
172
239
|
byModel: Record<string, number>;
|
|
240
|
+
/**
|
|
241
|
+
* G18 — non-LLM facts recorded across all traces (tool calls, gate decisions,
|
|
242
|
+
* refusals). Counted separately from `totalSteps` on purpose: an event is not
|
|
243
|
+
* an LLM call, and adding it to the token/latency averages would make both
|
|
244
|
+
* wrong. `refusals` is the number the confirmation-gate audit could not obtain
|
|
245
|
+
* before this existed.
|
|
246
|
+
*/
|
|
247
|
+
totalEvents: number;
|
|
248
|
+
/** How many of those events are refusals (declined calls). */
|
|
249
|
+
refusals: number;
|
|
250
|
+
/** How many are gate DECISIONS (a nudge spent, or autonomy proceeding). */
|
|
251
|
+
gateDecisions: number;
|
|
173
252
|
updatedAt: number;
|
|
174
253
|
}
|
|
175
254
|
/** Context for withTraceCapture — everything a step needs except the call result. */
|
|
@@ -206,6 +285,15 @@ export declare function beginTrace(meta: {
|
|
|
206
285
|
export declare function recordStep(traceId: string, step: Omit<TraceStep, 'seq' | 'timestamp'> & {
|
|
207
286
|
promptFull?: string;
|
|
208
287
|
}): void;
|
|
288
|
+
/**
|
|
289
|
+
* Record one NON-LLM event (a tool call, a gate decision, a refusal) — G18.
|
|
290
|
+
*
|
|
291
|
+
* Same contract as {@link recordStep}: best-effort, never throws, and the tail
|
|
292
|
+
* is kept when the cap is hit (the most recent actions are the ones an audit
|
|
293
|
+
* reads). The caller passes WHAT HAPPENED; `seq`/`timestamp` are assigned here
|
|
294
|
+
* so two recorders can never disagree about ordering.
|
|
295
|
+
*/
|
|
296
|
+
export declare function recordTraceEvent(traceId: string, event: Omit<TraceEvent, 'seq' | 'timestamp'>): void;
|
|
209
297
|
/**
|
|
210
298
|
* Mark a trace finished (sets endedAt, durationMs, success). Idempotent: a
|
|
211
299
|
* second endTrace (e.g. from a finally block after an early close) is a no-op.
|
|
@@ -223,6 +311,7 @@ export declare function buildTraceOutcome(input: {
|
|
|
223
311
|
unfulfilledPromise?: boolean;
|
|
224
312
|
unverifiedEdit?: boolean;
|
|
225
313
|
unverifiedEditClaim?: boolean;
|
|
314
|
+
undeliveredArtifact?: boolean;
|
|
226
315
|
}): TraceOutcome;
|
|
227
316
|
/** Get one trace by id (null when missing). */
|
|
228
317
|
export declare function getTrace(id: string): ReasoningTrace | null;
|