@mohamedatia/fly-design-system 2.10.0 → 2.12.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.
@@ -1,7 +1,7 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { Type, InjectionToken, Signal, OnInit, EventEmitter, OnChanges, OnDestroy, SimpleChanges, PipeTransform, signal, AfterViewInit, ElementRef } from '@angular/core';
3
- import { ControlValueAccessor, Validator, AbstractControl, ValidationErrors } from '@angular/forms';
2
+ import { Type, InjectionToken, Signal, WritableSignal, OnInit, EventEmitter, OnChanges, OnDestroy, SimpleChanges, PipeTransform, signal, AfterViewInit, ElementRef } from '@angular/core';
4
3
  import { Observable } from 'rxjs';
4
+ import { ControlValueAccessor, Validator, AbstractControl, ValidationErrors } from '@angular/forms';
5
5
  import { NavigationExtras } from '@angular/router';
6
6
  import * as _mohamedatia_fly_design_system from '@mohamedatia/fly-design-system';
7
7
 
@@ -123,6 +123,61 @@ declare const FLYOS_LAUNCH_EVENT = "flyos:launch";
123
123
  declare const FlyosPendingLaunchesGlobalKey: "__FLYOS_PENDING_LAUNCHES__";
124
124
  /** Type of the `globalThis[FlyosPendingLaunchesGlobalKey]` registry. */
125
125
  type FlyosPendingLaunches = Record<string, LaunchContext>;
126
+ /**
127
+ * Hint published by an app to drive the window-titlebar help-button deeplink.
128
+ *
129
+ * The shell renders the help button automatically on every non-chromeless
130
+ * window, defaulting the deeplink to `params.appId = win.appId`. An app
131
+ * customises that deeplink by injecting <see cref="WINDOW_HELP_HINT"/> and
132
+ * setting the writable signal — typically once on construct + again as the
133
+ * active route/page changes.
134
+ *
135
+ * - `appId` overrides `win.appId` (rare; reserved for embedded sub-apps
136
+ * whose help lives under a different seed-pack id).
137
+ * - `topic` seeds the help-center search query when the deeplink fires.
138
+ * Free-form short phrase (e.g. "calculated measures", "share dialog").
139
+ * Updated dynamically as the user navigates within the app.
140
+ */
141
+ interface WindowHelpHint {
142
+ /** Override for the help-center `appId` chip pre-selection. Optional. */
143
+ readonly appId?: string;
144
+ /** Free-form search-query seed for the help-center landing. */
145
+ readonly topic?: string | null;
146
+ }
147
+ /**
148
+ * Per-window injection token carrying the active <see cref="WindowHelpHint"/>
149
+ * as a writable signal. The shell creates one writable signal per window
150
+ * (alongside <see cref="LAUNCH_CONTEXT"/>); apps inject it and `.set(...)` to
151
+ * publish or update their hint. Setting `null` clears the hint — the chrome
152
+ * falls back to the implicit `win.appId` deeplink.
153
+ *
154
+ * **Federation note:** same caveat as <see cref="LAUNCH_CONTEXT"/> — Native
155
+ * Federation can split the InjectionToken across host/remote bundles, so
156
+ * federated remotes cannot rely on DI to publish hints. Use
157
+ * <see cref="FLY_WINDOW_HELP_HINT_EVENT"/> instead.
158
+ */
159
+ declare const WINDOW_HELP_HINT: InjectionToken<WritableSignal<WindowHelpHint | null>>;
160
+ /**
161
+ * Federation-safe window CustomEvent name for publishing a help hint from a
162
+ * federated remote that cannot see <see cref="WINDOW_HELP_HINT"/> via DI.
163
+ *
164
+ * Detail: <see cref="FlyWindowHelpHintEventDetail"/>. The shell listens at
165
+ * `window` scope and mirrors the payload into the matching per-window signal
166
+ * (keyed by `windowId` from <see cref="WINDOW_DATA"/>). Pairs with the
167
+ * <see cref="FLYOS_LAUNCH_EVENT"/> pattern.
168
+ */
169
+ declare const FLY_WINDOW_HELP_HINT_EVENT = "flyos:window-help-hint";
170
+ /**
171
+ * Detail payload of the <see cref="FLY_WINDOW_HELP_HINT_EVENT"/> CustomEvent.
172
+ * Federated remotes dispatch one event per hint change; the shell filters
173
+ * by `windowId` (each window owns its own hint).
174
+ */
175
+ interface FlyWindowHelpHintEventDetail {
176
+ /** Window id; remotes obtain via WINDOW_DATA at mount. */
177
+ readonly windowId: string;
178
+ /** Pass `null` to clear; the chrome reverts to win.appId. */
179
+ readonly hint: WindowHelpHint | null;
180
+ }
126
181
 
127
182
  interface User {
128
183
  id: string;
@@ -1224,6 +1279,52 @@ declare class SourceAppResolver {
1224
1279
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<SourceAppResolver>;
1225
1280
  }
1226
1281
 
1282
+ /**
1283
+ * Per-window publisher handle returned by {@link FlyWindowHelpService.forWindow}.
1284
+ * Bound to a single window id; keep the handle and call {@link setHint} as the
1285
+ * active view changes.
1286
+ */
1287
+ interface FlyWindowHelpPublisher {
1288
+ /**
1289
+ * Set the active hint for this window (or null to clear — the shell then
1290
+ * reverts to the window's own `appId`). Safe to call repeatedly.
1291
+ */
1292
+ setHint(hint: WindowHelpHint | null): void;
1293
+ }
1294
+ /**
1295
+ * Publishes a {@link WindowHelpHint} for a window so the shell's titlebar Help
1296
+ * button deeplinks the help-center reader to the article most relevant to where
1297
+ * the user is. The **publisher twin** of the shell's `WindowHelpHintService`
1298
+ * (the listener): it exists in the design system so that **any app — in-shell
1299
+ * OS-Core app or federated remote — publishes hints the same way**, without
1300
+ * hand-rolling the cross-bundle CustomEvent contract.
1301
+ *
1302
+ * **Why a `window` CustomEvent and not the `WINDOW_HELP_HINT` DI token?**
1303
+ * Native Federation can split an `InjectionToken` instance across host and
1304
+ * remote bundles, so a remote that injects `WINDOW_HELP_HINT` may receive a
1305
+ * different token than the one the shell provides. The string-keyed
1306
+ * {@link FLY_WINDOW_HELP_HINT_EVENT} crosses bundles reliably; the shell mirrors
1307
+ * it into the matching per-window hint signal.
1308
+ *
1309
+ * **Why a per-window handle and not `bindWindow`/`setHint` state?**
1310
+ * This service is `providedIn: 'root'` and the design system is a shared
1311
+ * Native-Federation singleton, so a *single* instance is shared across the
1312
+ * shell and every concurrently-open window (multiple in-shell apps, multiple
1313
+ * remotes). A handle closes over its window id, so two windows never clobber a
1314
+ * shared "current window" — each handle targets only its own titlebar.
1315
+ */
1316
+ declare class FlyWindowHelpService {
1317
+ /**
1318
+ * Returns a publisher bound to a single window. Call once per window (e.g.
1319
+ * from the app root with `WINDOW_DATA.id`) and keep the handle. A
1320
+ * null/undefined id (standalone, no shell) yields a handle whose `setHint`
1321
+ * is a no-op.
1322
+ */
1323
+ forWindow(windowId: string | null | undefined): FlyWindowHelpPublisher;
1324
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<FlyWindowHelpService, never>;
1325
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<FlyWindowHelpService>;
1326
+ }
1327
+
1227
1328
  /**
1228
1329
  * fly-remote-styles — Shell-layer CSS loader for Native Federation remotes.
1229
1330
  *
@@ -1826,8 +1927,25 @@ declare class FlyFileUploadComponent {
1826
1927
  */
1827
1928
  /** Frozen MIME used by `flyAgentDraggable` and the drop-zone reader. Never change without a DS major. */
1828
1929
  declare const AGENT_DRAG_MIME: "application/x-fly-agent-payload+json";
1829
- /** Frozen payload envelope version. Bump only with a published DS major. */
1830
- declare const AGENT_PAYLOAD_VERSION: 1;
1930
+ /**
1931
+ * Frozen payload envelope version.
1932
+ *
1933
+ * v1 — minimal drag payload: kind / appId / version / payload / plainTextFallback /
1934
+ * suggestedCommandIds. Still used by the drag/drop surface.
1935
+ *
1936
+ * v2 — bus envelope ({@link AgentMessageEnvelope}). Adds optional `userMessage`,
1937
+ * `systemContext`, `attachments`, `mcpScope` so a dispatcher can give the agent
1938
+ * rich context without polluting the user-visible message bubble. v2 is a
1939
+ * superset of v1 — every v1 payload is a valid v2 payload — so the version
1940
+ * number ratchets forward without breaking existing callers.
1941
+ */
1942
+ declare const AGENT_PAYLOAD_VERSION: 2;
1943
+ /**
1944
+ * Versions accepted by the validator. v1 payloads (the drag/drop surface) remain valid;
1945
+ * v2 adds the optional bus-envelope fields. Renderers narrow on `version` when they need
1946
+ * to.
1947
+ */
1948
+ declare const SUPPORTED_AGENT_PAYLOAD_VERSIONS: readonly number[];
1831
1949
  /**
1832
1950
  * Where a command surfaces. `'global'` = always offered. `{ appId }` = offered only when
1833
1951
  * the host's live `liveAppIds` set (passed to {@link AgentCommandRegistry.visible}) contains
@@ -1874,22 +1992,263 @@ interface AgentCommandHandle {
1874
1992
  dispose(): void;
1875
1993
  }
1876
1994
  /**
1877
- * The wire envelope written to a `DataTransfer` by `flyAgentDraggable`. Renderers narrow
1878
- * on `kind`; mismatches fall back to `plainTextFallback`.
1995
+ * How a lookup fetches candidate entities. The picker calls the app's existing
1996
+ * authenticated REST search endpoint (the same one the agent's MCP `*_list_brief`
1997
+ * tool wraps) through the shell's HttpClient — gateway routing + auth
1998
+ * interceptor apply. We deliberately do NOT route typeahead through MCP (agent-
1999
+ * shaped, agent-auth) or the dataset executor (aggregation-shaped, no fulltext).
2000
+ *
2001
+ * Field mapping is declarative because entities differ: Circles trends/signals
2002
+ * expose `/brief` endpoints returning `{ id, title, status }`, while scenarios
2003
+ * have no brief variant and return full objects with `titleEn` / `titleAr`. The
2004
+ * `displayField` / `secondaryField` indirection absorbs that per-entity skew so
2005
+ * one picker component serves them all.
2006
+ */
2007
+ interface LookupSearch {
2008
+ /**
2009
+ * Relative REST path the picker GETs, e.g. `/api/circles/trends/brief`. Must
2010
+ * be a relative path (no scheme/host) — the SSRF guard at onboard time (when
2011
+ * the descriptor is manifest-backed) and the picker both reject absolute URLs.
2012
+ */
2013
+ readonly endpoint: string;
2014
+ /** Query param carrying the typed text, e.g. `search`. */
2015
+ readonly queryParam: string;
2016
+ /** Static query params merged into every request, e.g. `{ pageSize: '10' }`. */
2017
+ readonly extraParams?: Readonly<Record<string, string>>;
2018
+ /** Response-item field holding the entity id. Default `id`. */
2019
+ readonly idField?: string;
2020
+ /** Response-item field holding the display label, e.g. `title` / `titleEn`. */
2021
+ readonly displayField: string;
2022
+ /** Optional response-item field for the chip's secondary line (status, category). */
2023
+ readonly secondaryField?: string;
2024
+ /**
2025
+ * Dotted path to the results array within the response body when it is
2026
+ * wrapped, e.g. `items` for `{ items: [...], total }`. Omit when the response
2027
+ * body IS the array.
2028
+ */
2029
+ readonly resultsPath?: string;
2030
+ }
2031
+ /**
2032
+ * A lookupable entity offered by the `/lookup` palette. Registered by the owning
2033
+ * app (a federation remote self-registers at boot, mirroring {@link AgentCommand})
2034
+ * or, once manifest-backed, projected from the app's `lookups[]` manifest section.
2035
+ *
2036
+ * The descriptor is a shallow, business-logic-free descriptor: it tells the
2037
+ * picker WHAT to search, WHERE it is offered, and HOW to map the response — the
2038
+ * picker owns the typeahead UX, the shell owns the HTTP call.
2039
+ */
2040
+ interface LookupDescriptor {
2041
+ /**
2042
+ * Stable entity key, kebab/lower, e.g. `scenario`. Doubles as the `/lookup
2043
+ * <entity>` sub-token and the group key the picked ref is grouped under when
2044
+ * serialized for the agent.
2045
+ */
2046
+ readonly entity: string;
2047
+ /** i18n key for the entity's display name in the picker / palette. */
2048
+ readonly labelKey: string;
2049
+ /** Optional PrimeIcons class for the picker row + chip. */
2050
+ readonly icon?: string;
2051
+ /**
2052
+ * Route globs where this lookup is offered (matched against the shell's
2053
+ * router url), e.g. `['/scenarios/*', '/trends/*']`. Omit / empty = offered
2054
+ * everywhere the owning app is live.
2055
+ */
2056
+ readonly pages?: readonly string[];
2057
+ /** How to fetch + map candidates. */
2058
+ readonly search: LookupSearch;
2059
+ }
2060
+ /** What hosts pass to the lookup registry. Adds the scope to {@link LookupDescriptor}. */
2061
+ interface LookupRegistration extends LookupDescriptor {
2062
+ /** Same scoping semantics as {@link AgentCommandScope}. */
2063
+ readonly scope: AgentCommandScope;
2064
+ }
2065
+ /** One resolved row the picker returns once the user selects a candidate. */
2066
+ interface LookupResult {
2067
+ /** The entity kind (echoes {@link LookupDescriptor.entity}). */
2068
+ readonly entity: string;
2069
+ /** Selected entity id. */
2070
+ readonly id: string;
2071
+ /** Selected entity's display label. */
2072
+ readonly label: string;
2073
+ /** Optional secondary detail (status / category). */
2074
+ readonly secondary?: string;
2075
+ }
2076
+ /** Disposable handle returned by the lookup registry. Idempotent `dispose()`. */
2077
+ interface LookupHandle {
2078
+ dispose(): void;
2079
+ }
2080
+ /**
2081
+ * The wire envelope used by both the drag/drop surface and the imperative
2082
+ * {@link AgentActionBus}. Renderers narrow on `kind`; mismatches fall back to
2083
+ * `plainTextFallback`.
2084
+ *
2085
+ * The base fields (v1) describe **what** is being handed to the agent panel.
2086
+ * The v2 fields describe **how the agent should treat it** — `userMessage`
2087
+ * scopes the user-visible bubble, `systemContext` extends the system prompt,
2088
+ * `attachments` decorate the message with typed chips, and `mcpScope` hints
2089
+ * the agent toward a tool family. All v2 fields are optional so existing
2090
+ * v1 (drag/drop) payloads remain valid envelopes.
2091
+ *
2092
+ * Caps (see {@link AgentPayloadLimits}):
2093
+ * - JSON total 32 KB
2094
+ * - plainTextFallback 8 KB
2095
+ * - per-string field 4 KB
2096
+ * - userMessage 280 chars
2097
+ * - systemContext 32 entries × 4 KB per value, 8 KB total serialized
2098
+ * - attachments 4 entries, kind-dependent inner caps
2099
+ * - mcpScope.apis 5 prefixes × 128 chars
2100
+ *
2101
+ * The cap math is split per-section so an oversize attachment fails fast at the
2102
+ * attachment site instead of the whole envelope; field paths are dotted (see
2103
+ * {@link AgentPayloadValidationResult}).
1879
2104
  */
1880
2105
  interface AgentDragPayload<T = unknown> {
1881
2106
  /** Domain-stable kind, e.g. `circles.trend`. */
1882
2107
  readonly kind: string;
1883
2108
  /** Originating appId. Must match an entry in the host's app registry. */
1884
2109
  readonly appId: string;
1885
- /** Frozen format version. Mismatch -> renderer falls back to text. */
1886
- readonly version: typeof AGENT_PAYLOAD_VERSION;
2110
+ /** Frozen format version. Accepted: 1 or {@link AGENT_PAYLOAD_VERSION} (2). */
2111
+ readonly version: number;
1887
2112
  /** Domain object. Renderers narrow on `kind`. */
1888
2113
  readonly payload: T;
1889
2114
  /** Plain-text fallback written to the dataTransfer alongside the typed MIME. */
1890
2115
  readonly plainTextFallback: string;
1891
2116
  /** Optional command ids to highlight when this payload is dropped. */
1892
2117
  readonly suggestedCommandIds?: readonly string[];
2118
+ /**
2119
+ * Short, locale-resolved string the dispatcher wants shown in the user's
2120
+ * chat bubble. The agent panel uses it as the visible message text; when
2121
+ * absent, the panel falls back to a generic per-verb default
2122
+ * (e.g. "Tell me more about this"). Cap 280 chars — chip-sized, not essay.
2123
+ *
2124
+ * This is the ONLY field that should ever surface to the user verbatim.
2125
+ * Everything else (systemContext, attachment bodies, mcpScope) is wire-only.
2126
+ */
2127
+ readonly userMessage?: string;
2128
+ /**
2129
+ * Flat key→string facts the dispatcher wants injected into the agent's
2130
+ * system prompt for this turn. Keys are dot-namespaced (e.g.
2131
+ * `chart.name`, `chart.type`, `chart.dimension`) to keep the model's
2132
+ * mental schema flat and grep-friendly. Values are strings — booleans,
2133
+ * numbers, and dates must be pre-serialized at the call site so the
2134
+ * dispatcher owns the formatting (timezone, locale, number style).
2135
+ *
2136
+ * Cap: 32 entries, 4 KB per value, 8 KB total when serialized.
2137
+ *
2138
+ * NOT user-visible. The agent panel may transiently embed this as an
2139
+ * `[Internal context]` block in the wire content while the backend
2140
+ * learns to consume the dedicated field, but never renders it in the
2141
+ * user bubble.
2142
+ */
2143
+ readonly systemContext?: Readonly<Record<string, string>>;
2144
+ /**
2145
+ * Typed attachments rendered as a chip strip under the user's outgoing
2146
+ * message bubble. Each entry has a `kind` discriminator and a `label`
2147
+ * (locale-resolved by the dispatcher). v2 ships `json` + `text`;
2148
+ * `image` and `file` are reserved — their interfaces are stable so
2149
+ * future callers don't need a contract bump, but the panel may render
2150
+ * a generic chip for them until per-kind renderers land.
2151
+ *
2152
+ * Cap: 4 entries per envelope. Per-kind body caps:
2153
+ * - json: 16 KB serialized
2154
+ * - text: 8 KB UTF-8
2155
+ * - image / file: dataUrl ≤ 32 KB (small previews; large media stays in
2156
+ * the files-manager and is referenced by id)
2157
+ */
2158
+ readonly attachments?: readonly AgentEnvelopeAttachment[];
2159
+ /**
2160
+ * Advisory MCP scope. The agent service injects these prefixes into the
2161
+ * system prompt as a tool-selection hint ("prefer tools matching
2162
+ * `dashboard.reports.*` for this turn") — NOT a hard filter. The agent
2163
+ * remains free to pick any tool; this just biases the first guess so a
2164
+ * dashboard explain doesn't waste a tool-call probing Notes APIs first.
2165
+ *
2166
+ * Cap: 5 prefixes × 128 chars. Prefixes should match gateway-aggregated
2167
+ * OpenAPI tag/path roots so they line up with the names the MCP server
2168
+ * exposes — see `src/backend/gateway` Swagger aggregation + the dynamic
2169
+ * loader in `src/backend/mcp-server`.
2170
+ */
2171
+ readonly mcpScope?: AgentMcpScope;
2172
+ /**
2173
+ * Optional deep-link route the originating app can use to re-open the
2174
+ * source object. When set, payload chips (and any other renderer that
2175
+ * surfaces the envelope to the user) become clickable — clicking calls
2176
+ * `ShellLauncherService.launch({ appId, route: deepLinkRoute })` so the
2177
+ * target app opens / focuses and navigates to the originating object.
2178
+ *
2179
+ * Shape constraints (mirror `DeepLinkService.isValidRoute`):
2180
+ * - starts with `/`
2181
+ * - ≤ {@link AgentPayloadLimits.maxDeepLinkRouteBytes} bytes (default
2182
+ * 1024) — matches the route limit on the wider shell deep-link
2183
+ * contract so this field can be handed straight to the launcher.
2184
+ * - no `..` segments
2185
+ * - no `//` runs
2186
+ * - no scheme-like prefixes (`/javascript:`, `/data:`, `/http:`, `/https:`)
2187
+ *
2188
+ * The DS validator enforces only the byte cap — full route syntax
2189
+ * validation is owned by the shell side (`DeepLinkService`) because the
2190
+ * DS package is shell-agnostic and shouldn't grow a second copy of the
2191
+ * URL grammar. Apps building envelopes are expected to stamp routes that
2192
+ * match their own internal route schema (e.g. dashboard publishes
2193
+ * `/reports/{id}` and `/custom/{id}`); see `skills/cross-app-deep-linking.md`.
2194
+ *
2195
+ * Backwards-compat: absent on v1 payloads and on v2 payloads built
2196
+ * before this field was added. Persisted JSONB chips without the field
2197
+ * remain non-clickable; new chips light up automatically.
2198
+ */
2199
+ readonly deepLinkRoute?: string;
2200
+ }
2201
+ /**
2202
+ * Canonical name for the bus-side envelope. v2 callers should reference this
2203
+ * over {@link AgentDragPayload} for clarity — the underlying shape is
2204
+ * identical, but the name signals "this is going to the agent, not to a
2205
+ * drop zone." The alias is intentional: one wire shape, two semantic uses.
2206
+ */
2207
+ type AgentMessageEnvelope<T = unknown> = AgentDragPayload<T>;
2208
+ /**
2209
+ * Typed attachment discriminator for {@link AgentDragPayload.attachments}.
2210
+ *
2211
+ * - `json` — structured data the panel renders as a "code-ish" chip the
2212
+ * user can expand. Used for chart snapshots, query results, etc.
2213
+ * - `text` — short utterance / excerpt with optional MIME. Used when the
2214
+ * dispatcher wants the chip to preview a note paragraph, log line,
2215
+ * code snippet, etc.
2216
+ * - `image` / `file` — reserved. Stable interface; renderers added per
2217
+ * downstream caller (the panel may fall back to a generic icon-chip).
2218
+ *
2219
+ * Every kind carries `label` — that's what shows on the chip face and what
2220
+ * a11y trees announce.
2221
+ */
2222
+ type AgentEnvelopeAttachment = {
2223
+ readonly kind: 'json';
2224
+ readonly label: string;
2225
+ readonly json: unknown;
2226
+ } | {
2227
+ readonly kind: 'text';
2228
+ readonly label: string;
2229
+ readonly text: string;
2230
+ readonly mimeType?: string;
2231
+ } | {
2232
+ readonly kind: 'image';
2233
+ readonly label: string;
2234
+ /** `data:` URL — small previews only. Large media stays in files-manager. */
2235
+ readonly dataUrl: string;
2236
+ readonly mimeType: string;
2237
+ } | {
2238
+ readonly kind: 'file';
2239
+ readonly label: string;
2240
+ readonly dataUrl: string;
2241
+ readonly mimeType: string;
2242
+ readonly bytes: number;
2243
+ };
2244
+ /** Advisory tool-selection hint for {@link AgentDragPayload.mcpScope}. */
2245
+ interface AgentMcpScope {
2246
+ /**
2247
+ * Prefixes of gateway-aggregated OpenAPI tags / path roots — e.g.
2248
+ * `dashboard.reports`, `notes.documents`. The agent service treats these
2249
+ * as a soft preference, not a hard filter.
2250
+ */
2251
+ readonly apis: readonly string[];
1893
2252
  }
1894
2253
  /**
1895
2254
  * Where a chip is being rendered. `inline` = inside the input chip tray (removable);
@@ -1937,6 +2296,32 @@ interface AgentPayloadLimits {
1937
2296
  readonly maxPlainTextFallbackBytes: number;
1938
2297
  /** Cap on any single string field inside payload (recursive). Default 4 KB. */
1939
2298
  readonly maxStringFieldBytes: number;
2299
+ /** Cap on `userMessage` UTF-8 byte length. Default 280 chars (~1.1 KB). */
2300
+ readonly maxUserMessageBytes: number;
2301
+ /** Max entries in `systemContext`. Default 32. */
2302
+ readonly maxSystemContextEntries: number;
2303
+ /** Cap on any single systemContext value's UTF-8 byte length. Default 4 KB. */
2304
+ readonly maxSystemContextValueBytes: number;
2305
+ /** Cap on the full JSON.stringify(systemContext). Default 8 KB. */
2306
+ readonly maxSystemContextJsonBytes: number;
2307
+ /** Max attachments per envelope. Default 4. */
2308
+ readonly maxAttachments: number;
2309
+ /** Cap on a `json` attachment's serialized body. Default 16 KB. */
2310
+ readonly maxAttachmentJsonBytes: number;
2311
+ /** Cap on a `text` attachment's body bytes. Default 8 KB. */
2312
+ readonly maxAttachmentTextBytes: number;
2313
+ /** Cap on an `image` / `file` attachment's dataUrl bytes. Default 32 KB. */
2314
+ readonly maxAttachmentDataUrlBytes: number;
2315
+ /** Max prefixes in `mcpScope.apis`. Default 5. */
2316
+ readonly maxMcpScopeApis: number;
2317
+ /** Cap on any single mcpScope prefix string. Default 128 chars. */
2318
+ readonly maxMcpScopeApiBytes: number;
2319
+ /**
2320
+ * Cap on `deepLinkRoute` UTF-8 byte length. Default 1024 bytes — matches
2321
+ * the route limit on `DeepLinkService.isValidRoute` so this field can be
2322
+ * handed straight to the shell launcher without a second resize.
2323
+ */
2324
+ readonly maxDeepLinkRouteBytes: number;
1940
2325
  }
1941
2326
  declare const DEFAULT_AGENT_PAYLOAD_LIMITS: AgentPayloadLimits;
1942
2327
  /**
@@ -1951,7 +2336,7 @@ type AgentPayloadValidationResult = {
1951
2336
  readonly ok: true;
1952
2337
  } | {
1953
2338
  readonly ok: false;
1954
- readonly reason: 'json_too_large' | 'fallback_too_large' | 'field_too_large' | 'invalid_version' | 'invalid_kind';
2339
+ readonly reason: 'json_too_large' | 'fallback_too_large' | 'field_too_large' | 'invalid_version' | 'invalid_kind' | 'user_message_too_large' | 'system_context_too_many_entries' | 'system_context_value_too_large' | 'system_context_json_too_large' | 'too_many_attachments' | 'attachment_invalid_kind' | 'attachment_json_too_large' | 'attachment_text_too_large' | 'attachment_data_url_too_large' | 'mcp_scope_too_many_apis' | 'mcp_scope_api_too_large' | 'deep_link_route_too_large' | 'deep_link_route_invalid_shape';
1955
2340
  /** Dotted property-access path to the offending field, e.g. `payload.title` or `payload.tags[2]`. NOT RFC 6901 JSON Pointer. */
1956
2341
  readonly fieldPath?: string;
1957
2342
  readonly actualBytes?: number;
@@ -2007,6 +2392,53 @@ declare class AgentCommandRegistry {
2007
2392
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AgentCommandRegistry>;
2008
2393
  }
2009
2394
 
2395
+ /**
2396
+ * Singleton registry of entity lookups offered by the `/lookup` typeahead.
2397
+ *
2398
+ * Mirrors {@link AgentCommandRegistry} exactly — same federation-singleton story
2399
+ * (`sharedMappings: ['@mohamedatia/fly-design-system']`), same id-collision
2400
+ * "latest wins" contract, same disposable-handle ergonomics. Federated remotes
2401
+ * register their lookupable entities at boot (Circles: scenario / trend / signal)
2402
+ * and dispose on window close, so the picker only ever offers entities whose app
2403
+ * is currently live.
2404
+ *
2405
+ * Storage is a signal store keyed on {@link LookupRegistration.entity}. Because
2406
+ * `entity` is the collision key, an app re-registering the same entity replaces
2407
+ * the prior descriptor; a stale handle's `dispose()` then no-ops.
2408
+ */
2409
+ declare class AgentLookupRegistry {
2410
+ private readonly _lookups;
2411
+ /** All currently-registered lookups, in insertion order. */
2412
+ readonly all: Signal<readonly LookupRegistration[]>;
2413
+ /**
2414
+ * Lookups whose scope is `'global'` OR whose `scope.appId` is in the live app
2415
+ * set. Recomputes when either the registry or `liveAppIds` changes — pass a
2416
+ * `Signal<ReadonlySet<string>>` from the host's app-registry for reactive
2417
+ * filtering, exactly like {@link AgentCommandRegistry.visible}.
2418
+ */
2419
+ visible(liveAppIds: ReadonlySet<string> | Signal<ReadonlySet<string>>): Signal<readonly LookupRegistration[]>;
2420
+ /**
2421
+ * Register one lookup. Returns a handle whose `dispose()` removes the row by
2422
+ * `entity`. A later re-registration of the same entity makes the original
2423
+ * handle's `dispose()` a no-op (the newer registration owns the row).
2424
+ */
2425
+ register(lookup: LookupRegistration): LookupHandle;
2426
+ /**
2427
+ * Bulk register. Rolls back on a duplicate entity WITHIN the input batch
2428
+ * (throws before any row lands). Cross-batch duplicates against existing rows
2429
+ * follow the standard "latest wins" rule and do NOT trigger rollback.
2430
+ */
2431
+ registerAll(lookups: readonly LookupRegistration[]): LookupHandle;
2432
+ /** Tear down by entity. Idempotent. */
2433
+ unregister(entity: string): void;
2434
+ /** Monotonic counter; identifies which registration call currently owns each entity. */
2435
+ private _generation;
2436
+ /** entity → generation. Lets a stale handle's `dispose()` no-op after replacement. */
2437
+ private readonly _owners;
2438
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AgentLookupRegistry, never>;
2439
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<AgentLookupRegistry>;
2440
+ }
2441
+
2010
2442
  /**
2011
2443
  * Singleton registry of chip-renderer components and keyboard-alternative draggable
2012
2444
  * items, keyed by `kind` and `appId`.
@@ -2063,6 +2495,202 @@ declare class AgentDropRegistry {
2063
2495
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AgentDropRegistry>;
2064
2496
  }
2065
2497
 
2498
+ /**
2499
+ * Imperative action published by an app, consumed by the agent panel.
2500
+ *
2501
+ * Re-uses {@link AgentDragPayload} as the wire envelope so a dragged item
2502
+ * and a programmatic "Explain" click are byte-for-byte the same shape —
2503
+ * renderers, validators, and serialisation paths never fork on transport.
2504
+ *
2505
+ * Adding a verb is a minor DS bump (consumers ignore unknown verbs in
2506
+ * their `switch`). Removing one is a major DS bump.
2507
+ */
2508
+ type AgentActionVerb = 'explain' | 'why-empty' | 'compose-query' | 'compare' | 'forecast' | 'summarize';
2509
+ /**
2510
+ * Whether the agent panel sends the staged payload immediately or stages
2511
+ * the chip for the user to edit and send manually.
2512
+ *
2513
+ * Phase 1 (DS v2.6.0) supports `'stage'` only. Dispatching with `'auto'`
2514
+ * throws {@link AgentActionUnsupportedDispatchError} so callers don't
2515
+ * silently fail. `'auto'` lands once `AgentInputComponent.programmaticSubmit`
2516
+ * is exposed and reviewed against the input's state machine.
2517
+ */
2518
+ type AgentActionDispatch = 'auto' | 'stage';
2519
+ interface AgentAction<T = unknown> {
2520
+ /** Intent the agent should apply to {@link payload}. */
2521
+ readonly verb: AgentActionVerb;
2522
+ /** The wire envelope. Validated against {@link validateAgentPayload}'s
2523
+ * size caps before the bus fans it out. */
2524
+ readonly payload: AgentDragPayload<T>;
2525
+ /** Optional slash command id to bind before send (e.g. `'explain-report'`).
2526
+ * Phase 1 captures this for telemetry only — actual binding lands when
2527
+ * the input's programmatic-send API ships. An unknown id is dropped
2528
+ * silently with a console warning, the chip still arrives. */
2529
+ readonly autoCommandId?: string;
2530
+ /** Phase 1 supports `'stage'` only. See {@link AgentActionDispatch}. */
2531
+ readonly dispatch: AgentActionDispatch;
2532
+ /** Source DOM rect for the FLIP entry animation. Omit to skip the
2533
+ * animation (e.g. dispatching from a keyboard shortcut with no anchor). */
2534
+ readonly originRect?: DOMRect;
2535
+ /** Optional HTML snippet rendered inside the flight ghost. Callers are
2536
+ * responsible for escaping untrusted text — the bus does not sanitise.
2537
+ * Defaults (when omitted) to a strong-wrapped escape of the payload's
2538
+ * `plainTextFallback` rendered by the panel host. */
2539
+ readonly originPreviewHtml?: string;
2540
+ }
2541
+ /**
2542
+ * Thrown synchronously by {@link AgentActionBus.dispatch} when a caller
2543
+ * supplies a dispatch mode this DS version doesn't implement yet. Catching
2544
+ * by class name lets a forward-compatible caller fall back to `'stage'`
2545
+ * without depending on instanceof across federation boundaries.
2546
+ */
2547
+ declare class AgentActionUnsupportedDispatchError extends Error {
2548
+ readonly dispatch: AgentActionDispatch;
2549
+ constructor(dispatch: AgentActionDispatch);
2550
+ }
2551
+
2552
+ /**
2553
+ * Imperative sibling to {@link AgentCommandRegistry} / {@link AgentDropRegistry}.
2554
+ *
2555
+ * Apps call {@link dispatch} to push a typed {@link AgentAction} onto the bus;
2556
+ * the agent panel subscribes once at construct and routes by verb. The bus
2557
+ * itself is a thin pass-through — it does NOT decide UI behaviour. The
2558
+ * subscriber (agent-panel) owns: showing the panel, staging the chip,
2559
+ * triggering the flight animation, and binding the command. This keeps the
2560
+ * DS free of host policy.
2561
+ *
2562
+ * Federation-safe: `providedIn: 'root'` + `sharedMappings: ['@mohamedatia/fly-design-system']`
2563
+ * give every federated remote the same singleton, so a remote's "Explain"
2564
+ * button reaches the host's panel without any cross-bundle wiring.
2565
+ *
2566
+ * Validation runs synchronously inside `dispatch` so a caller that sends an
2567
+ * oversize payload sees the throw at their site, not on the subscriber. The
2568
+ * subscriber therefore never has to defend against malformed envelopes.
2569
+ */
2570
+ declare class AgentActionBus {
2571
+ private readonly _actions$;
2572
+ /** Hot stream of actions in dispatch order. Subscribers receive only
2573
+ * actions dispatched AFTER they subscribe — late subscribers see nothing
2574
+ * retroactively. Use {@link lastAction} for the latest snapshot. */
2575
+ readonly actions$: Observable<AgentAction>;
2576
+ /** Most recent action — for DevTools, smoke tests, and late-subscriber
2577
+ * catch-up. Null until the first successful dispatch. */
2578
+ readonly lastAction: _angular_core.WritableSignal<AgentAction<unknown> | null>;
2579
+ /**
2580
+ * The action currently being processed by the subscriber, or null when
2581
+ * none. Set by {@link dispatch} immediately before emitting on
2582
+ * {@link actions$}; cleared by the subscriber via {@link settle} once
2583
+ * it finishes its handler (success or fail). Lets the dispatcher render
2584
+ * a busy state on the originating control — e.g. a card swapping its
2585
+ * sparkle icon for a spinner while the agent panel mints the optimistic
2586
+ * thread and starts the request. Identity check (`bus.inFlight() === act`)
2587
+ * is the panel-side contract; dispatchers usually project to a stable id
2588
+ * inside the payload (e.g. <c>reportId</c>) to scope busy-state visually.
2589
+ *
2590
+ * If multiple dispatches race, the latest wins — the prior in-flight
2591
+ * action is dropped on the floor here (the panel may still handle it,
2592
+ * but the dispatcher's busy indicator follows the newer action). Apps
2593
+ * that need stricter single-flight semantics should guard at the call
2594
+ * site (the agent-panel's <c>_pendingTempThreadId</c> already does so
2595
+ * for the explain verb).
2596
+ */
2597
+ readonly inFlight: _angular_core.WritableSignal<AgentAction<unknown> | null>;
2598
+ /**
2599
+ * Push an action onto the bus.
2600
+ *
2601
+ * Throws synchronously when:
2602
+ * - `dispatch === 'auto'` (not implemented in this DS version) — see
2603
+ * {@link AgentActionUnsupportedDispatchError}.
2604
+ * - the payload fails {@link validateAgentPayload} (oversize, invalid
2605
+ * version, invalid kind). The error message carries the field path
2606
+ * so the caller can fix the offending field.
2607
+ *
2608
+ * Subscribers see the action via {@link actions$} on the next tick of
2609
+ * the Subject; the {@link lastAction} signal updates synchronously
2610
+ * before the Subject emits so an effect reading both stays consistent.
2611
+ */
2612
+ dispatch<T>(action: AgentAction<T>): void;
2613
+ /**
2614
+ * Subscriber contract: call after the handler for {@link inFlight}
2615
+ * completes (success or fail). Only clears {@link inFlight} if it still
2616
+ * points at the passed action — a no-op when a later dispatch already
2617
+ * superseded it. Pass the same action reference the subscriber received
2618
+ * from {@link actions$}; identity is the gate.
2619
+ */
2620
+ settle(action: AgentAction): void;
2621
+ /**
2622
+ * Semantic alias of {@link settle} for explicit user-driven cancellation —
2623
+ * e.g. a future "Stop" button in the agent input tray, or a dispatcher
2624
+ * teardown that wants to abandon its own in-flight action. Identical
2625
+ * runtime behaviour (identity check + clear), but the two-method surface
2626
+ * lets the UI distinguish "handler finished" from "user said no" in
2627
+ * telemetry / logs without sniffing a "reason" parameter.
2628
+ *
2629
+ * Pass the same action reference returned from {@link inFlight} or held
2630
+ * by the dispatcher; identity is the gate.
2631
+ */
2632
+ cancel(action: AgentAction): void;
2633
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AgentActionBus, never>;
2634
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<AgentActionBus>;
2635
+ }
2636
+
2637
+ /**
2638
+ * FLIP-style entry animation for payloads landing in the agent panel.
2639
+ *
2640
+ * Pure DOM + Web Animations API — no Chart.js, no Angular animations module,
2641
+ * no CSS transitions racing layout. Honours `prefers-reduced-motion`: the
2642
+ * ghost is appended then removed without animating when the user asked for
2643
+ * less motion (so DOM side-effects stay consistent).
2644
+ *
2645
+ * Lifecycle:
2646
+ * 1. The agent panel calls {@link registerTarget} in `ngAfterViewInit`
2647
+ * with its header element.
2648
+ * 2. A source app dispatches an `AgentAction` carrying an `originRect`
2649
+ * from `getBoundingClientRect()` on the click target.
2650
+ * 3. The bus subscriber calls {@link flyInto} with that rect.
2651
+ * 4. The animator creates a fixed-position ghost at the origin, animates
2652
+ * transform + opacity toward the registered target's rect, then
2653
+ * removes itself on `onfinish` / `oncancel`.
2654
+ *
2655
+ * Uses `getBoundingClientRect()` (physical viewport coords) so the animation
2656
+ * is RTL-correct without inset-inline math — the rect already encodes the
2657
+ * physical position regardless of `dir`.
2658
+ *
2659
+ * The 900 ms duration and easing curve are deliberately hardcoded — making
2660
+ * them configurable surfaces an API the host can't usefully tune without
2661
+ * understanding motion design as a whole.
2662
+ */
2663
+ declare class AgentFlightAnimator {
2664
+ /** Hardcoded — see class doc. */
2665
+ private static readonly DURATION_MS;
2666
+ private static readonly EASING;
2667
+ /** Floor the target/source scale ratio so a tiny target rect doesn't
2668
+ * collapse the ghost to invisibility before the animation finishes. */
2669
+ private static readonly MIN_SCALE;
2670
+ private targetEl;
2671
+ /** Called by the panel host to publish where flights should land. Pass
2672
+ * `null` on destroy so a re-mounted panel doesn't leave the animator
2673
+ * pointing at a detached node. */
2674
+ registerTarget(el: HTMLElement | null): void;
2675
+ /**
2676
+ * Animate a ghost element from {@link from} to the registered target's
2677
+ * rect. No-ops when:
2678
+ * - no target is registered (silent — panel may not be mounted yet)
2679
+ * - running outside a browser (SSR safety)
2680
+ * - the user has `prefers-reduced-motion: reduce` set (DOM is still
2681
+ * touched so callers see consistent side-effects, but no animation
2682
+ * runs)
2683
+ *
2684
+ * The ghost is appended to `document.body` (not the panel) so a parent
2685
+ * `overflow: hidden` on the panel can't clip the flight path.
2686
+ */
2687
+ flyInto(from: DOMRect, opts?: {
2688
+ previewHtml?: string;
2689
+ }): void;
2690
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AgentFlightAnimator, never>;
2691
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<AgentFlightAnimator>;
2692
+ }
2693
+
2066
2694
  /**
2067
2695
  * Single canonical way to declare a drag source for the agent input.
2068
2696
  *
@@ -2231,11 +2859,14 @@ declare function trimAgentString(input: string, maxBytes: number, ellipsis?: str
2231
2859
  * structured failure with the offending field path and byte counts.
2232
2860
  *
2233
2861
  * Order of checks (cheap → expensive):
2234
- * 1. `version` matches the frozen {@link AGENT_PAYLOAD_VERSION}.
2862
+ * 1. `version` is in {@link SUPPORTED_AGENT_PAYLOAD_VERSIONS}.
2235
2863
  * 2. `kind` is a non-empty string.
2236
2864
  * 3. `plainTextFallback` fits its cap.
2237
2865
  * 4. Every string in `payload` (recursively) fits the per-field cap.
2238
- * 5. The full `JSON.stringify(envelope)` fits the JSON cap.
2866
+ * 5. v2 sections `userMessage`, `systemContext`, `attachments`, `mcpScope`
2867
+ * each fits their independent caps. Skipped when absent so v1 payloads pass
2868
+ * unchanged.
2869
+ * 6. The full `JSON.stringify(envelope)` fits the JSON cap.
2239
2870
  *
2240
2871
  * The walker stops on the first oversize string field — the intent is to surface
2241
2872
  * actionable feedback, not enumerate every offender.
@@ -2344,6 +2975,6 @@ declare const AUDIENCE_ERROR_CODES: {
2344
2975
  };
2345
2976
  type AudienceErrorCode = (typeof AUDIENCE_ERROR_CODES)[keyof typeof AUDIENCE_ERROR_CODES];
2346
2977
 
2347
- export { AGENT_DRAG_MIME, AGENT_PAYLOAD_VERSION, APP_LOOKUP, AUDIENCE_ERROR_CODES, AUDIENCE_LIMITS, AUDIENCE_PRESETS, AUDIENCE_TERM_KINDS, AgentCommandRegistry, AgentDropRegistry, AgentPayloadOversizeError, AudienceBuilderComponent, AuthService, ContextMenuComponent, DEFAULT_AGENT_PAYLOAD_LIMITS, DEFAULT_FLY_THEME_MODE, DialogResult, FLYOS_LAUNCH_EVENT, FLY_LOCALE_CATALOG, FLY_REMOTE_BASE_PATH, FLY_REMOTE_ROUTES, FLY_THEME_MODE_IDS, FlyAgentDraggableDirective, FlyBlockUiComponent, FlyFileUploadComponent, FlyImageUploadComponent, FlyRemoteRouter, FlyRemoteRouterOutletComponent, FlySecureSrcDirective, FlyThemeService, FlyosPendingLaunchesGlobalKey, I18nService, LAUNCH_CONTEXT, MessageBoxButtons, MessageBoxComponent, MessageBoxIcon, MessageBoxService, MockAuthService, RTL_LOCALE_SET, SHARE_ORG_CHART_SYSTEM_KEY_APPS, SHARE_ORG_CHART_SYSTEM_KEY_DEFAULT, SHARE_PANEL_DEFAULT_FILE_LEVELS, SharePanelComponent, SourceAppResolver, StandaloneWindowManagerService, TranslatePipe, WINDOW_DATA, WindowManagerService, findLocaleByDialect, findLocaleByPrefix, isRtlLocale, isRtlLocaleEntry, loadRemoteStyles, matchFlyRoutePattern, normalizeFlyTheme, trimAgentPayload, trimAgentString, unloadRemoteStyles, utf8ByteLength, validateAgentPayload };
2348
- export type { AgentChipHostInputs, AgentCommand, AgentCommandHandle, AgentCommandRegistration, AgentCommandScope, AgentDragPayload, AgentDraggableItem, AgentDropChipMode, AgentDropRendererRegistration, AgentPayloadLimits, AgentPayloadValidationResult, AppEveryonePrincipal, AppEveryoneTerm, AppLookup, AppLookupEntry, AudienceEditTarget, AudienceErrorCode, AudienceFilter, AudienceOptions, AudiencePresetKind, AudienceTerm, AudienceTermKind, ChartTerm, ChildWindowData, ContextMenuItem, ContextMenuSection, DesktopApp, DesktopAppKind, DialogResultWithAcknowledgement, FlyFileInfo, FlyLaunchEventDetail, FlyLocaleEntry, FlyRemoteMatch, FlyRemoteRoute, FlyThemeMode, FlyosPendingLaunches, LaunchContext, LoadBundleOptions, MessageBoxButton, MessageBoxDontAskAgainConfig, MessageBoxOptions, MessageBoxOptionsWithAcknowledgement, MockAuthConfig, OpenWindowOptions, OuPrincipal, OuTerm, PresetTerm, RemoteAppDef, RoleOuLookupRow, RolePrincipal, RolesTerm, ShareOrgChartOption, ShareOuNode, SharePanelLevelOption, SharePermissionEntry, SharePrincipal, SharePrincipalKind, ShareUserResult, User, UserPrincipal, UsersTerm, WindowInstance, WindowState };
2978
+ export { AGENT_DRAG_MIME, AGENT_PAYLOAD_VERSION, APP_LOOKUP, AUDIENCE_ERROR_CODES, AUDIENCE_LIMITS, AUDIENCE_PRESETS, AUDIENCE_TERM_KINDS, AgentActionBus, AgentActionUnsupportedDispatchError, AgentCommandRegistry, AgentDropRegistry, AgentFlightAnimator, AgentLookupRegistry, AgentPayloadOversizeError, AudienceBuilderComponent, AuthService, ContextMenuComponent, DEFAULT_AGENT_PAYLOAD_LIMITS, DEFAULT_FLY_THEME_MODE, DialogResult, FLYOS_LAUNCH_EVENT, FLY_LOCALE_CATALOG, FLY_REMOTE_BASE_PATH, FLY_REMOTE_ROUTES, FLY_THEME_MODE_IDS, FLY_WINDOW_HELP_HINT_EVENT, FlyAgentDraggableDirective, FlyBlockUiComponent, FlyFileUploadComponent, FlyImageUploadComponent, FlyRemoteRouter, FlyRemoteRouterOutletComponent, FlySecureSrcDirective, FlyThemeService, FlyWindowHelpService, FlyosPendingLaunchesGlobalKey, I18nService, LAUNCH_CONTEXT, MessageBoxButtons, MessageBoxComponent, MessageBoxIcon, MessageBoxService, MockAuthService, RTL_LOCALE_SET, SHARE_ORG_CHART_SYSTEM_KEY_APPS, SHARE_ORG_CHART_SYSTEM_KEY_DEFAULT, SHARE_PANEL_DEFAULT_FILE_LEVELS, SUPPORTED_AGENT_PAYLOAD_VERSIONS, SharePanelComponent, SourceAppResolver, StandaloneWindowManagerService, TranslatePipe, WINDOW_DATA, WINDOW_HELP_HINT, WindowManagerService, findLocaleByDialect, findLocaleByPrefix, isRtlLocale, isRtlLocaleEntry, loadRemoteStyles, matchFlyRoutePattern, normalizeFlyTheme, trimAgentPayload, trimAgentString, unloadRemoteStyles, utf8ByteLength, validateAgentPayload };
2979
+ export type { AgentAction, AgentActionDispatch, AgentActionVerb, AgentChipHostInputs, AgentCommand, AgentCommandHandle, AgentCommandRegistration, AgentCommandScope, AgentDragPayload, AgentDraggableItem, AgentDropChipMode, AgentDropRendererRegistration, AgentEnvelopeAttachment, AgentMcpScope, AgentMessageEnvelope, AgentPayloadLimits, AgentPayloadValidationResult, AppEveryonePrincipal, AppEveryoneTerm, AppLookup, AppLookupEntry, AudienceEditTarget, AudienceErrorCode, AudienceFilter, AudienceOptions, AudiencePresetKind, AudienceTerm, AudienceTermKind, ChartTerm, ChildWindowData, ContextMenuItem, ContextMenuSection, DesktopApp, DesktopAppKind, DialogResultWithAcknowledgement, FlyFileInfo, FlyLaunchEventDetail, FlyLocaleEntry, FlyRemoteMatch, FlyRemoteRoute, FlyThemeMode, FlyWindowHelpHintEventDetail, FlyWindowHelpPublisher, FlyosPendingLaunches, LaunchContext, LoadBundleOptions, LookupDescriptor, LookupHandle, LookupRegistration, LookupResult, LookupSearch, MessageBoxButton, MessageBoxDontAskAgainConfig, MessageBoxOptions, MessageBoxOptionsWithAcknowledgement, MockAuthConfig, OpenWindowOptions, OuPrincipal, OuTerm, PresetTerm, RemoteAppDef, RoleOuLookupRow, RolePrincipal, RolesTerm, ShareOrgChartOption, ShareOuNode, SharePanelLevelOption, SharePermissionEntry, SharePrincipal, SharePrincipalKind, ShareUserResult, User, UserPrincipal, UsersTerm, WindowHelpHint, WindowInstance, WindowState };
2349
2980
  //# sourceMappingURL=mohamedatia-fly-design-system.d.ts.map