@newheap/platform-ai-chat 0.10.0 → 0.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.
package/index.d.ts CHANGED
@@ -12,12 +12,17 @@ import { TemplatePortal } from '@angular/cdk/portal';
12
12
  type AgentSubjectRole = 'none' | 'reader' | 'participant' | 'approver';
13
13
  type AgentRunStatus = 'queued' | 'running' | 'waiting-for-approval' | 'completed' | 'failed' | 'cancelled';
14
14
  type AgentProposalStatus = 'pending' | 'approved' | 'rejected' | 'expired' | 'withdrawn' | 'stale' | 'executing' | 'executed' | 'execution-failed' | 'execution-unknown' | 'resolved' | 'shadow';
15
- type AgentGrantSource = 'none' | 'delegated' | 'agent';
15
+ type AgentGrantSource = 'none' | 'delegated' | 'agent' | 'delegated-read';
16
16
  /**
17
17
  * How a run worked: `model` through the language model, `rule` through the agent's rules without a
18
18
  * model, `rule-then-model` when the rules handed the run over to the model.
19
19
  */
20
20
  type AgentRunKind = 'model' | 'rule' | 'rule-then-model';
21
+ /**
22
+ * Who chose the skill a run worked in; `follow-up` continues in the skill of the run whose
23
+ * proposal people decided.
24
+ */
25
+ type AgentSkillChooser = 'trigger' | 'rules' | 'triage' | 'model' | 'follow-up';
21
26
  interface AgentRun {
22
27
  id: string;
23
28
  conversationId: string;
@@ -41,6 +46,18 @@ interface AgentRun {
41
46
  backgroundOperationId: string | null;
42
47
  /** How the run worked. Missing on older servers, which only ran the model. */
43
48
  kind?: AgentRunKind;
49
+ /** The skill of the agent the run worked in; missing or null for the agent's own tools. */
50
+ skill?: string | null;
51
+ skillChosenBy?: AgentSkillChooser | null;
52
+ /** The agent that handed the run's work off; missing or null for a run no agent asked for. */
53
+ requestedByAgentId?: string | null;
54
+ /**
55
+ * The thread of the run that handed the work off, only in a thread's run list and only when the
56
+ * reader may open it.
57
+ */
58
+ requestedByConversationId?: string | null;
59
+ /** How many hand-offs led to the run; 0 or missing for a run no agent asked for. */
60
+ handOffDepth?: number;
44
61
  }
45
62
  interface AgentRunList {
46
63
  items: AgentRun[];
@@ -473,9 +490,12 @@ interface ToolCallPart {
473
490
  argumentsPreview: string | null;
474
491
  resultPreview: string | null;
475
492
  resultCode: string | null;
476
- /** `delegated` or `agent` when an agent used rights beyond the caller's own. */
477
- grantSource?: 'delegated' | 'agent' | null;
478
- /** The result came from the agent's own grant and is shielded from this viewer. */
493
+ /**
494
+ * `delegated`, `agent` or `delegated-read` when an agent used rights beyond the caller's own:
495
+ * the initiator's, its own grant, or a person's through a gateway read.
496
+ */
497
+ grantSource?: 'delegated' | 'agent' | 'delegated-read' | null;
498
+ /** The result came from rights this viewer does not have and is shielded from them. */
479
499
  restricted?: boolean;
480
500
  }
481
501
  /**
@@ -769,18 +789,81 @@ interface AdminAgentInput {
769
789
  mcpServerIds: string[];
770
790
  requiredPolicy: string | null;
771
791
  autonomy: AssistantAutonomy;
772
- isEnabled: boolean;
792
+ /**
793
+ * @deprecated Accepted and ignored by the server until the next major version: pause, stop and
794
+ * resume an agent with `setAgentState`. A new agent starts active.
795
+ */
796
+ isEnabled?: boolean;
773
797
  }
774
798
  /** Body of `PUT admin/agents/{id}`. */
775
799
  type UpdateAdminAgentRequest = AdminAgentInput & {
776
800
  expectedVersion: number;
777
801
  };
802
+ /**
803
+ * The run state of an agent. `paused`: no new runs; events wait and run after the resume.
804
+ * `stopped`: active runs were cancelled and events are refused. `configured-off`: disabled in the
805
+ * application's code until the next deployment; it cannot be resumed here.
806
+ */
807
+ type AgentRunState = 'active' | 'paused' | 'stopped' | 'configured-off';
778
808
  interface AdminAgent extends AdminAgentInput {
809
+ /** `false` while the agent is stopped; read `runState` for the full state. */
810
+ isEnabled: boolean;
779
811
  version: number;
780
812
  source: 'code' | 'admin';
781
813
  isOverridden: boolean;
782
814
  instructionsHash: string;
783
815
  updatedAt: string;
816
+ runState: AgentRunState;
817
+ stateChangedAt: string | null;
818
+ stateChangedBy: string | null;
819
+ stateReason: string | null;
820
+ /** Events that wait while the agent is paused. */
821
+ waitingInputs: number;
822
+ /** The agent's skills with their states and today's usage; missing or empty without skills. */
823
+ skills?: AgentSkillState[];
824
+ /** The live agent this agent is a shadow variant of; missing or null for an agent that is no variant. */
825
+ shadowOf?: string | null;
826
+ }
827
+ /** One skill of an agent with its own state and today's usage across scopes. */
828
+ interface AgentSkillState {
829
+ skillId: string;
830
+ description: string;
831
+ runState: 'active' | 'paused' | 'stopped';
832
+ changedAt: string | null;
833
+ changedBy: string | null;
834
+ reason: string | null;
835
+ /** Events that wait for the skill while it is paused. */
836
+ waitingInputs: number;
837
+ toolCallsToday: number;
838
+ tokensToday: number;
839
+ /** The skill's daily budget per scope, when it has one. */
840
+ dailyToolCalls: number | null;
841
+ dailyTokens: number | null;
842
+ cancelledRuns: number;
843
+ startedRuns: number;
844
+ }
845
+ /** Response of `GET` and `POST admin/agents/{id}/state`. */
846
+ interface AgentState {
847
+ agentId: string;
848
+ runState: AgentRunState;
849
+ /** Whether the agent works now: active, enabled in code and the assistant enabled. */
850
+ active: boolean;
851
+ changedAt: string | null;
852
+ changedBy: string | null;
853
+ reason: string | null;
854
+ waitingInputs: number;
855
+ /** The runs this change cancelled by stopping the agent. */
856
+ cancelledRuns: number;
857
+ /** The runs this change started for waiting events by resuming the agent. */
858
+ startedRuns: number;
859
+ skills?: AgentSkillState[];
860
+ shadowOf?: string | null;
861
+ }
862
+ /** Body of `POST admin/agents/{id}/state`. `active` resumes the agent. */
863
+ interface SetAgentStateRequest {
864
+ state: 'active' | 'paused' | 'stopped';
865
+ /** Optional, at most 500 characters. */
866
+ reason?: string | null;
784
867
  }
785
868
  type McpAuthMode = 'none' | 'bearer' | 'api-key' | 'forward-user-token';
786
869
  interface McpServerInput {
@@ -853,6 +936,126 @@ interface AgentFeedbackListFilter extends AgentFeedbackFilter {
853
936
  itemsPerPage?: number;
854
937
  }
855
938
  /** Filter of `GET admin/agents/{id}/feedback/export`. */
939
+ /** Query of `GET admin/agents/{id}/evaluation` and its export. */
940
+ interface AgentEvaluationFilter {
941
+ /** The shadow variant to compare with the agent. */
942
+ variant: string;
943
+ /** Start of the period as an ISO 8601 date-time; seven days before `to` by default. */
944
+ from?: string;
945
+ /** End of the period, exclusive; now by default. The period spans at most 92 days. */
946
+ to?: string;
947
+ }
948
+ /**
949
+ * Response of `GET admin/agents/{id}/evaluation`: how a shadow variant compared with its live
950
+ * agent. Counts, identifiers and links only; no messages or arguments.
951
+ */
952
+ interface AgentEvaluation {
953
+ agentId: string;
954
+ variantId: string;
955
+ from: string;
956
+ to: string;
957
+ runs: AgentEvaluationRuns;
958
+ tools: AgentEvaluationTool[];
959
+ liveCost: AgentEvaluationCost;
960
+ variantCost: AgentEvaluationCost;
961
+ routing: AgentEvaluationRouting[];
962
+ /** Proposals only one of the two made, with the runs and threads to read; at most 50. */
963
+ differences: AgentEvaluationDifference[];
964
+ }
965
+ interface AgentEvaluationRuns {
966
+ live: number;
967
+ variant: number;
968
+ /** Pairs of runs that handled the same event or that a replay repeated. */
969
+ paired: number;
970
+ /** Pairs whose variant run replayed the live run; it saw today's state of the subject. */
971
+ replayed: number;
972
+ liveUnpaired: number;
973
+ variantUnpaired: number;
974
+ /** The period held more runs than one evaluation reads; it covers the oldest. */
975
+ truncated: boolean;
976
+ }
977
+ interface AgentEvaluationTool {
978
+ toolId: string;
979
+ agreed: number;
980
+ liveOnly: number;
981
+ variantOnly: number;
982
+ liveDecisions: AgentEvaluationDecisions;
983
+ /** Live proposals people rejected that the variant did not make. */
984
+ rejectedLiveNotProposed: number;
985
+ /** Live proposals people rejected that the variant made too. */
986
+ rejectedLiveAlsoProposed: number;
987
+ /** Live proposals people approved that the variant did not make. */
988
+ approvedLiveMissed: number;
989
+ }
990
+ interface AgentEvaluationDecisions {
991
+ pending: number;
992
+ approved: number;
993
+ /** Executed, including failed and uncertain executions. */
994
+ executed: number;
995
+ rejected: number;
996
+ stale: number;
997
+ /** Expired and withdrawn proposals. */
998
+ other: number;
999
+ /** Feedback categories of rejected proposals and how often people chose them. */
1000
+ rejectionCategories: Record<string, number>;
1001
+ }
1002
+ interface AgentEvaluationCost {
1003
+ runs: number;
1004
+ modelCalls: number;
1005
+ tokens: number;
1006
+ toolCalls: number;
1007
+ averageModelCalls: number;
1008
+ averageTokens: number;
1009
+ averageToolCalls: number;
1010
+ p95ModelCalls: number;
1011
+ p95Tokens: number;
1012
+ p95ToolCalls: number;
1013
+ }
1014
+ interface AgentEvaluationRouting {
1015
+ /** `null` is the agent's own tools. */
1016
+ liveSkill: string | null;
1017
+ variantSkill: string | null;
1018
+ runs: number;
1019
+ }
1020
+ interface AgentEvaluationDifference {
1021
+ toolId: string;
1022
+ kind: 'live-only' | 'variant-only';
1023
+ /** What people decided about a live-only proposal. */
1024
+ liveStatus: string | null;
1025
+ liveRunId: string;
1026
+ liveConversationId: string;
1027
+ variantRunId: string;
1028
+ variantConversationId: string;
1029
+ replayed: boolean;
1030
+ }
1031
+ /** Body of `POST admin/agents/{id}/replay`. */
1032
+ interface AgentReplayRequest {
1033
+ /** The agent whose runs to replay; the variant's live agent by default. */
1034
+ sourceAgentId?: string | null;
1035
+ from?: string | null;
1036
+ to?: string | null;
1037
+ /** 1 to 500; 100 by default. */
1038
+ maxRuns?: number | null;
1039
+ }
1040
+ /** A replay of recorded runs into a shadow variant. */
1041
+ interface AgentReplay {
1042
+ id: string;
1043
+ variantAgentId: string;
1044
+ sourceAgentId: string;
1045
+ from: string;
1046
+ to: string;
1047
+ maxRuns: number;
1048
+ status: 'running' | 'completed' | 'stopped';
1049
+ /** Why a stopped replay stopped, such as `assistant-budget-exhausted`. */
1050
+ stopReason: string | null;
1051
+ runsReplayed: number;
1052
+ runsSkipped: number;
1053
+ createdAt: string;
1054
+ endedAt: string | null;
1055
+ }
1056
+ interface AgentReplayList {
1057
+ items: AgentReplay[];
1058
+ }
856
1059
  interface AgentFeedbackExportFilter extends AgentFeedbackFilter {
857
1060
  category?: AgentProposalFeedbackCategory;
858
1061
  /** Maximum number of records; the server defaults to 10,000 and allows at most 50,000. */
@@ -1078,7 +1281,8 @@ declare const NH_ASSISTANT_TRANSLATIONS: Readonly<Record<'en' | 'nl', Translatio
1078
1281
  * Merges the bundled texts into `TranslateService` whenever the host loads or replaces a
1079
1282
  * language. Host loaders never lose the library texts, the library never pre-empts the
1080
1283
  * host loader, and keys the host defines under `nh-assistant.` (agent names, overrides)
1081
- * win over the bundle. Languages without a bundle receive the English texts.
1284
+ * win over the bundle. A regional language such as `nl-NL` receives the texts of its base
1285
+ * language; languages without a bundle receive the English texts.
1082
1286
  */
1083
1287
  declare class NhAssistantTranslationMerger {
1084
1288
  private readonly translate;
@@ -1197,9 +1401,19 @@ declare class NhAssistantAdminApiService {
1197
1401
  getAgents(): Observable<AdminAgent[]>;
1198
1402
  createAgent(input: AdminAgentInput): Observable<AdminAgent>;
1199
1403
  updateAgent(agentId: string, request: UpdateAdminAgentRequest): Observable<AdminAgent>;
1200
- /** Restores a code agent to its definition in code. */
1404
+ /** Restores a code agent to its definition in code. The run state stays as it is. */
1201
1405
  resetAgent(agentId: string): Observable<AdminAgent>;
1202
- /** Deletes an admin agent. Code agents cannot be deleted; disable them instead. */
1406
+ getAgentState(agentId: string): Observable<AgentState>;
1407
+ /**
1408
+ * Pauses, stops or resumes an agent without changing its definition. A code-disabled agent
1409
+ * cannot be resumed (`assistant-agent-configured-off`).
1410
+ */
1411
+ setAgentState(agentId: string, request: SetAgentStateRequest): Observable<AgentState>;
1412
+ /**
1413
+ * Pauses, stops or resumes one skill of an agent; its other skills keep working.
1414
+ */
1415
+ setSkillState(agentId: string, skillId: string, request: SetAgentStateRequest): Observable<AgentSkillState>;
1416
+ /** Deletes an admin agent. Code agents cannot be deleted; stop them instead. */
1203
1417
  deleteAgent(agentId: string): Observable<void>;
1204
1418
  getMcpServers(): Observable<McpServer[]>;
1205
1419
  createMcpServer(input: McpServerInput): Observable<McpServer>;
@@ -1223,6 +1437,24 @@ declare class NhAssistantAdminApiService {
1223
1437
  * subject data and the server audits the export. Rejects with `NhAssistantApiError`.
1224
1438
  */
1225
1439
  exportAgentFeedback(agentId: string, filter?: AgentFeedbackExportFilter): Promise<Blob>;
1440
+ /**
1441
+ * Compares a shadow variant with its live agent over a period: the runs that handled the same
1442
+ * events, the proposals per tool with what people decided about the live ones, cost and routing.
1443
+ */
1444
+ getAgentEvaluation(agentId: string, filter: AgentEvaluationFilter): Observable<AgentEvaluation>;
1445
+ /**
1446
+ * Downloads the paired runs of the comparison as JSON Lines: identifiers, statuses, usage and
1447
+ * proposal identities, no content. The server audits the export. Rejects with `NhAssistantApiError`.
1448
+ */
1449
+ exportAgentEvaluation(agentId: string, filter: AgentEvaluationFilter): Promise<Blob>;
1450
+ /**
1451
+ * Replays the recorded runs of another agent in a period into a shadow variant, against today's
1452
+ * state of each subject. One replay runs per variant (`assistant-replay-active`).
1453
+ */
1454
+ startAgentReplay(variantId: string, request: AgentReplayRequest): Observable<AgentReplay>;
1455
+ /** The latest replays into a shadow variant, newest first. */
1456
+ getAgentReplays(variantId: string): Observable<AgentReplayList>;
1457
+ private download;
1226
1458
  private request;
1227
1459
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NhAssistantAdminApiService, never>;
1228
1460
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<NhAssistantAdminApiService>;
@@ -2505,4 +2737,4 @@ declare function nhAssistantErrorKeys(error: NhAssistantError | null): string[];
2505
2737
  declare const NH_ASSISTANT_DASH_CASE: RegExp;
2506
2738
 
2507
2739
  export { NH_ASSISTANT_ACCESS_POLICY, NH_ASSISTANT_CONFIG, NH_ASSISTANT_CONVERSATION_FRAGMENT, NH_ASSISTANT_FEEDBACK_CATEGORIES, NH_ASSISTANT_FEEDBACK_GROUPS, NH_ASSISTANT_FETCH, NH_ASSISTANT_ICONS, NH_ASSISTANT_JOIN_FRAGMENT, NH_ASSISTANT_MAX_BULK_FEEDBACK, NH_ASSISTANT_MAX_CUSTOM_INSTRUCTIONS, NH_ASSISTANT_MAX_FEEDBACK_TEXT, NH_ASSISTANT_MAX_PROPOSAL_LOOKUP, NH_ASSISTANT_MAX_SUBJECT_SUMMARY, NH_ASSISTANT_NO_ANSWER_NOTICE_CODE, NH_ASSISTANT_PAGE_CONTEXT_LIMITS, NH_ASSISTANT_PANEL_MOBILE_QUERY, NH_ASSISTANT_PANEL_WIDTH, NH_ASSISTANT_SSE_EVENT_TYPES, NH_ASSISTANT_TRANSLATIONS, NH_ASSISTANT_VIRTUAL_SCROLL_THRESHOLD, NhAssistantActivityComponent, NhAssistantAdminApiService, NhAssistantAgentPickerComponent, NhAssistantAgentRunApiService, NhAssistantAllowAllAccessPolicy, NhAssistantApiError, NhAssistantApiService, NhAssistantApprovalCardComponent, NhAssistantClientErrorCodes, NhAssistantComposerComponent, NhAssistantConversationListComponent, NhAssistantLauncherComponent, NhAssistantLiveService, NhAssistantPanelComponent, NhAssistantPanelService, NhAssistantPreferencesComponent, NhAssistantProposalFeedbackComponent, NhAssistantPushService, NhAssistantShareComponent, NhAssistantSseParser, NhAssistantStore, NhAssistantSubjectBadgeComponent, NhAssistantSubjectSummaryService, NhAssistantThreadComponent, NhAssistantToolCallCardComponent, NhAssistantToolCallGroupComponent, NhAssistantTranslationMerger, applyNhAssistantApprovalDecision, applyNhAssistantConversationChange, applyNhAssistantEvent, applyNhAssistantLiveEvent, describeNhAssistantClientContext, formatNhAssistantCountdown, nhAssistantCodeForStatus, nhAssistantErrorMessageKey, nhAssistantIsUnread, nhAssistantLatestTurnHasText, nhAssistantShareLink, normalizeNhAssistantClientContext, provideNhAssistant, NH_ASSISTANT_DASH_CASE as ɵNH_ASSISTANT_DASH_CASE, NhAssistantIconComponent as ɵNhAssistantIconComponent, NhAssistantTranslatePipe as ɵNhAssistantTranslatePipe, nhAssistantErrorKeys as ɵnhAssistantErrorKeys, nhAssistantReloadOnAgentWork as ɵnhAssistantReloadOnAgentWork, toNhAssistantError as ɵtoNhAssistantError };
2508
- export type { AdminAgent, AdminAgentInput, AgentArtifact, AgentConsultation, AgentConsultationList, AgentConsultationStatus, AgentDecisionOutcome, AgentExecutionResolution, AgentFeedbackCategoryCount, AgentFeedbackExportFilter, AgentFeedbackFilter, AgentFeedbackItem, AgentFeedbackList, AgentFeedbackListFilter, AgentFeedbackOutcome, AgentFeedbackSummary, AgentFeedbackSummaryRow, AgentGrantSource, AgentInbox, AgentInboxFilter, AgentInvalidationCount, AgentProposal, AgentProposalDecision, AgentProposalDecisionRight, AgentProposalFeedback, AgentProposalFeedbackCategory, AgentProposalFeedbackGroup, AgentProposalLookup, AgentProposalObject, AgentProposalStatus, AgentRun, AgentRunKind, AgentRunList, AgentRunRetryMode, AgentRunStatus, AgentSubjectRole, AgentSubjectSummary, AgentSubjectSummaryList, AgentSubjectWork, AgentSubjectWorkAgent, AgentSubjectWorkProposal, AgentSummary, AgentThread, AgentThreadLookup, AgentThreadMemory, AgentTriggerReceipt, ApplicationContext, ApplicationContextVersion, ApprovalDecision, ApprovalPart, ApprovalPresentation, ApprovalPresentationField, ApprovalRequiredEvent, ApprovalStatus, AssistantAddressForm, AssistantAutonomy, AssistantCollaboration, AssistantErrorEvent, AssistantPreferences, AssistantResponseLength, AssistantStatus, AssistantStyle, ClientContext, ClientContextEntity, Conversation, ConversationKind, ConversationMember, ConversationPage, ConversationRole, ConversationStatus, ConversationSummary, ConversationThread, ConversationThreadDecision, CreateConversationRequest, DecideApprovalRequest, DirectoryEntry, LiveAgentWorkChanged, LiveAgentWorkReason, LiveConversationChanged, LiveConversationEvent, LiveConversationRead, LiveConversationRemoved, McpAuthMode, McpServer, McpServerInput, McpServerTestResult, McpTool, McpToolEffect, McpToolStatus, Message, MessageAuthorKind, MessageDeltaEvent, MessagePart, NhAssistantAccessPolicy, NhAssistantActivity, NhAssistantApprovalChoice, NhAssistantApprovalRight, NhAssistantApprovalWaitingFor, NhAssistantClientContext, NhAssistantClientErrorCode, NhAssistantConfig, NhAssistantError, NhAssistantFetch, NhAssistantIconName, NhAssistantLiveState, NhAssistantNotice, NhAssistantProposalFeedbackSaved, NhAssistantPushConfig, NhAssistantPushState, NhAssistantQueuedMessage, NhAssistantRawSseMessage, NhAssistantSseEvent, NhAssistantSseEventMap, NhAssistantSseEventType, NhAssistantStatusCodes, NhAssistantToolCallGroupState, NotificationSettings, PushSubscriptionRequest, SendMessageRequest, ShareLink, StaleKind, StartAgentRequest, TextPart, ToolCallPart, ToolCallStatus, ToolCatalogEffect, ToolCatalogEntry, ToolCompletedEvent, ToolStartedEvent, TurnCompletedEvent, TurnCompletionStatus, TurnStartedEvent, TurnUsage, UpdateAdminAgentRequest, UpdateApplicationContextRequest, UpdateMcpToolRequest };
2740
+ export type { AdminAgent, AdminAgentInput, AgentArtifact, AgentConsultation, AgentConsultationList, AgentConsultationStatus, AgentDecisionOutcome, AgentEvaluation, AgentEvaluationCost, AgentEvaluationDecisions, AgentEvaluationDifference, AgentEvaluationFilter, AgentEvaluationRouting, AgentEvaluationRuns, AgentEvaluationTool, AgentExecutionResolution, AgentFeedbackCategoryCount, AgentFeedbackExportFilter, AgentFeedbackFilter, AgentFeedbackItem, AgentFeedbackList, AgentFeedbackListFilter, AgentFeedbackOutcome, AgentFeedbackSummary, AgentFeedbackSummaryRow, AgentGrantSource, AgentInbox, AgentInboxFilter, AgentInvalidationCount, AgentProposal, AgentProposalDecision, AgentProposalDecisionRight, AgentProposalFeedback, AgentProposalFeedbackCategory, AgentProposalFeedbackGroup, AgentProposalLookup, AgentProposalObject, AgentProposalStatus, AgentReplay, AgentReplayList, AgentReplayRequest, AgentRun, AgentRunKind, AgentRunList, AgentRunRetryMode, AgentRunState, AgentRunStatus, AgentSkillChooser, AgentSkillState, AgentState, AgentSubjectRole, AgentSubjectSummary, AgentSubjectSummaryList, AgentSubjectWork, AgentSubjectWorkAgent, AgentSubjectWorkProposal, AgentSummary, AgentThread, AgentThreadLookup, AgentThreadMemory, AgentTriggerReceipt, ApplicationContext, ApplicationContextVersion, ApprovalDecision, ApprovalPart, ApprovalPresentation, ApprovalPresentationField, ApprovalRequiredEvent, ApprovalStatus, AssistantAddressForm, AssistantAutonomy, AssistantCollaboration, AssistantErrorEvent, AssistantPreferences, AssistantResponseLength, AssistantStatus, AssistantStyle, ClientContext, ClientContextEntity, Conversation, ConversationKind, ConversationMember, ConversationPage, ConversationRole, ConversationStatus, ConversationSummary, ConversationThread, ConversationThreadDecision, CreateConversationRequest, DecideApprovalRequest, DirectoryEntry, LiveAgentWorkChanged, LiveAgentWorkReason, LiveConversationChanged, LiveConversationEvent, LiveConversationRead, LiveConversationRemoved, McpAuthMode, McpServer, McpServerInput, McpServerTestResult, McpTool, McpToolEffect, McpToolStatus, Message, MessageAuthorKind, MessageDeltaEvent, MessagePart, NhAssistantAccessPolicy, NhAssistantActivity, NhAssistantApprovalChoice, NhAssistantApprovalRight, NhAssistantApprovalWaitingFor, NhAssistantClientContext, NhAssistantClientErrorCode, NhAssistantConfig, NhAssistantError, NhAssistantFetch, NhAssistantIconName, NhAssistantLiveState, NhAssistantNotice, NhAssistantProposalFeedbackSaved, NhAssistantPushConfig, NhAssistantPushState, NhAssistantQueuedMessage, NhAssistantRawSseMessage, NhAssistantSseEvent, NhAssistantSseEventMap, NhAssistantSseEventType, NhAssistantStatusCodes, NhAssistantToolCallGroupState, NotificationSettings, PushSubscriptionRequest, SendMessageRequest, SetAgentStateRequest, ShareLink, StaleKind, StartAgentRequest, TextPart, ToolCallPart, ToolCallStatus, ToolCatalogEffect, ToolCatalogEntry, ToolCompletedEvent, ToolStartedEvent, TurnCompletedEvent, TurnCompletionStatus, TurnStartedEvent, TurnUsage, UpdateAdminAgentRequest, UpdateApplicationContextRequest, UpdateMcpToolRequest };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@newheap/platform-ai-chat",
3
- "version": "0.10.0",
3
+ "version": "0.12.0",
4
4
  "peerDependencies": {
5
5
  "@angular/cdk": "^20.2.14",
6
6
  "@angular/common": "^20.3.28",
@@ -95,6 +95,13 @@ interface NhAssistantMockMcpServer extends McpServerInput {
95
95
  /** A preconfigured agent. Code agents default to the scenario's chat agents. */
96
96
  interface NhAssistantMockAdminAgent extends AdminAgentInput {
97
97
  source: 'code' | 'admin';
98
+ /** The skills of a code agent, by id and description; they start active. */
99
+ skills?: {
100
+ skillId: string;
101
+ description: string;
102
+ }[];
103
+ /** The live agent this code agent is a shadow variant of. */
104
+ shadowOf?: string;
98
105
  }
99
106
  /**
100
107
  * Administration data of the mock. Hosts without an admin scenario still get working