@newheap/platform-ai-chat 0.22.0 → 0.23.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.
package/admin/index.d.ts CHANGED
@@ -2,8 +2,7 @@ import { TranslationObject } from '@ngx-translate/core';
2
2
  import * as _angular_core from '@angular/core';
3
3
  import { InjectionToken, Type, Signal, EnvironmentProviders, Injector, OnInit } from '@angular/core';
4
4
  import * as _newheap_platform_ai_chat from '@newheap/platform-ai-chat';
5
- import { NhAssistantStore, NhAssistantError, ApplicationContext, ApplicationContextVersion, AdminAgent, PackagePartLink, ToolCatalogEntry, McpServer, RunCatalog, SetAgentStateRequest, AgentSkillState, AgentShadowMode, ShadowVariantPromotion, AgentShadowState, AssistantAutonomy, AssistantDataClassification, InstructionAssetReference, AgentMetadata, AgentMetadataEntry, NhAssistantAdminApiService, ɵnhAssistantErrorKeys as _nhAssistantErrorKeys, AgentEvaluation, AgentReplay, AgentEvaluationCost, AgentProposalFeedbackCategory, AgentFeedbackSummaryRow, AgentFeedbackItem, AgentFeedbackCategoryCount, StaleKind, AgentProposalFeedbackGroup, AgentSubjectType, AgentRunStatus, ɵnhAssistantCodeKeys as _nhAssistantCodeKeys, AgentRunHistoryItem, NhAssistantConsultationRoute, DataConsultation, CodeConsultation, DataTriggerVersion, DataSkill, AgentRunConfiguration, DataTrigger, SkillComparison, DataSkillVersion, TriggerComparison, ɵNhAssistantPickerOption as _NhAssistantPickerOption, McpServerTestResult, McpConnectionsSummary, McpBuiltInAuthMode, McpCustomAuthMode, McpAuthMode, McpTransport, McpConnectionScope, McpHeadlessUse, McpDiscovery, McpTool, McpToolEffect } from '@newheap/platform-ai-chat';
6
- import { ɵNhAssistantRunNowAgent as _NhAssistantRunNowAgent } from '@newheap/platform-ai-chat/agent-runs';
5
+ import { NhAssistantError, PackagePartLink, AdminAgent, ToolCatalogEntry, McpServer, RunCatalog, AssistantAutonomy, AssistantDataClassification, InstructionAssetReference, ShadowVariantPromotion, NhAssistantStore, ApplicationContext, ApplicationContextVersion, AgentMetadata, AgentMetadataEntry, NhAssistantAdminApiService, ɵnhAssistantErrorKeys as _nhAssistantErrorKeys, AgentEvaluation, AgentReplay, AgentEvaluationCost, AgentProposalFeedbackCategory, AgentFeedbackSummaryRow, AgentFeedbackItem, AgentFeedbackCategoryCount, StaleKind, AgentProposalFeedbackGroup, AgentSubjectType, AgentRunStatus, ɵnhAssistantCodeKeys as _nhAssistantCodeKeys, AgentRunHistoryItem, NhAssistantConsultationRoute, DataConsultation, CodeConsultation, DataTriggerVersion, DataSkill, AgentRunConfiguration, DataTrigger, SkillComparison, DataSkillVersion, TriggerComparison, ɵNhAssistantPickerOption as _NhAssistantPickerOption, AgentSkillState, McpServerTestResult, McpConnectionsSummary, McpBuiltInAuthMode, McpCustomAuthMode, McpAuthMode, McpTransport, McpConnectionScope, McpHeadlessUse, McpDiscovery, McpTool, McpToolEffect } from '@newheap/platform-ai-chat';
7
6
 
8
7
  /**
9
8
  * The administration's own translation bundles, keyed by language. All keys live under
@@ -26,35 +25,29 @@ declare class NhAssistantAdminTranslationMerger {
26
25
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<NhAssistantAdminTranslationMerger>;
27
26
  }
28
27
 
28
+ /** The sections of the administration page: its agents, its connections to MCP servers and the application context. */
29
29
  type NhAssistantAdminTab = 'context' | 'agents' | 'mcp-servers';
30
30
  /**
31
- * The assistant administration page with the tabs Context, Agents and MCP servers. The host
32
- * routes to it and guards the route with its admin permission; the component additionally
33
- * shows a no-access state unless the server reports `canAdminister`.
31
+ * The tabs of one agent's page: its overview, what it is built of, what of it is not live yet and
32
+ * its activity.
34
33
  */
35
- declare class NhAssistantAdminComponent {
36
- private readonly host;
37
- private readonly injector;
38
- readonly store: NhAssistantStore;
39
- /** Tab shown first. */
40
- readonly initialTab: _angular_core.InputSignal<NhAssistantAdminTab>;
41
- readonly id: string;
42
- readonly tabs: readonly NhAssistantAdminTab[];
43
- readonly activeTab: _angular_core.WritableSignal<NhAssistantAdminTab | null>;
44
- readonly ready: _angular_core.WritableSignal<boolean>;
45
- constructor();
46
- selected(): NhAssistantAdminTab;
47
- select(tab: NhAssistantAdminTab): void;
48
- /**
49
- * Shows the MCP servers, for example from an agent's flow that explains why a server is not used in
50
- * runs without a person, and moves the focus to their tab.
51
- */
52
- showMcpServers(): void;
53
- /** Arrow keys, Home and End move between tabs as the ARIA tabs pattern describes. */
54
- onTabKeydown(event: KeyboardEvent): void;
55
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<NhAssistantAdminComponent, never>;
56
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<NhAssistantAdminComponent, "nh-assistant-admin", never, { "initialTab": { "alias": "initialTab"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
34
+ type NhAssistantAgentTab = 'overview' | 'build' | 'rollout' | 'activity';
35
+ /** The tabs of an agent's page in their order. */
36
+ declare const NH_ASSISTANT_AGENT_TABS: readonly NhAssistantAgentTab[];
37
+ /**
38
+ * Where the administration is: its section and, on the agents section, the agent whose page is open
39
+ * with its tab. A host that keeps this in its URL binds it to `location` of `nh-assistant-admin` and
40
+ * follows `locationChange`, so a link or the browser's back button opens the same page.
41
+ */
42
+ interface NhAssistantAdminLocation {
43
+ tab: NhAssistantAdminTab;
44
+ /** The agent whose page is open; `null` for the list of agents. */
45
+ agentId: string | null;
46
+ /** The tab of the agent's page; `null` for the list of agents. */
47
+ agentTab: NhAssistantAgentTab | null;
57
48
  }
49
+ /** Reads an agent tab from a URL parameter; anything else is the overview. */
50
+ declare function nhAssistantAgentTab(value: string | null | undefined): NhAssistantAgentTab;
58
51
 
59
52
  /**
60
53
  * The names the application knows for account ids, for the screens of the administration
@@ -92,56 +85,6 @@ declare class NhAssistantAccountNames {
92
85
  retry(): void;
93
86
  }
94
87
 
95
- /** Maximum length of the application context and of agent instructions. */
96
- declare const NH_ASSISTANT_MAX_INSTRUCTIONS = 20000;
97
- /**
98
- * Editor of the application context: the current version with its hash, optimistic
99
- * concurrency through `expectedVersion`, and the version history.
100
- */
101
- declare class NhAssistantAdminContextComponent {
102
- private readonly admin;
103
- private subscription?;
104
- readonly id: string;
105
- readonly max = 20000;
106
- readonly loading: _angular_core.WritableSignal<boolean>;
107
- readonly loadFailed: _angular_core.WritableSignal<boolean>;
108
- readonly saving: _angular_core.WritableSignal<boolean>;
109
- readonly saved: _angular_core.WritableSignal<boolean>;
110
- readonly conflict: _angular_core.WritableSignal<boolean>;
111
- readonly error: _angular_core.WritableSignal<NhAssistantError | null>;
112
- readonly context: _angular_core.WritableSignal<ApplicationContext | null>;
113
- readonly versions: _angular_core.WritableSignal<ApplicationContextVersion[]>;
114
- readonly text: _angular_core.WritableSignal<string>;
115
- readonly tooLong: _angular_core.Signal<boolean>;
116
- readonly dirty: _angular_core.Signal<boolean>;
117
- readonly canSave: _angular_core.Signal<boolean>;
118
- readonly errorKeys: _angular_core.Signal<string[]>;
119
- readonly history: _angular_core.Signal<ApplicationContextVersion[]>;
120
- /** The names of the people who changed the context, once known, and why they are not. */
121
- readonly accountNames: NhAssistantAccountNames;
122
- constructor();
123
- /** Loads the latest version; with `keepDraft` the user's unsaved text stays in the editor. */
124
- load(keepDraft: boolean): void;
125
- /** A person's name, or the id when the application does not know it. */
126
- nameOf(actorId: string | null | undefined): string;
127
- /** The account ID as the tooltip of a name shown in its place. */
128
- accountTitle(actorId: string | null | undefined): string | null;
129
- onInput(event: Event): void;
130
- save(): void;
131
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<NhAssistantAdminContextComponent, never>;
132
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<NhAssistantAdminContextComponent, "nh-assistant-admin-context", never, {}, {}, never, never, true, never>;
133
- }
134
-
135
- /**
136
- * Translation keys for the texts the administration shows about agents, skills and policies. Each
137
- * list goes through `nhAssistantTranslate` with the text itself as fallback, so a missing
138
- * translation shows what the server sent.
139
- */
140
- /**
141
- * The key of a text of an agent in code, which names and describes itself with translation keys;
142
- * none for an agent created in the administration, whose texts are what the administrator typed.
143
- */
144
- declare function codeTextKeys(source: string, text: string | null | undefined): string[];
145
88
  /** The key an application may translate a skill's name with. */
146
89
  declare function skillNameKeys(agentId: string, skillId: string): string[];
147
90
  /**
@@ -158,23 +101,16 @@ declare function warningKeys(kind: 'agent' | 'skill', code: string): string[];
158
101
  declare function policyKeys(policy: string | null | undefined): string[];
159
102
  /** A readable name for a dash-case id: `task-follow-up` reads "Task follow up". */
160
103
  declare function readableId(id: string): string;
161
- /** What an agent works on, ready to show: object types by name, all objects and the application. */
162
- interface WorksOnSummary {
163
- /** The names of the object types it works on; empty with `all`. */
164
- types: string[];
165
- /** It works on every object type. */
166
- all: boolean;
167
- /** It works on the whole application. */
168
- application: boolean;
169
- perDivision: boolean;
170
- /** An agent in code that does not say what it works on. */
171
- undeclared: boolean;
172
- /** The names of the object types it is known to work on, as a hint next to "All objects". */
173
- known: string[];
174
- runPolicy: string | null;
175
- viewPolicy: string | null;
104
+
105
+ /** A field error: a code such as `required`, with its translation parameters. */
106
+ interface RunConfigFieldError {
107
+ code: string;
108
+ params?: Record<string, unknown>;
176
109
  }
177
110
 
111
+ /** Where the instructions of a skill version or an agent created here come from. */
112
+ type InstructionsSource = 'inline' | 'asset';
113
+
178
114
  /** How a package links one part on this host, as the forms and lists show it. */
179
115
  interface PackageLockView {
180
116
  packageId: string;
@@ -188,326 +124,19 @@ interface PackageLockView {
188
124
  }
189
125
  /** The lock a part's link shows, or `null` for a part no package links. */
190
126
  declare function packageLockOf(link: PackagePartLink | null | undefined): PackageLockView | null;
191
- /**
192
- * The package an agent belongs to, as the notice of the whole agent shows it: the package's id and
193
- * the version this host has, without locks of its own.
194
- */
195
- declare function agentPackageOf(agent: AdminAgent | null | undefined): PackageLockView | null;
196
127
  /** Whether a lock keeps anything of its part from changing, so the part cannot be removed. */
197
128
  declare function isPackageLocked(lock: PackageLockView | null | undefined): boolean;
198
129
 
199
- type AgentStateAction = SetAgentStateRequest['state'];
200
- /** A state change being entered, of the agent or one of its skills, with the state it changes from. */
201
- interface StateChange {
202
- agentId: string;
203
- skillId?: string;
204
- state: AgentStateAction;
205
- from: AdminAgent['runState'] | AgentSkillState['runState'];
206
- }
207
- /**
208
- * Agent administration: code agents (override, reset) and agents created here (edit, delete),
209
- * and for every agent and skill its run state with pause, switch off, stop and resume (switch on
210
- * for one that is off), its shadow mode and that of each
211
- * skill, and the technical account of an agent that answers to one, each with an optional reason.
212
- * Editing opens `nh-assistant-admin-agent-editor`; the feedback action opens
213
- * `nh-assistant-agent-feedback-report` for the agent, the evaluation action of an agent with
214
- * shadow variants opens `nh-assistant-agent-evaluation`, and the run configuration action opens
215
- * `nh-assistant-agent-run-configuration` for the skills, triggers and run settings defined as data.
216
- * "Run now" on an agent that runs on its own opens the run-now dialog: the whole application (or a
217
- * division of it) or an object of one of its types, and an optional instruction; the receipt opens
218
- * the agent's conversation in the assistant panel. "Runs" opens `nh-assistant-agent-run-history`, the
219
- * agent's runs with their results. When the run catalog cannot be read, the page says why with its
220
- * code and offers to read it again; until then it offers no "Run now" and the editor leaves what an
221
- * agent works on and its groups as they are. The run configuration opens with the agent's flow, whose
222
- * entry points open the editor, the runs and the technical account here and return to the run
223
- * configuration afterwards; `openMcpServers` asks the host to show the MCP servers. "Import package"
224
- * opens the import dialog of agent packages, and "Export as package" on an agent the export dialog
225
- * with that agent chosen. An agent that belongs to a package says so on its card with "Unlink the
226
- * agent"; it cannot be deleted until it is unlinked, nor reset while its package locks fields of
227
- * its definition. A chat-only agent (`chatOnly`) says so instead of what it works on and offers no
228
- * "Run now", runs, run state changes or shadow mode: it never runs on its own.
229
- */
230
- declare class NhAssistantAdminAgentsComponent {
231
- private readonly admin;
232
- private readonly store;
233
- private readonly panel;
234
- private readonly translate;
235
- private readonly injector;
236
- private readonly host;
237
- private readonly backButton;
238
- private readonly reasonInput;
239
- private subscription?;
240
- private actionSubscription?;
241
- private catalogSubscription?;
242
- readonly id: string;
243
- readonly loading: _angular_core.WritableSignal<boolean>;
244
- readonly loadFailed: _angular_core.WritableSignal<boolean>;
245
- readonly agents: _angular_core.WritableSignal<AdminAgent[]>;
246
- readonly tools: _angular_core.WritableSignal<ToolCatalogEntry[]>;
247
- readonly servers: _angular_core.WritableSignal<McpServer[]>;
248
- /** The run catalog: object types by name, policies and divisions; `null` when it could not be read. */
249
- readonly catalog: _angular_core.WritableSignal<RunCatalog | null>;
250
- /** Why the run catalog could not be read; `null` once it was. */
251
- readonly catalogError: _angular_core.WritableSignal<NhAssistantError | null>;
252
- readonly catalogErrorKeys: _angular_core.Signal<string[]>;
253
- /** The run catalog is being read again after a failure. */
254
- readonly catalogLoading: _angular_core.WritableSignal<boolean>;
255
- /** `undefined`: list; `null`: new agent; an agent: editing that agent. */
256
- readonly editing: _angular_core.WritableSignal<AdminAgent | null | undefined>;
257
- /** The agent whose feedback report is shown instead of the list. */
258
- readonly reporting: _angular_core.WritableSignal<AdminAgent | null>;
259
- /** The agent whose comparison with its shadow variants is shown instead of the list. */
260
- readonly evaluating: _angular_core.WritableSignal<AdminAgent | null>;
261
- /** The agent whose run configuration is shown instead of the list. */
262
- readonly configuring: _angular_core.WritableSignal<AdminAgent | null>;
263
- /** The agent whose runs are shown instead of the list. */
264
- readonly viewingRuns: _angular_core.WritableSignal<AdminAgent | null>;
265
- /**
266
- * The agent whose run configuration opened the editor or the runs from its flow; closing them
267
- * returns to its run configuration instead of the list.
268
- */
269
- readonly returnTo: _angular_core.WritableSignal<string | null>;
270
- /** The flow of a run configuration asks to show the MCP servers, whose background use it explains. */
271
- readonly openMcpServers: _angular_core.OutputEmitterRef<void>;
272
- readonly confirming: _angular_core.WritableSignal<{
273
- agentId: string;
274
- action: "delete" | "reset";
275
- } | null>;
276
- readonly busyAgentId: _angular_core.WritableSignal<string | null>;
277
- /** The state change whose reason is being entered, of the agent or one of its skills. */
278
- readonly changingState: _angular_core.WritableSignal<StateChange | null>;
279
- /** The shadow mode change whose reason is being entered, of the agent or one of its skills. */
280
- readonly changingShadow: _angular_core.WritableSignal<{
281
- agentId: string;
282
- skillId?: string;
283
- mode: AgentShadowMode;
284
- } | null>;
285
- /** The change of the technical account being entered: a new account, or the one in code. */
286
- readonly changingAccount: _angular_core.WritableSignal<{
287
- agentId: string;
288
- mode: "set" | "code";
289
- } | null>;
290
- readonly accountId: _angular_core.WritableSignal<string>;
291
- /** Why the account of the open account form was refused, shown at the account field. */
292
- readonly accountError: _angular_core.WritableSignal<NhAssistantError | null>;
293
- /** The text of the account field's error: the refused field value, then the code. */
294
- readonly accountErrorKeys: _angular_core.Signal<string[]>;
295
- /** Whether the application offers an account search for the technical account. */
296
- readonly accountSearch: _angular_core.WritableSignal<boolean>;
297
- /**
298
- * The names of the technical accounts and of the people who changed an agent, once known, and why
299
- * they are not.
300
- */
301
- readonly accountNameLookup: NhAssistantAccountNames;
302
- /** The names of the technical accounts in the list, by account id. */
303
- readonly accountNames: _angular_core.Signal<ReadonlyMap<string, string>>;
304
- /** The agent whose last action failed, so its error shows on its card. */
305
- readonly errorAgentId: _angular_core.WritableSignal<string | null>;
306
- /** The agent whose export dialog is open, chosen in it; `null` while it is closed. */
307
- readonly exporting: _angular_core.WritableSignal<AdminAgent | null>;
308
- /** Whether the import dialog of agent packages is open. */
309
- readonly importing: _angular_core.WritableSignal<boolean>;
310
- readonly agentPackageOf: typeof agentPackageOf;
311
- /** The agent the run-now dialog runs; `null` while it is closed. */
312
- readonly runningNow: _angular_core.WritableSignal<AdminAgent | null>;
313
- /** The agent of the run-now dialog as the dialog needs it: its name and what it works on. */
314
- readonly runNowAgent: _angular_core.Signal<_NhAssistantRunNowAgent | null>;
315
- /** The run configuration opens with the guided setup, for an agent created to work on its own. */
316
- readonly setupOnOpen: _angular_core.WritableSignal<boolean>;
317
- readonly stateReason: _angular_core.WritableSignal<string>;
318
- readonly maxReason = 500;
319
- readonly error: _angular_core.WritableSignal<NhAssistantError | null>;
320
- readonly errorKeys: _angular_core.Signal<string[]>;
321
- readonly codeTextKeys: typeof codeTextKeys;
322
- readonly skillNameKeys: typeof skillNameKeys;
323
- readonly warningKeys: typeof warningKeys;
324
- readonly skillDescriptionKeys: typeof skillDescriptionKeys;
325
- readonly policyKeys: typeof policyKeys;
326
- readonly readableId: typeof readableId;
327
- constructor();
328
- load(): void;
329
- /** Reads the run catalog again after it could not be read. */
330
- retryCatalog(): void;
331
- create(): void;
332
- edit(agent: AdminAgent): void;
333
- /** Shows what people said when they rejected the agent's proposals. */
334
- openReport(agent: AdminAgent): void;
335
- /** The shadow variants of an agent, by id. */
336
- variantsOf(agent: AdminAgent): string[];
337
- /** Compares the agent with its shadow variants. */
338
- openEvaluation(agent: AdminAgent): void;
339
- /**
340
- * Whether the agent can run on its own and so has a run configuration: an agent in code with runs,
341
- * or any agent created here, which gets run settings as data.
342
- */
343
- hasRunConfiguration(agent: AdminAgent): boolean;
344
- /**
345
- * Whether the agent can be run now: it runs on its own, so it has a run configuration, it is
346
- * neither stopped nor disabled in code, and the run catalog names what it can run on. An agent
347
- * that is off still runs for a person. The server decides the rest when the run starts.
348
- */
349
- canRunNow(agent: AdminAgent): boolean;
350
- /** Opens the export dialog with the agent chosen. */
351
- exportPackage(agent: AdminAgent): void;
352
- /** Opens the import dialog of agent packages. */
353
- importPackage(): void;
354
- /** A package was imported: its agents and their parts are read again. */
355
- onPackageImported(): void;
356
- /** The agent or a part of it was unlinked from its package. */
357
- onPackageUnlinked(): void;
358
- /** A package the agent belongs to keeps it from being deleted until it is unlinked. */
359
- deleteLocked(agent: AdminAgent): boolean;
360
- /** A reset would give fields the package locks the code's values, which the server refuses. */
361
- resetLocked(agent: AdminAgent): boolean;
362
- /** Opens the run-now dialog of the agent. */
363
- runNow(agent: AdminAgent): void;
364
- /** Opens the conversation the run works in, in the assistant panel. */
365
- openConversation(conversationId: string): void;
366
- /** Shows the agent's skills, triggers and run settings defined as data. */
367
- openRunConfiguration(agent: AdminAgent, setup?: boolean): void;
368
- /** Returns to the list, refreshed, and to the run configuration action of the agent. */
369
- closeRunConfiguration(): void;
370
- /** Shows the agent's runs with their results. */
371
- openRuns(agent: AdminAgent): void;
372
- /**
373
- * Returns to the run configuration whose flow opened the runs, or to the list and the runs action of
374
- * the agent whose runs were open.
375
- */
376
- closeRuns(): void;
377
- /** Returns to the list and to the evaluation action of the agent whose comparison was open. */
378
- closeEvaluation(): void;
379
- /** Returns to the list and to the feedback action of the agent whose report was open. */
380
- closeReport(): void;
381
- /** A new agent meant to work on its own continues in its run configuration's guided setup. */
382
- onWorkRequested(agent: AdminAgent): void;
383
- /** The flow of the agent's run configuration opens the editor; saving or cancelling returns there. */
384
- editFromRunConfiguration(agent: AdminAgent): void;
385
- /**
386
- * A consultation of the agent's run configuration opens the editor of an agent that asks it, whose
387
- * tool selectors are the consultation's second key; saving or cancelling returns to the run
388
- * configuration it came from.
389
- */
390
- askerFromRunConfiguration(agent: AdminAgent, askerId: string): void;
391
- /**
392
- * A data shadow variant created in the agent's run configuration continues in its own run
393
- * configuration's guided setup, since it receives the live agent's events only with run settings.
394
- */
395
- onVariantCreated(variant: AdminAgent): void;
396
- /**
397
- * A data shadow variant promoted onto the agent whose run configuration is open: the agent shows its
398
- * new version there and in the list, and the variant, which was removed, leaves the list.
399
- */
400
- onVariantPromoted(promotion: ShadowVariantPromotion): void;
401
- /** The run configuration of a data shadow variant of the agent whose run configuration is open. */
402
- variantFromRunConfiguration(variantId: string): void;
403
- /** The flow of the agent's run configuration opens its runs; going back returns there. */
404
- runsFromRunConfiguration(agent: AdminAgent): void;
405
- /** The flow of an agent in code opens the form that replaces its technical account on its card. */
406
- accountFromRunConfiguration(agent: AdminAgent): void;
407
- /** The editor saved: back to the run configuration that opened it, or to the list. */
408
- onEditorSaved(agent: AdminAgent): void;
409
- /** The editor closed without saving: back to the run configuration that opened it, or to the list. */
410
- onEditorCancelled(): void;
411
- /**
412
- * Opens the run configuration again when its flow, or one of its consultations, opened what closes
413
- * now; `false` otherwise. The editor of an agent that asks a consultation returns to the consulted
414
- * agent's run configuration.
415
- */
416
- private returnToRunConfiguration;
417
- /** What the agent works on, with its object types named as the run catalog names them. */
418
- worksOn(agent: AdminAgent): WorksOnSummary & {
419
- only: 'all' | 'types' | 'application';
420
- };
421
- /** The groups the agent is in, named as the run catalog names them; `null` for none. */
422
- groupNames(agent: AdminAgent): string | null;
423
- /** The name of an account or person, or the id when the application does not know it. */
424
- accountName(actorId: string | null | undefined): string;
425
- /** The account ID as the tooltip of a name shown in its place. */
426
- accountTitle(actorId: string | null | undefined): string | null;
427
- onSaved(agent: AdminAgent): void;
428
- /** The state changes the agent allows: none for an agent that is disabled in code. */
429
- stateActions(agent: AdminAgent): AgentStateAction[];
430
- /** The state changes a skill allows. */
431
- skillActions(skill: AgentSkillState): AgentStateAction[];
432
- /**
433
- * The key of a state change's label, explanation or confirmation: making an agent or skill that is
434
- * off active again switches it on, which replays nothing, unlike a resume.
435
- */
436
- stateKey(part: 'action' | 'explain' | 'confirm', from: string, action: AgentStateAction): string;
437
- /** The explanation of a state change of one skill. */
438
- skillStateExplainKey(change: StateChange): string;
439
- /** Opens the reason form of a state change of the agent or, with a skill, of that skill. */
440
- askState(agent: AdminAgent, state: AgentStateAction, skill?: AgentSkillState): void;
441
- /**
442
- * The shadow modes an agent or skill can change to: the opposite of its own mode, and the mode
443
- * in code once an administrator overrode it. A shadow variant, and an agent without runs that
444
- * only chats, offer none.
445
- */
446
- shadowActions(shadow: AgentShadowState | null | undefined): AgentShadowMode[];
447
- /** Opens the reason form of a shadow mode change of the agent or, with a skill, of that skill. */
448
- askShadow(agent: AdminAgent, mode: AgentShadowMode, skill?: AgentSkillState): void;
449
- /**
450
- * The label of a shadow action. An agent created here has no code: returning to its "code" mode
451
- * means returning to the mode it was set up with.
452
- */
453
- shadowActionKey(agent: AdminAgent, mode: AgentShadowMode): string;
454
- /** The explanation of a shadow change of the agent or one of its skills. */
455
- shadowExplainKey(agent: AdminAgent, mode: AgentShadowMode, skill: boolean): string;
456
- /** The mode the agent, or one of its skills, was set up with: what returning to it means. */
457
- ownShadowModeKey(agent: AdminAgent, skillId?: string): string;
458
- isChangingShadow(agentId: string, mode: AgentShadowMode, skillId?: string): boolean;
459
- applyShadow(agent: AdminAgent): void;
460
- /** Opens the form that changes the technical account, or returns to the one in code. */
461
- askAccount(agent: AdminAgent, mode: 'set' | 'code'): void;
462
- /** A changed account clears the error of the one before. */
463
- onAccountChange(actorId: string): void;
464
- isChangingAccount(agentId: string, mode: 'set' | 'code'): boolean;
465
- /**
466
- * Changes the technical account. The form stays open while the server decides, so a missing or
467
- * refused account shows at the account field, which takes the focus.
468
- */
469
- applyAccount(agent: AdminAgent): void;
470
- isChangingState(agentId: string, state: AgentStateAction, skillId?: string): boolean;
471
- applyState(agent: AdminAgent): void;
472
- value(event: Event): string;
473
- confirm(agentId: string, action: 'delete' | 'reset'): void;
474
- isConfirming(agentId: string, action: 'delete' | 'reset'): boolean;
475
- reset(agent: AdminAgent): void;
476
- remove(agent: AdminAgent): void;
477
- private run;
478
- /** Looks up the names of the technical accounts and of the people who changed an agent's state. */
479
- private loadAccountNames;
480
- /** The run catalog, or why it could not be read; it never errors. */
481
- private readCatalog;
482
- private applyCatalog;
483
- private focusAccount;
484
- /** Closes the open confirmation and change forms before another opens; one is open at a time. */
485
- private closeForms;
486
- private replace;
487
- /**
488
- * Reloads the agents behind the visible list, for example their skills after the run
489
- * configuration changed; the list stays as it is when that fails.
490
- */
491
- private refreshAgents;
492
- /** Agent changes affect the agent picker of the panel. */
493
- private refreshChat;
494
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<NhAssistantAdminAgentsComponent, never>;
495
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<NhAssistantAdminAgentsComponent, "nh-assistant-admin-agents", never, {}, { "openMcpServers": "openMcpServers"; }, never, never, true, never>;
496
- }
497
-
498
- /** A field error: a code such as `required`, with its translation parameters. */
499
- interface RunConfigFieldError {
500
- code: string;
501
- params?: Record<string, unknown>;
502
- }
503
-
504
- /** Where the instructions of a skill version or an agent created here come from. */
505
- type InstructionsSource = 'inline' | 'asset';
506
-
507
130
  /** True when a tool id matches a selector glob (`*` matches any characters). */
508
131
  declare function nhAssistantSelectorMatches(toolId: string, selector: string): boolean;
509
132
  /** How an agent created in the administration is used: chosen in the chat, working on its own, or both. */
510
133
  type AgentUse = 'chat' | 'background' | 'both';
134
+ /**
135
+ * The parts of an agent the editor shows: its profile (name, use, what it works on, description,
136
+ * instructions, model and classification, and the application's fields), its tools and MCP servers,
137
+ * and its access (groups, who may run it and see its results, autonomy and the required policy).
138
+ */
139
+ type NhAssistantAgentEditorSection = 'profile' | 'tools' | 'access';
511
140
  /** Whether an agent created in the administration works on every object type or on chosen ones. */
512
141
  type WorksOnScope = 'all' | 'types';
513
142
  /**
@@ -551,6 +180,13 @@ declare class NhAssistantAdminAgentEditorComponent {
551
180
  */
552
181
  readonly workRequested: _angular_core.OutputEmitterRef<AdminAgent>;
553
182
  readonly cancelled: _angular_core.OutputEmitterRef<void>;
183
+ /**
184
+ * The parts to show, for a page that edits an agent part by part; `null` shows every part. A save
185
+ * keeps the values of the parts it does not show as they are.
186
+ */
187
+ readonly sections: _angular_core.InputSignal<readonly NhAssistantAgentEditorSection[] | null>;
188
+ /** A page shows the editor in one of its own sections, which names it: the title goes, except for a new agent. */
189
+ readonly embedded: _angular_core.Signal<boolean>;
554
190
  readonly uses: readonly AgentUse[];
555
191
  readonly id: string;
556
192
  private readonly language;
@@ -707,6 +343,8 @@ declare class NhAssistantAdminAgentEditorComponent {
707
343
  fieldError(field: string): string | null;
708
344
  /** An application field of an agent created here made the agent's next version. */
709
345
  fieldsChanged(agentVersion: number): void;
346
+ /** Whether the editor shows a part of the agent. */
347
+ shows(section: NhAssistantAgentEditorSection): boolean;
710
348
  save(): void;
711
349
  /**
712
350
  * The MCP servers the administrator added or removed, after the definition was saved, one call per
@@ -722,7 +360,215 @@ declare class NhAssistantAdminAgentEditorComponent {
722
360
  /** The translation of a key of an agent in code, or `null` when the text is not a key with a translation. */
723
361
  private keyed;
724
362
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NhAssistantAdminAgentEditorComponent, never>;
725
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<NhAssistantAdminAgentEditorComponent, "nh-assistant-admin-agent-editor", never, { "agent": { "alias": "agent"; "required": false; "isSignal": true; }; "tools": { "alias": "tools"; "required": false; "isSignal": true; }; "servers": { "alias": "servers"; "required": false; "isSignal": true; }; "catalog": { "alias": "catalog"; "required": false; "isSignal": true; }; "catalogUnavailable": { "alias": "catalogUnavailable"; "required": false; "isSignal": true; }; }, { "saved": "saved"; "workRequested": "workRequested"; "cancelled": "cancelled"; }, never, never, true, never>;
363
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NhAssistantAdminAgentEditorComponent, "nh-assistant-admin-agent-editor", never, { "agent": { "alias": "agent"; "required": false; "isSignal": true; }; "tools": { "alias": "tools"; "required": false; "isSignal": true; }; "servers": { "alias": "servers"; "required": false; "isSignal": true; }; "catalog": { "alias": "catalog"; "required": false; "isSignal": true; }; "catalogUnavailable": { "alias": "catalogUnavailable"; "required": false; "isSignal": true; }; "sections": { "alias": "sections"; "required": false; "isSignal": true; }; }, { "saved": "saved"; "workRequested": "workRequested"; "cancelled": "cancelled"; }, never, never, true, never>;
364
+ }
365
+
366
+ /** What the agents section shows: the list, the first step of a new agent, or one agent's page. */
367
+ type AgentsView = {
368
+ kind: 'list';
369
+ } | {
370
+ kind: 'new';
371
+ } | {
372
+ kind: 'agent';
373
+ agentId: string;
374
+ tab: NhAssistantAgentTab;
375
+ setup: boolean;
376
+ };
377
+ /** Where the agents section is, for a host that keeps it in its URL. */
378
+ interface NhAssistantAgentsLocation {
379
+ /** The agent whose page is open; `null` for the list. */
380
+ agentId: string | null;
381
+ /** The tab of the agent's page; `null` for the list. */
382
+ agentTab: NhAssistantAgentTab | null;
383
+ }
384
+ /**
385
+ * Agent administration. The list (`nh-assistant-agent-list`) shows every agent once, with one
386
+ * status, where it works, where it comes from and what needs attention, searchable and filtered,
387
+ * with each shadow variant below its agent; a row opens the agent's page
388
+ * (`nh-assistant-agent-page`), where everything about the agent is: its status and what an
389
+ * administrator does with it now in the header, and the tabs Overview, Build, Rollout and Activity.
390
+ * "New agent" asks first for what the agent is (its profile) and continues on its page, with the
391
+ * guided setup for an agent meant to work on its own. "Import package" opens the import dialog of
392
+ * agent packages; "Export as package" on an agent's page the export dialog with that agent chosen.
393
+ * When the run catalog cannot be read, the list says why with its code and offers to read it again;
394
+ * until then nothing that depends on it is offered.
395
+ *
396
+ * A host that keeps the open agent in its URL binds `agentId` and `agentTab` and follows
397
+ * `navigated`, which reports every navigation of the administrator; `openMcpServers` asks the host to
398
+ * show the MCP servers.
399
+ */
400
+ declare class NhAssistantAdminAgentsComponent {
401
+ private readonly admin;
402
+ private readonly store;
403
+ private readonly injector;
404
+ private readonly host;
405
+ private subscription?;
406
+ private catalogSubscription?;
407
+ /** The agent whose page opens, for example from the host's URL; `null` for the list. */
408
+ readonly agentId: _angular_core.InputSignal<string | null>;
409
+ /** The tab of the agent's page that opens. */
410
+ readonly agentTab: _angular_core.InputSignal<NhAssistantAgentTab | null>;
411
+ /** The administrator opened the list, an agent's page or one of its tabs. */
412
+ readonly navigated: _angular_core.OutputEmitterRef<NhAssistantAgentsLocation>;
413
+ /** An agent's flow asks to show the MCP servers, whose background use it explains. */
414
+ readonly openMcpServers: _angular_core.OutputEmitterRef<void>;
415
+ readonly id: string;
416
+ readonly loading: _angular_core.WritableSignal<boolean>;
417
+ readonly loadFailed: _angular_core.WritableSignal<boolean>;
418
+ readonly agents: _angular_core.WritableSignal<AdminAgent[]>;
419
+ readonly tools: _angular_core.WritableSignal<ToolCatalogEntry[]>;
420
+ readonly servers: _angular_core.WritableSignal<McpServer[]>;
421
+ /** The run catalog: object types by name, policies and divisions; `null` when it could not be read. */
422
+ readonly catalog: _angular_core.WritableSignal<RunCatalog | null>;
423
+ /** Why the run catalog could not be read; `null` once it was. */
424
+ readonly catalogError: _angular_core.WritableSignal<NhAssistantError | null>;
425
+ readonly catalogErrorKeys: _angular_core.Signal<string[]>;
426
+ /** The run catalog is being read again after a failure. */
427
+ readonly catalogLoading: _angular_core.WritableSignal<boolean>;
428
+ /** Whether the application offers an account search for the technical account. */
429
+ readonly accountSearch: _angular_core.WritableSignal<boolean>;
430
+ /**
431
+ * The names of the technical accounts and of the people who changed an agent, once known, and why
432
+ * they are not.
433
+ */
434
+ readonly accountNameLookup: NhAssistantAccountNames;
435
+ readonly view: _angular_core.WritableSignal<AgentsView>;
436
+ /** The agent whose page is open; `null` while the agents load or when it does not exist. */
437
+ readonly openedAgent: _angular_core.Signal<AdminAgent | null>;
438
+ /** The agent whose export dialog is open, chosen in it; `null` while it is closed. */
439
+ readonly exporting: _angular_core.WritableSignal<AdminAgent | null>;
440
+ /** Whether the import dialog of agent packages is open. */
441
+ readonly importing: _angular_core.WritableSignal<boolean>;
442
+ /** A new agent asks first for its profile; its tools and access follow on its page. */
443
+ readonly createSections: NhAssistantAgentEditorSection[];
444
+ constructor();
445
+ load(): void;
446
+ /** Reads the run catalog again after it could not be read. */
447
+ retryCatalog(): void;
448
+ create(): void;
449
+ /** Opens an agent's page on its overview, or on another tab. */
450
+ open(agentId: string, tab?: NhAssistantAgentTab, setup?: boolean): void;
451
+ /** Back to the list, at the row of the agent whose page was open. */
452
+ backToList(): void;
453
+ onTabChange(tab: NhAssistantAgentTab): void;
454
+ /**
455
+ * A new agent was created: its page opens, at Build with the guided setup for an agent meant to
456
+ * work on its own.
457
+ */
458
+ onCreated(agent: AdminAgent, work: boolean): void;
459
+ onSaved(agent: AdminAgent): void;
460
+ onRemoved(agentId: string): void;
461
+ /** A data shadow variant continues on its own page with the guided setup: it receives events only with run settings. */
462
+ onVariantCreated(variant: AdminAgent): void;
463
+ /**
464
+ * A data shadow variant was promoted onto its live agent: the agent shows its new version, and the
465
+ * variant, which was removed, leaves the list.
466
+ */
467
+ onVariantPromoted(promotion: ShadowVariantPromotion): void;
468
+ /** Opens the export dialog with the agent chosen. */
469
+ exportPackage(agent: AdminAgent): void;
470
+ /** Opens the import dialog of agent packages. */
471
+ importPackage(): void;
472
+ /**
473
+ * Reloads the agents behind the visible view, for example their skills after the run
474
+ * configuration changed; the view stays as it is when that fails.
475
+ */
476
+ refreshAgents(): void;
477
+ /** Follows a location the host gives, without reporting it back. */
478
+ private follow;
479
+ private navigate;
480
+ /** Looks up the names of the technical accounts and of the people who changed an agent's state. */
481
+ private loadAccountNames;
482
+ /** The run catalog, or why it could not be read; it never errors. */
483
+ private readCatalog;
484
+ private applyCatalog;
485
+ private focus;
486
+ /** Agent changes affect the agent picker of the panel. */
487
+ private refreshChat;
488
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NhAssistantAdminAgentsComponent, never>;
489
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NhAssistantAdminAgentsComponent, "nh-assistant-admin-agents", never, { "agentId": { "alias": "agentId"; "required": false; "isSignal": true; }; "agentTab": { "alias": "agentTab"; "required": false; "isSignal": true; }; }, { "navigated": "navigated"; "openMcpServers": "openMcpServers"; }, never, never, true, never>;
490
+ }
491
+
492
+ /**
493
+ * The assistant administration page with the sections Agents, Tools & connections (the MCP servers)
494
+ * and Application context. The host routes to it and guards the route with its admin permission;
495
+ * the component additionally shows a no-access state unless the server reports `canAdminister`.
496
+ *
497
+ * It opens on `initialTab`, Agents unless the host chooses otherwise. A host that keeps the section
498
+ * and the open agent in its URL binds them to `location` and follows `locationChange`, which reports
499
+ * every navigation of the administrator: a section, an agent's page and its tab, or the list.
500
+ */
501
+ declare class NhAssistantAdminComponent {
502
+ private readonly host;
503
+ private readonly injector;
504
+ readonly store: NhAssistantStore;
505
+ /** Section shown first, unless `location` names one. */
506
+ readonly initialTab: _angular_core.InputSignal<NhAssistantAdminTab>;
507
+ /** Where to open, for example from the host's URL; missing parts keep what is shown. */
508
+ readonly location: _angular_core.InputSignal<Partial<NhAssistantAdminLocation> | null>;
509
+ /** The administrator moved to another section, agent page or tab. */
510
+ readonly locationChange: _angular_core.OutputEmitterRef<NhAssistantAdminLocation>;
511
+ readonly id: string;
512
+ readonly tabs: readonly NhAssistantAdminTab[];
513
+ readonly activeTab: _angular_core.WritableSignal<NhAssistantAdminTab | null>;
514
+ readonly ready: _angular_core.WritableSignal<boolean>;
515
+ /** The agent and tab the agents section opens, as `location` names them. */
516
+ readonly agentId: _angular_core.Signal<string | null>;
517
+ readonly agentTab: _angular_core.Signal<NhAssistantAgentTab | null>;
518
+ constructor();
519
+ selected(): NhAssistantAdminTab;
520
+ select(tab: NhAssistantAdminTab): void;
521
+ /** The agents section reports where the administrator went in it. */
522
+ onAgentsNavigated(location: NhAssistantAgentsLocation): void;
523
+ /**
524
+ * Shows the MCP servers, for example from an agent's flow that explains why a server is not used in
525
+ * runs without a person, and moves the focus to their tab.
526
+ */
527
+ showMcpServers(): void;
528
+ /** Arrow keys, Home and End move between tabs as the ARIA tabs pattern describes. */
529
+ onTabKeydown(event: KeyboardEvent): void;
530
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NhAssistantAdminComponent, never>;
531
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NhAssistantAdminComponent, "nh-assistant-admin", never, { "initialTab": { "alias": "initialTab"; "required": false; "isSignal": true; }; "location": { "alias": "location"; "required": false; "isSignal": true; }; }, { "locationChange": "locationChange"; }, never, never, true, never>;
532
+ }
533
+
534
+ /** Maximum length of the application context and of agent instructions. */
535
+ declare const NH_ASSISTANT_MAX_INSTRUCTIONS = 20000;
536
+ /**
537
+ * Editor of the application context: the current version with its hash, optimistic
538
+ * concurrency through `expectedVersion`, and the version history.
539
+ */
540
+ declare class NhAssistantAdminContextComponent {
541
+ private readonly admin;
542
+ private subscription?;
543
+ readonly id: string;
544
+ readonly max = 20000;
545
+ readonly loading: _angular_core.WritableSignal<boolean>;
546
+ readonly loadFailed: _angular_core.WritableSignal<boolean>;
547
+ readonly saving: _angular_core.WritableSignal<boolean>;
548
+ readonly saved: _angular_core.WritableSignal<boolean>;
549
+ readonly conflict: _angular_core.WritableSignal<boolean>;
550
+ readonly error: _angular_core.WritableSignal<NhAssistantError | null>;
551
+ readonly context: _angular_core.WritableSignal<ApplicationContext | null>;
552
+ readonly versions: _angular_core.WritableSignal<ApplicationContextVersion[]>;
553
+ readonly text: _angular_core.WritableSignal<string>;
554
+ readonly tooLong: _angular_core.Signal<boolean>;
555
+ readonly dirty: _angular_core.Signal<boolean>;
556
+ readonly canSave: _angular_core.Signal<boolean>;
557
+ readonly errorKeys: _angular_core.Signal<string[]>;
558
+ readonly history: _angular_core.Signal<ApplicationContextVersion[]>;
559
+ /** The names of the people who changed the context, once known, and why they are not. */
560
+ readonly accountNames: NhAssistantAccountNames;
561
+ constructor();
562
+ /** Loads the latest version; with `keepDraft` the user's unsaved text stays in the editor. */
563
+ load(keepDraft: boolean): void;
564
+ /** A person's name, or the id when the application does not know it. */
565
+ nameOf(actorId: string | null | undefined): string;
566
+ /** The account ID as the tooltip of a name shown in its place. */
567
+ accountTitle(actorId: string | null | undefined): string | null;
568
+ onInput(event: Event): void;
569
+ save(): void;
570
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<NhAssistantAdminContextComponent, never>;
571
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NhAssistantAdminContextComponent, "nh-assistant-admin-context", never, {}, {}, never, never, true, never>;
726
572
  }
727
573
 
728
574
  /**
@@ -1139,8 +985,9 @@ interface TriggerChange {
1139
985
  declare function versionSummary(version: DataTriggerVersion): string;
1140
986
 
1141
987
  /**
1142
- * What an entry point of the flow opens: the run configuration opens its own forms; the agent editor,
1143
- * the technical account, the runs view and the MCP servers belong to the page that hosts it.
988
+ * What an entry point of the flow opens: the run configuration opens its own forms; the agent editor
989
+ * (its profile, its tools or its access), the technical account, the runs view and the MCP servers
990
+ * belong to the page that hosts it. A comparison of a candidate opens next to the skill or trigger.
1144
991
  */
1145
992
  type AgentFlowEntry = {
1146
993
  kind: 'setup';
@@ -1163,6 +1010,16 @@ type AgentFlowEntry = {
1163
1010
  subjectType: string;
1164
1011
  } | {
1165
1012
  kind: 'edit-agent';
1013
+ } | {
1014
+ kind: 'edit-tools';
1015
+ } | {
1016
+ kind: 'edit-access';
1017
+ } | {
1018
+ kind: 'compare-skill';
1019
+ skillId: string;
1020
+ } | {
1021
+ kind: 'compare-trigger';
1022
+ triggerId: string;
1166
1023
  } | {
1167
1024
  kind: 'account';
1168
1025
  } | {
@@ -1186,6 +1043,11 @@ interface SkillFormSaved {
1186
1043
  }
1187
1044
 
1188
1045
  type Form = 'setup' | 'settings' | 'skill' | 'trigger' | 'consultation';
1046
+ /**
1047
+ * The parts of the run configuration a page shows: the agent's flow, its skills, its triggers, the
1048
+ * consultations of other agents (with the page's hand-offs) and its run settings as guardrails.
1049
+ */
1050
+ type NhAssistantRunConfigurationSection = 'flow' | 'skills' | 'triggers' | 'consultations' | 'settings';
1189
1051
  /** A removal, promotion or discard that waits for its confirmation. */
1190
1052
  interface Confirmation {
1191
1053
  action: 'remove-settings' | 'remove-skill' | 'remove-trigger' | 'remove-consultation' | 'promote' | 'discard' | 'promote-trigger' | 'discard-trigger';
@@ -1211,6 +1073,14 @@ interface Confirmation {
1211
1073
  * code, each with the agents that ask it (`openAgent` opens the editor of one) and its problems, and
1212
1074
  * switch on or off (a new one may start off), followed by the switches that turn a route off for all of
1213
1075
  * its consultations.
1076
+ *
1077
+ * With `sections` a page shows the parts it chooses: the flow on its own, or the skills, triggers,
1078
+ * consultations and run settings as the sections of its build page. There each skill also shows its
1079
+ * status and today's use with the changes it allows (`agentChanged`), an agent created here that
1080
+ * only chats offers its guided setup first, an agent in code shows what its code sets for its runs
1081
+ * read only, and the page projects its hand-offs (`[nhAssistantConnectedAgents]`) and its access
1082
+ * (`[nhAssistantGuardrails]`) into the matching sections. A flow entry whose form is in a section
1083
+ * the page does not show asks for it with `entryRequested`; `openEntry` opens it once loaded.
1214
1084
  */
1215
1085
  declare class NhAssistantAgentRunConfigurationComponent implements OnInit {
1216
1086
  private readonly admin;
@@ -1222,6 +1092,8 @@ declare class NhAssistantAgentRunConfigurationComponent implements OnInit {
1222
1092
  private detailSubscription?;
1223
1093
  /** The flow's entry point that opened the form, which takes the focus back when the form closes. */
1224
1094
  private returnFocus;
1095
+ /** A flow entry to open once the configuration is loaded. */
1096
+ private pendingEntry;
1225
1097
  readonly agent: _angular_core.InputSignal<AdminAgent>;
1226
1098
  /** Opens the guided setup at once, for an agent that was just created to work on its own. */
1227
1099
  readonly startSetup: _angular_core.InputSignal<boolean>;
@@ -1246,6 +1118,12 @@ declare class NhAssistantAgentRunConfigurationComponent implements OnInit {
1246
1118
  readonly openMcpServers: _angular_core.OutputEmitterRef<void>;
1247
1119
  /** Opens the editor of an agent that asks one of the agent's consultations, by its id. */
1248
1120
  readonly openAgent: _angular_core.OutputEmitterRef<string>;
1121
+ /** The parts to show; `null` shows the whole run configuration with its flow on top. */
1122
+ readonly sections: _angular_core.InputSignal<readonly NhAssistantRunConfigurationSection[] | null>;
1123
+ /** A skill's status changed; the agent comes with the skill's new state. */
1124
+ readonly agentChanged: _angular_core.OutputEmitterRef<AdminAgent>;
1125
+ /** A flow entry opens a form in a section this page does not show. */
1126
+ readonly entryRequested: _angular_core.OutputEmitterRef<AgentFlowEntry>;
1249
1127
  readonly id: string;
1250
1128
  readonly maxReason: 500;
1251
1129
  readonly skillNameKeys: typeof skillNameKeys;
@@ -1392,6 +1270,15 @@ declare class NhAssistantAgentRunConfigurationComponent implements OnInit {
1392
1270
  * An entry point of the flow: the forms of the run configuration open below with the focus in them;
1393
1271
  * the editor, the account, the runs and the MCP servers belong to the host.
1394
1272
  */
1273
+ /** Whether the page shows a part of the run configuration. */
1274
+ shows(section: NhAssistantRunConfigurationSection): boolean;
1275
+ /** The state of one of the agent's skills, as the agent list reports it. */
1276
+ skillState(skillId: string): AgentSkillState | null;
1277
+ /**
1278
+ * Opens the form of a flow entry that another view of the agent asked for, such as its overview,
1279
+ * once the configuration is loaded.
1280
+ */
1281
+ openEntry(entry: AgentFlowEntry): void;
1395
1282
  onFlowEntry(entry: AgentFlowEntry): void;
1396
1283
  cancel(): void;
1397
1284
  value(event: Event): string;
@@ -1408,6 +1295,8 @@ declare class NhAssistantAgentRunConfigurationComponent implements OnInit {
1408
1295
  private finish;
1409
1296
  /** Opens one form at a time and moves the focus into it. */
1410
1297
  private open;
1298
+ /** Scrolls an item of a section into view and moves the focus to it. */
1299
+ private reveal;
1411
1300
  /** One comparison or history is shown at a time. */
1412
1301
  private closeDetails;
1413
1302
  /** Whether the last failed action concerned this item, so its error shows there. */
@@ -1415,7 +1304,7 @@ declare class NhAssistantAgentRunConfigurationComponent implements OnInit {
1415
1304
  /** Runs a change and reloads the configuration, which every change may affect. */
1416
1305
  private run;
1417
1306
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NhAssistantAgentRunConfigurationComponent, never>;
1418
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<NhAssistantAgentRunConfigurationComponent, "nh-assistant-agent-run-configuration", never, { "agent": { "alias": "agent"; "required": true; "isSignal": true; }; "startSetup": { "alias": "startSetup"; "required": false; "isSignal": true; }; "tools": { "alias": "tools"; "required": false; "isSignal": true; }; "servers": { "alias": "servers"; "required": false; "isSignal": true; }; "agents": { "alias": "agents"; "required": false; "isSignal": true; }; }, { "changed": "changed"; "editAgent": "editAgent"; "changeAccount": "changeAccount"; "openRuns": "openRuns"; "openMcpServers": "openMcpServers"; "openAgent": "openAgent"; }, never, never, true, never>;
1307
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NhAssistantAgentRunConfigurationComponent, "nh-assistant-agent-run-configuration", never, { "agent": { "alias": "agent"; "required": true; "isSignal": true; }; "startSetup": { "alias": "startSetup"; "required": false; "isSignal": true; }; "tools": { "alias": "tools"; "required": false; "isSignal": true; }; "servers": { "alias": "servers"; "required": false; "isSignal": true; }; "agents": { "alias": "agents"; "required": false; "isSignal": true; }; "sections": { "alias": "sections"; "required": false; "isSignal": true; }; }, { "changed": "changed"; "editAgent": "editAgent"; "changeAccount": "changeAccount"; "openRuns": "openRuns"; "openMcpServers": "openMcpServers"; "openAgent": "openAgent"; "agentChanged": "agentChanged"; "entryRequested": "entryRequested"; }, never, ["[nhAssistantConnectedAgents]", "[nhAssistantGuardrails]"], true, never>;
1419
1308
  }
1420
1309
 
1421
1310
  /** Result of the latest connection test per server. */
@@ -1779,5 +1668,5 @@ declare class NhAssistantAdminMcpToolsComponent {
1779
1668
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<NhAssistantAdminMcpToolsComponent, "nh-assistant-admin-mcp-tools", never, { "server": { "alias": "server"; "required": true; "isSignal": true; }; }, { "closed": "closed"; "synced": "synced"; }, never, never, true, never>;
1780
1669
  }
1781
1670
 
1782
- export { NH_ASSISTANT_ADMIN_TRANSLATIONS, NH_ASSISTANT_AGENT_METADATA_EDITORS, NH_ASSISTANT_MAX_INSTRUCTIONS, NhAssistantAdminAgentEditorComponent, NhAssistantAdminAgentsComponent, NhAssistantAdminComponent, NhAssistantAdminContextComponent, NhAssistantAdminMcpServerEditorComponent, NhAssistantAdminMcpServersComponent, NhAssistantAdminMcpToolsComponent, NhAssistantAdminTranslationMerger, NhAssistantAgentEvaluationComponent, NhAssistantAgentFeedbackReportComponent, NhAssistantAgentMetadataComponent, NhAssistantAgentMetadataSlot, NhAssistantAgentRunConfigurationComponent, NhAssistantAgentRunHistoryComponent, nhAssistantSelectorMatches, provideNhAssistantAgentMetadataEditors };
1783
- export type { AgentUse, NhAssistantAdminTab, NhAssistantAgentMetadataEditor, NhAssistantAgentMetadataStatus, NhAssistantEvaluationPeriod, NhAssistantFeedbackPeriod, NhAssistantReaderDraft, NhAssistantSecretAction, NhAssistantSecretSource, WorksOnScope };
1671
+ export { NH_ASSISTANT_ADMIN_TRANSLATIONS, NH_ASSISTANT_AGENT_METADATA_EDITORS, NH_ASSISTANT_AGENT_TABS, NH_ASSISTANT_MAX_INSTRUCTIONS, NhAssistantAdminAgentEditorComponent, NhAssistantAdminAgentsComponent, NhAssistantAdminComponent, NhAssistantAdminContextComponent, NhAssistantAdminMcpServerEditorComponent, NhAssistantAdminMcpServersComponent, NhAssistantAdminMcpToolsComponent, NhAssistantAdminTranslationMerger, NhAssistantAgentEvaluationComponent, NhAssistantAgentFeedbackReportComponent, NhAssistantAgentMetadataComponent, NhAssistantAgentMetadataSlot, NhAssistantAgentRunConfigurationComponent, NhAssistantAgentRunHistoryComponent, nhAssistantAgentTab, nhAssistantSelectorMatches, provideNhAssistantAgentMetadataEditors };
1672
+ export type { AgentUse, NhAssistantAdminLocation, NhAssistantAdminTab, NhAssistantAgentEditorSection, NhAssistantAgentMetadataEditor, NhAssistantAgentMetadataStatus, NhAssistantAgentTab, NhAssistantAgentsLocation, NhAssistantEvaluationPeriod, NhAssistantFeedbackPeriod, NhAssistantReaderDraft, NhAssistantRunConfigurationSection, NhAssistantSecretAction, NhAssistantSecretSource, WorksOnScope };