@happyvertical/smrt-agents 0.38.21 → 0.38.22

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.md CHANGED
@@ -130,11 +130,39 @@ The framework provides only the per-instance **identity**; a package scopes its
130
130
 
131
131
  The **`default` persona reuses the singleton identity** (a `null` key), which is what makes the singleton→multi upgrade non-destructive — see `@happyvertical/smrt-personas` (`personaInstanceKey`, `upgradeSingletonToDefaultPersona`).
132
132
 
133
+ ## Principal Execution (issue #1888)
134
+
135
+ `executeAsPrincipal(options, fn)` runs agent work **AS a persona's bound user**, reusing the existing RBAC cascade with no snapshotting. It publishes `(user_id, tenant_id, permissions[])` onto the DB session (Postgres RLS then bounds every query per-`(table, action)` and per-tenant) and hands `fn` a `PrincipalRun` whose `assertToolAllowed()` / `assertOperation()` enforce the persona tool ceiling and the RLS-off catalog gate. Effective authority = **bound-user RBAC ∩ agent-class ceiling ∩ persona `allowedTools`**. Actions audit as on-behalf-of the originating user via a `PrincipalAuditSink`.
136
+
137
+ ## Agent Orchestration (issue #1892) — invoke-agent + principal delegation
138
+
139
+ A conversational (orchestrator) agent can invoke worker agents with **principal delegation**. This is *not* a new engine — it is a standard `invoke-agent` tool plus a completion-dispatch convention on top of `executeAsPrincipal` + the DispatchBus.
140
+
141
+ ```typescript
142
+ import { createInvokeAgentTool, rootDelegationEnvelope } from '@happyvertical/smrt-agents';
143
+
144
+ const tool = createInvokeAgentTool({
145
+ db,
146
+ parentEnvelope: rootDelegationEnvelope({ runAsUserId, tenantId, onBehalfOfUserId }),
147
+ worker: async ({ run, agentClass, task }) => runWorker(run, agentClass, task),
148
+ });
149
+ // Offered through the chat tool loop as an `extraTools` entry, gated by the
150
+ // persona's allowedTools like any other tool (slug: 'agents.invoke').
151
+ ```
152
+
153
+ - **`DelegationEnvelope`** carries the **immutable principal** (`runAsUserId` + `tenantId` + originating `onBehalfOfUserId`) and a bounded `depth`. `deriveDelegationEnvelope()` copies the principal verbatim and asserts `depth <= MAX_DELEGATION_DEPTH` (3) — a worker cannot invoke a further worker under a broader principal (`PrincipalWideningError` / `DelegationDepthExceededError`).
154
+ - **`createInvokeAgentTool()`** → a `PrincipalTool` whose handler derives the child envelope with the principal taken **from the live run context, never the tool args**, so the invoke-agent tool is structurally immune to principal widening.
155
+ - **`executeDelegatedInvocation()`** runs the worker via `executeAsPrincipal` under that same principal and emits a correlated `agent.completed` dispatch; **`surfaceAgentCompletions(bus, correlationId)`** reads it back into the conversation.
156
+ - **Transports** (pluggable): the default `inlineInvokeAgentTransport` runs the worker in-process (completion surfaces in the same turn); `createDispatchInvokeTransport(bus)` emits an `agent.invoke` signal a worker processes via `processAgentInvocations()` (async). A job-queue transport (enqueue on the `agents` queue) is a consumer-supplied `InvokeAgentTransport` — orchestration never hard-depends on `@happyvertical/smrt-jobs`, which sits *below* agents in the dependency graph.
157
+
133
158
  ## Key Files
134
159
 
135
160
  | File | Purpose |
136
161
  |------|---------|
137
162
  | `src/agent.ts` | Base Agent class — lifecycle, dispatch, interests, config, opt-in learning trait, multi-instance identity |
163
+ | `src/execute-as-principal.ts` | `executeAsPrincipal` / `PrincipalRun` — run agent work as a persona's bound user (#1888) |
164
+ | `src/delegation.ts` | `DelegationEnvelope` — immutable principal + bounded delegation depth (#1892) |
165
+ | `src/invoke-agent.ts` | `invoke-agent` tool, worker executor, completion-dispatch convention, transports (#1892) |
138
166
  | `src/learning.ts` | `AgentLearningConfig` + `resolveAgentLearning()` declaration normalisation |
139
167
  | `src/schedule.ts` | AgentSchedule model — cron, execution tracking |
140
168
  | `src/tenant-agent.ts` | TenantAgent — junction table, hierarchical resolution |
@@ -0,0 +1,189 @@
1
+ /**
2
+ * Delegation envelope — the immutable principal + bounded depth carried along an
3
+ * agent-orchestration chain (L3 of the learning-agents epic, #1892).
4
+ *
5
+ * When a conversational (orchestrator) agent invokes a worker agent, and that
6
+ * worker in turn invokes a further worker, the whole chain must run as **one**
7
+ * principal — the originating user — and can never widen it. This module is the
8
+ * pure value object that encodes that invariant:
9
+ *
10
+ * - **Principal immutability.** `runAsUserId`, `tenantId`, and the originating
11
+ * `onBehalfOfUserId` are copied verbatim from parent to child by
12
+ * {@link deriveDelegationEnvelope}; there is no parameter to change them. A
13
+ * caller that *requests* a different principal (e.g. a compromised worker
14
+ * passing `runAsUserId` through the invoke-agent tool) is rejected by
15
+ * {@link assertPrincipalNotWidened} — the request is honoured only when it
16
+ * exactly equals the parent principal.
17
+ * - **Bounded depth.** Every derivation increments `depth` and asserts it stays
18
+ * within {@link MAX_DELEGATION_DEPTH}, so an orchestration chain (or an
19
+ * accidental invoke-yourself loop) can never recurse without limit.
20
+ *
21
+ * The envelope carries no authority of its own: the actual permission bound is
22
+ * still the originating user's live RBAC, enforced when the worker runs via
23
+ * `executeAsPrincipal` (Postgres RLS, or the catalog assert on RLS-off
24
+ * adapters). The envelope only guarantees *which* principal that is and *how
25
+ * deep* the chain may go.
26
+ *
27
+ * @module
28
+ */
29
+ /**
30
+ * Maximum delegation depth for an orchestration chain. The orchestrator's own
31
+ * conversation is depth `0`; the first worker it invokes is depth `1`. A worker
32
+ * may invoke a further worker only while the resulting child depth stays within
33
+ * this ceiling, so a chain is at most `MAX_DELEGATION_DEPTH` workers long.
34
+ */
35
+ export declare const MAX_DELEGATION_DEPTH = 3;
36
+ /**
37
+ * The immutable principal + bounded depth carried from an orchestrator to a
38
+ * worker (and along any further delegation). Serializable, so it can travel in a
39
+ * job's args or a DispatchBus payload to a worker running out of process.
40
+ */
41
+ export interface DelegationEnvelope {
42
+ /**
43
+ * The user whose live permissions bound the worker's execution. Immutable
44
+ * along the chain — copied verbatim from parent to child.
45
+ */
46
+ runAsUserId: string;
47
+ /** Tenant the principal acts within. Immutable along the chain. */
48
+ tenantId: string | null;
49
+ /**
50
+ * The originating user the whole chain acts **on behalf of** (audited). This
51
+ * is the human who started the conversation; it never changes as delegation
52
+ * deepens, so every action along the chain audits back to the same person.
53
+ */
54
+ onBehalfOfUserId: string;
55
+ /**
56
+ * Current delegation depth. `0` for the orchestrator, `1` for its first
57
+ * worker, and so on — bounded by {@link MAX_DELEGATION_DEPTH}.
58
+ */
59
+ depth: number;
60
+ /**
61
+ * Correlation id linking a worker invocation to the completion dispatch it
62
+ * emits, so the orchestrator can surface the result back into the
63
+ * conversation.
64
+ */
65
+ correlationId: string;
66
+ /**
67
+ * The worker's tool ceiling (its persona's `allowedTools`), carried so a
68
+ * worker that itself runs a tool loop is bounded fail-closed. `undefined`
69
+ * normalizes to "no tools" at `executeAsPrincipal` — it never widens.
70
+ */
71
+ allowedTools?: string[];
72
+ }
73
+ /**
74
+ * The principal fields a caller may *request* when deriving a child envelope.
75
+ * Any field that is provided must equal the parent's, or
76
+ * {@link assertPrincipalNotWidened} throws — the principal can only ever be
77
+ * inherited, never changed.
78
+ */
79
+ export interface RequestedPrincipal {
80
+ runAsUserId?: string;
81
+ tenantId?: string | null;
82
+ onBehalfOfUserId?: string;
83
+ }
84
+ /**
85
+ * Thrown when a delegation would exceed {@link MAX_DELEGATION_DEPTH}.
86
+ */
87
+ export declare class DelegationDepthExceededError extends Error {
88
+ readonly depth: number;
89
+ readonly maxDepth: number;
90
+ readonly status = 400;
91
+ constructor(depth: number, maxDepth: number);
92
+ }
93
+ /**
94
+ * Thrown when a delegation would *widen* the principal — i.e. a caller requests
95
+ * a `runAsUserId` / `tenantId` / `onBehalfOfUserId` that differs from the
96
+ * parent's. The principal is immutable along an orchestration chain.
97
+ */
98
+ export declare class PrincipalWideningError extends Error {
99
+ readonly field: keyof RequestedPrincipal;
100
+ readonly status = 403;
101
+ constructor(field: keyof RequestedPrincipal, expected: unknown, got: unknown);
102
+ }
103
+ /**
104
+ * Assert a delegation depth is a valid, in-bounds depth.
105
+ *
106
+ * Rejects a non-integer, negative, or non-finite depth as well as one past the
107
+ * ceiling. This matters for the untrusted-payload path: an envelope
108
+ * reconstructed from a persisted dispatch/job could carry `NaN`, a negative, or
109
+ * a string-coerced value, and `NaN > maxDepth` is `false` — so a bare
110
+ * upper-bound check would let it silently bypass the bound and make delegation
111
+ * effectively unbounded.
112
+ *
113
+ * @throws {@link DelegationDepthExceededError} when `depth` is not an integer in `[0, maxDepth]`.
114
+ */
115
+ export declare function assertWithinDelegationDepth(depth: number, maxDepth?: number): void;
116
+ /**
117
+ * Assert a *requested* principal does not widen the parent's.
118
+ *
119
+ * Each provided field must exactly equal the parent's; a mismatch throws
120
+ * {@link PrincipalWideningError}. Omitted fields are fine — they inherit. This
121
+ * is the defence-in-depth guard for the case where an envelope is reconstructed
122
+ * from an untrusted source (a worker's invoke-agent arguments, a job payload):
123
+ * the principal is only ever accepted when it matches, so it can never expand.
124
+ */
125
+ export declare function assertPrincipalNotWidened(parent: Pick<DelegationEnvelope, 'runAsUserId' | 'tenantId' | 'onBehalfOfUserId'>, requested: RequestedPrincipal): void;
126
+ /**
127
+ * Options for {@link rootDelegationEnvelope}.
128
+ */
129
+ export interface RootDelegationEnvelopeOptions {
130
+ /** The principal the orchestrator (and thus the whole chain) runs as. */
131
+ runAsUserId: string;
132
+ /** Tenant the principal acts within. */
133
+ tenantId: string | null;
134
+ /**
135
+ * The originating user the chain acts on behalf of. Defaults to
136
+ * `runAsUserId` when the orchestrator is itself operating directly.
137
+ */
138
+ onBehalfOfUserId?: string;
139
+ /** Correlation id. A fresh UUID is generated when omitted. */
140
+ correlationId?: string;
141
+ /**
142
+ * The orchestrator's own tool ceiling. Carried for completeness; workers do
143
+ * **not** inherit it — a worker's ceiling comes from trusted per-worker policy
144
+ * (`resolveWorkerAllowedTools`) and is fail-closed (no tools) when absent.
145
+ */
146
+ allowedTools?: string[];
147
+ }
148
+ /**
149
+ * Build the depth-`0` (orchestrator) envelope that seeds an orchestration chain.
150
+ *
151
+ * The orchestrator's conversation is depth `0`; {@link deriveDelegationEnvelope}
152
+ * produces the depth-`1` envelope for the first worker it invokes.
153
+ */
154
+ export declare function rootDelegationEnvelope(options: RootDelegationEnvelopeOptions): DelegationEnvelope;
155
+ /**
156
+ * Options for {@link deriveDelegationEnvelope}.
157
+ */
158
+ export interface DeriveDelegationEnvelopeOptions {
159
+ /** Correlation id for the child invocation. A fresh UUID when omitted. */
160
+ correlationId?: string;
161
+ /**
162
+ * The invoked worker's tool ceiling. When omitted the child carries no tools
163
+ * (fail-closed); it is **not** inherited from the parent so a worker never
164
+ * silently gains the orchestrator's tools.
165
+ */
166
+ allowedTools?: string[];
167
+ /**
168
+ * A principal a caller is *requesting* the child run as. Accepted only when it
169
+ * matches the parent principal exactly (see {@link assertPrincipalNotWidened});
170
+ * otherwise {@link PrincipalWideningError} is thrown. Omit to inherit.
171
+ */
172
+ requestedPrincipal?: RequestedPrincipal;
173
+ /** Depth ceiling override (mainly for tests). */
174
+ maxDepth?: number;
175
+ }
176
+ /**
177
+ * Derive the child envelope for a worker invoked by the holder of `parent`.
178
+ *
179
+ * The child **inherits the parent's principal verbatim** (`runAsUserId`,
180
+ * `tenantId`, `onBehalfOfUserId`) — there is no way to change it — increments
181
+ * the depth (asserting the ceiling), and carries the invoked worker's own tool
182
+ * ceiling. A `requestedPrincipal` that differs from the parent's is rejected, so
183
+ * a worker can never invoke a further worker under a broader principal.
184
+ *
185
+ * @throws {@link DelegationDepthExceededError} when the child would exceed the depth ceiling.
186
+ * @throws {@link PrincipalWideningError} when a requested principal widens the parent's.
187
+ */
188
+ export declare function deriveDelegationEnvelope(parent: DelegationEnvelope, options?: DeriveDelegationEnvelopeOptions): DelegationEnvelope;
189
+ //# sourceMappingURL=delegation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegation.d.ts","sourceRoot":"","sources":["../src/delegation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;;;OAIG;IACH,gBAAgB,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,qBAAa,4BAA6B,SAAQ,KAAK;IACrD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,OAAO;gBAEV,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;CAS5C;AAED;;;;GAIG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,KAAK,EAAE,MAAM,kBAAkB,CAAC;IACzC,QAAQ,CAAC,MAAM,OAAO;gBAGpB,KAAK,EAAE,MAAM,kBAAkB,EAC/B,QAAQ,EAAE,OAAO,EACjB,GAAG,EAAE,OAAO;CAUf;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,MAAM,EACb,QAAQ,GAAE,MAA6B,GACtC,IAAI,CAIN;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,IAAI,CACV,kBAAkB,EAClB,aAAa,GAAG,UAAU,GAAG,kBAAkB,CAChD,EACD,SAAS,EAAE,kBAAkB,GAC5B,IAAI,CA+BN;AAED;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,yEAAyE;IACzE,WAAW,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8DAA8D;IAC9D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,6BAA6B,GACrC,kBAAkB,CASpB;AAED;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC9C,0EAA0E;IAC1E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,kBAAkB,EAC1B,OAAO,GAAE,+BAAoC,GAC5C,kBAAkB,CAepB"}
package/dist/index.d.ts CHANGED
@@ -3,10 +3,12 @@ export { getClassConfigResolvers, getConfigResolver, isLazyConfigSentinel, listC
3
3
  export { Agent, type AgentOptions } from './agent.js';
4
4
  export { type AgentAIOptions, type AgentAISecretFallback, resolveAgentAIOptions, } from './ai-config.js';
5
5
  export { AgentConfig, AgentConfigCollection } from './config.js';
6
+ export { assertPrincipalNotWidened, assertWithinDelegationDepth, DelegationDepthExceededError, type DelegationEnvelope, type DeriveDelegationEnvelopeOptions, deriveDelegationEnvelope, MAX_DELEGATION_DEPTH, PrincipalWideningError, type RequestedPrincipal, type RootDelegationEnvelopeOptions, rootDelegationEnvelope, } from './delegation.js';
6
7
  export { type ExecuteAsPrincipalOptions, executeAsPrincipal, type PrincipalAuditEntry, type PrincipalAuditSink, type PrincipalBinding, type PrincipalRun, PrincipalToolNotAllowedError, } from './execute-as-principal.js';
7
8
  export { instanceScopedSubscriber } from './identity.js';
8
9
  export type { AgentWithInterestsOptions, AsyncQualifierFn, InterestFilter, InterestHandlerFn, InterestOptions, InterestResult, ObjectFilter, ObjectInterestConfig, QueryFn, } from './interests.js';
9
10
  export { mergeFilters, normalizeSort } from './interests.js';
11
+ export { AGENT_COMPLETED_SIGNAL, AGENT_INVOKE_SIGNAL, type AgentCompletion, agentInvokeSignalType, type CreateInvokeAgentToolOptions, createDispatchInvokeTransport, createInvokeAgentTool, emitAgentCompletion, executeDelegatedInvocation, INVOKE_AGENT_FUNCTION_NAME, INVOKE_AGENT_TOOL_SLUG, type InvokeAgentDelivery, type InvokeAgentResult, type InvokeAgentTransport, inlineInvokeAgentTransport, type PrincipalTool, type PrincipalToolContext, processAgentInvocations, surfaceAgentCompletions, type WorkerInvocation, type WorkerRunner, } from './invoke-agent.js';
10
12
  export { type AgentLearningConfig, type AgentLearningDeclaration, type ResolvedAgentLearning, resolveAgentLearning, } from './learning.js';
11
13
  export { AgentSchedule, AgentScheduleCollection, type ScheduleStatus, } from './schedule.js';
12
14
  export type { SummaryArticleImage, SummaryArticleOptions, SummaryArticleResult, } from './summary-article.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEG;AAKH,OAAO,wBAAwB,CAAC;AAIhC,YAAY,EACV,cAAc,EACd,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EACL,KAAK,yBAAyB,EAC9B,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,4BAA4B,GAC7B,MAAM,2BAA2B,CAAC;AAInC,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzD,YAAY,EACV,yBAAyB,EACzB,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,OAAO,GACR,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG7D,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,oBAAoB,GACrB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,aAAa,EACb,uBAAuB,EACvB,KAAK,cAAc,GACpB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,yBAAyB,EAC9B,WAAW,EACX,qBAAqB,EACrB,KAAK,iBAAiB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,eAAe,EACf,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,gBAAgB,GACjB,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}