@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/README.md +3 -1
- package/admin/index.d.ts +110 -8
- package/agent-runs/index.d.ts +6 -4
- package/fesm2022/newheap-platform-ai-chat-admin.mjs +316 -32
- package/fesm2022/newheap-platform-ai-chat-admin.mjs.map +1 -1
- package/fesm2022/newheap-platform-ai-chat-agent-runs.mjs +22 -20
- package/fesm2022/newheap-platform-ai-chat-agent-runs.mjs.map +1 -1
- package/fesm2022/newheap-platform-ai-chat-testing.mjs +233 -15
- package/fesm2022/newheap-platform-ai-chat-testing.mjs.map +1 -1
- package/fesm2022/newheap-platform-ai-chat.mjs +354 -18
- package/fesm2022/newheap-platform-ai-chat.mjs.map +1 -1
- package/i18n/en.json +144 -5
- package/i18n/nl.json +144 -5
- package/index.d.ts +241 -9
- package/package.json +1 -1
- package/testing/index.d.ts +7 -0
|
@@ -220,10 +220,12 @@ var en = {
|
|
|
220
220
|
"grant-source": {
|
|
221
221
|
delegated: "On behalf of the initiator",
|
|
222
222
|
agent: "Agent rights",
|
|
223
|
+
"delegated-read": "Read with a person's rights",
|
|
223
224
|
"delegated-hint": "The agent used the rights of the person who started it.",
|
|
224
|
-
"agent-hint": "The agent used a right it was granted itself, beyond the rights of the people involved."
|
|
225
|
+
"agent-hint": "The agent used a right it was granted itself, beyond the rights of the people involved.",
|
|
226
|
+
"delegated-read-hint": "The agent read this through the application's data gateway with the rights of the person who started it, or else of the person it works for. Only that person sees the result."
|
|
225
227
|
},
|
|
226
|
-
restricted: "Shielded: the agent obtained this with
|
|
228
|
+
restricted: "Shielded: the agent obtained this with rights you do not have."
|
|
227
229
|
},
|
|
228
230
|
"tool-group": {
|
|
229
231
|
running: "Calling {{name}}…",
|
|
@@ -394,6 +396,24 @@ var en = {
|
|
|
394
396
|
"assistant-subject-access-denied": "Your role on this subject does not allow this.",
|
|
395
397
|
"assistant-no-accountable-owner": "Nobody answers for this agent on this subject.",
|
|
396
398
|
"assistant-agent-disabled": "This agent has been stopped.",
|
|
399
|
+
"assistant-agent-configured-off": "This agent is disabled in the application's configuration.",
|
|
400
|
+
"assistant-agent-paused": "This agent is paused; the request waits until it resumes.",
|
|
401
|
+
"assistant-agent-stopped": "This agent has been stopped.",
|
|
402
|
+
"assistant-run-token-limit": "This run stopped because it reached its token budget. What it did so far stays; an approver can resume it.",
|
|
403
|
+
"assistant-skill-stopped": "This skill of the agent has been stopped.",
|
|
404
|
+
"assistant-skill-paused": "This skill of the agent is paused; its events wait until it resumes.",
|
|
405
|
+
"assistant-skill-not-found": "The agent has no such skill.",
|
|
406
|
+
"assistant-skill-not-available": "That skill is not available now.",
|
|
407
|
+
"assistant-skill-switch-limit": "The run already switched skills as often as allowed.",
|
|
408
|
+
"assistant-handoff-unavailable": "Only an agent run can hand work to another agent.",
|
|
409
|
+
"assistant-handoff-not-accepted": "That agent does not accept this work from this agent.",
|
|
410
|
+
"assistant-handoff-subject-unavailable": "The subject does not exist or belongs to another organisation.",
|
|
411
|
+
"assistant-handoff-shadow-to-live": "An agent in shadow mode cannot hand work to an agent that works for real.",
|
|
412
|
+
"assistant-handoff-chain-limit": "The chain of hand-offs is as long as allowed or would return to an agent in it.",
|
|
413
|
+
"assistant-handoff-limit-reached": "This agent handed this subject to that agent as often as allowed today.",
|
|
414
|
+
"assistant-replay-not-shadow": "Only an agent in shadow mode can receive a replay, from another agent.",
|
|
415
|
+
"assistant-replay-active": "A replay into this variant is still running.",
|
|
416
|
+
"assistant-evaluation-not-variant": "That agent is not a shadow variant to compare with.",
|
|
397
417
|
"assistant-agent-not-configured": "This agent cannot run on its own.",
|
|
398
418
|
"assistant-run-not-found": "The run was not found.",
|
|
399
419
|
"assistant-run-not-retryable": "This run cannot be retried.",
|
|
@@ -521,7 +541,7 @@ var en = {
|
|
|
521
541
|
},
|
|
522
542
|
agents: {
|
|
523
543
|
title: "Agents",
|
|
524
|
-
description: "Code agents come from the application; you can override
|
|
544
|
+
description: "Code agents come from the application; you can override or reset them. Agents you create here can be deleted. Pause, stop and resume any agent; its definition stays as it is.",
|
|
525
545
|
"new": "New agent",
|
|
526
546
|
empty: "No agents yet.",
|
|
527
547
|
"source-code": "Code",
|
|
@@ -529,6 +549,7 @@ var en = {
|
|
|
529
549
|
overridden: "Overridden",
|
|
530
550
|
reset: "Reset to code",
|
|
531
551
|
"confirm-reset": "Confirm reset",
|
|
552
|
+
"reset-keeps-state": "Resetting restores the code definition; the agent stays active, paused or stopped as it is.",
|
|
532
553
|
version: "Version {{version}}",
|
|
533
554
|
"tool-count": "{{count}} tool selectors",
|
|
534
555
|
"server-count": "{{count}} MCP servers",
|
|
@@ -539,7 +560,44 @@ var en = {
|
|
|
539
560
|
simulate: "Simulate",
|
|
540
561
|
execute: "Execute"
|
|
541
562
|
},
|
|
542
|
-
feedback: "Feedback"
|
|
563
|
+
feedback: "Feedback",
|
|
564
|
+
evaluation: "Evaluation",
|
|
565
|
+
state: {
|
|
566
|
+
active: "Active",
|
|
567
|
+
paused: "Paused",
|
|
568
|
+
stopped: "Stopped",
|
|
569
|
+
"configured-off": "Off in configuration",
|
|
570
|
+
"configured-off-hint": "Disabled in the application's code until the next deployment; it cannot be resumed here.",
|
|
571
|
+
changed: "Changed by {{user}} on {{date}}.",
|
|
572
|
+
reason: "Reason: {{reason}}",
|
|
573
|
+
waiting: "{{count}} events wait for the resume.",
|
|
574
|
+
"reason-label": "Reason (optional)",
|
|
575
|
+
action: {
|
|
576
|
+
active: "Resume",
|
|
577
|
+
paused: "Pause",
|
|
578
|
+
stopped: "Stop"
|
|
579
|
+
},
|
|
580
|
+
explain: {
|
|
581
|
+
active: "The agent works again. Every subject with waiting events gets one run.",
|
|
582
|
+
paused: "No new runs start. Events wait and run after the resume; running work finishes and approved proposals execute.",
|
|
583
|
+
stopped: "Active runs are cancelled, their open proposals withdrawn and waiting events dropped. Approved proposals wait until the agent works again."
|
|
584
|
+
},
|
|
585
|
+
confirm: {
|
|
586
|
+
active: "Confirm resume",
|
|
587
|
+
paused: "Confirm pause",
|
|
588
|
+
stopped: "Confirm stop"
|
|
589
|
+
}
|
|
590
|
+
},
|
|
591
|
+
skills: {
|
|
592
|
+
title: "Skills",
|
|
593
|
+
usage: "Today {{calls}} tool calls, {{tokens}} tokens",
|
|
594
|
+
budget: "Budget per day: {{calls}} tool calls, {{tokens}} tokens",
|
|
595
|
+
explain: {
|
|
596
|
+
active: "The skill {{skill}} works again. Every subject with events waiting for it gets one run.",
|
|
597
|
+
paused: "The skill {{skill}} starts no new runs: its events wait, triage no longer chooses it and running work finishes. The other skills keep working.",
|
|
598
|
+
stopped: "The runs of the skill {{skill}} are cancelled and its waiting events dropped; its triggers are refused. The other skills keep working."
|
|
599
|
+
}
|
|
600
|
+
}
|
|
543
601
|
},
|
|
544
602
|
"agent-editor": {
|
|
545
603
|
"new-title": "New agent",
|
|
@@ -554,7 +612,7 @@ var en = {
|
|
|
554
612
|
"autonomy-hint": "Only Execute allows changes, and every change still needs approval.",
|
|
555
613
|
"required-policy": "Required policy",
|
|
556
614
|
"required-policy-hint": "Optional. Only users who pass this policy see the agent.",
|
|
557
|
-
|
|
615
|
+
"state-hint": "Pause, stop and resume the agent from the agent list. Saving never changes its state.",
|
|
558
616
|
"tool-selectors": "Tool selectors",
|
|
559
617
|
"tool-selectors-hint": "Choose tools from the catalog or add a pattern such as sample-api.project.*. MCP tools come from the assigned servers.",
|
|
560
618
|
"add-selector": "Add pattern",
|
|
@@ -706,6 +764,77 @@ var en = {
|
|
|
706
764
|
next: "Next",
|
|
707
765
|
page: "Page {{page}} of {{pages}}",
|
|
708
766
|
pages: "Pages"
|
|
767
|
+
},
|
|
768
|
+
evaluation: {
|
|
769
|
+
back: "Back to the agents",
|
|
770
|
+
title: "Evaluation of shadow variants",
|
|
771
|
+
description: "Compares a shadow variant with the live agent: the runs that handled the same events, the proposals both made or only one made, what people decided about the live ones, and what each cost.",
|
|
772
|
+
"export-hint": "The export holds identifiers, statuses, usage and proposal identities, no messages or arguments. It is audited.",
|
|
773
|
+
refresh: "Refresh",
|
|
774
|
+
"export": "Export JSON Lines",
|
|
775
|
+
exporting: "Exporting…",
|
|
776
|
+
variant: "Variant",
|
|
777
|
+
period: "Period",
|
|
778
|
+
"runs-title": "Runs",
|
|
779
|
+
runs: {
|
|
780
|
+
live: "Live agent",
|
|
781
|
+
variant: "Variant",
|
|
782
|
+
paired: "Same event",
|
|
783
|
+
replayed: "Replayed",
|
|
784
|
+
"live-unpaired": "Live only",
|
|
785
|
+
"variant-unpaired": "Variant only"
|
|
786
|
+
},
|
|
787
|
+
"small-numbers": "Small numbers mislead: read the counts next to every share.",
|
|
788
|
+
"replayed-hint": "Replayed runs saw today's state of each subject; a subject that changed since can explain a difference.",
|
|
789
|
+
truncated: "The period holds more runs than one evaluation reads; it covers the oldest ones.",
|
|
790
|
+
"tools-title": "Proposals per tool",
|
|
791
|
+
"tools-empty": "The paired runs made no proposals.",
|
|
792
|
+
columns: {
|
|
793
|
+
tool: "Tool",
|
|
794
|
+
agreed: "Agreed",
|
|
795
|
+
"live-only": "Live only",
|
|
796
|
+
"variant-only": "Variant only",
|
|
797
|
+
"rejected-not-proposed": "Rejected live, not proposed",
|
|
798
|
+
"rejected-also-proposed": "Rejected live, also proposed",
|
|
799
|
+
"approved-missed": "Approved live, missed",
|
|
800
|
+
"live-decisions": "Decisions on live proposals",
|
|
801
|
+
measure: "Measure",
|
|
802
|
+
live: "Live agent",
|
|
803
|
+
variant: "Variant",
|
|
804
|
+
"live-skill": "Live skill",
|
|
805
|
+
"variant-skill": "Variant skill",
|
|
806
|
+
runs: "Runs"
|
|
807
|
+
},
|
|
808
|
+
decisions: "{{pending}} pending, {{approved}} approved, {{executed}} executed, {{rejected}} rejected, {{stale}} stale",
|
|
809
|
+
"cost-title": "Cost",
|
|
810
|
+
cost: {
|
|
811
|
+
runs: "Runs",
|
|
812
|
+
"model-calls": "Model calls per run",
|
|
813
|
+
tokens: "Tokens per run",
|
|
814
|
+
"tool-calls": "Tool calls per run",
|
|
815
|
+
"average-p95": "{{average}} on average, p95 {{p95}} ({{total}} in total)"
|
|
816
|
+
},
|
|
817
|
+
"routing-title": "Routing",
|
|
818
|
+
"no-skill": "Own tools",
|
|
819
|
+
"differences-title": "Differences",
|
|
820
|
+
kind: {
|
|
821
|
+
"live-only": "Live only",
|
|
822
|
+
"variant-only": "Variant only"
|
|
823
|
+
},
|
|
824
|
+
"live-status": "Live: {{status}}",
|
|
825
|
+
replayed: "Replayed",
|
|
826
|
+
"open-live": "Open the live thread",
|
|
827
|
+
"open-variant": "Open the variant's thread",
|
|
828
|
+
"replay-title": "Replay",
|
|
829
|
+
"replay-hint": "Fires the live agent's recorded runs of the period into the variant, oldest first, against today's state of each subject; at most {{max}} runs. The variant's budget and limits apply.",
|
|
830
|
+
"replay-runs": "Runs to replay",
|
|
831
|
+
replay: "Replay the period",
|
|
832
|
+
"replay-status": {
|
|
833
|
+
running: "Running",
|
|
834
|
+
completed: "Completed",
|
|
835
|
+
stopped: "Stopped"
|
|
836
|
+
},
|
|
837
|
+
"replay-progress": "{{replayed}} of at most {{max}} runs replayed, {{skipped}} skipped"
|
|
709
838
|
}
|
|
710
839
|
},
|
|
711
840
|
"page-context": {
|
|
@@ -870,6 +999,16 @@ var en = {
|
|
|
870
999
|
"rule-then-model": "Rule, then the model"
|
|
871
1000
|
},
|
|
872
1001
|
trigger: "Trigger: {{trigger}}",
|
|
1002
|
+
skill: "Skill: {{skill}}",
|
|
1003
|
+
"handed-off-by": "Handed off by {{agent}}",
|
|
1004
|
+
"open-source-thread": "Open its thread",
|
|
1005
|
+
"skill-chosen-by": {
|
|
1006
|
+
trigger: "by its trigger",
|
|
1007
|
+
rules: "by the rules",
|
|
1008
|
+
triage: "by triage",
|
|
1009
|
+
model: "by the model",
|
|
1010
|
+
"follow-up": "as the follow-up of a decision"
|
|
1011
|
+
},
|
|
873
1012
|
"tool-calls": "{{count}} tool calls",
|
|
874
1013
|
tokens: "{{count}} tokens",
|
|
875
1014
|
proposals: "{{count}} proposals",
|
|
@@ -1033,10 +1172,12 @@ var nl = {
|
|
|
1033
1172
|
"grant-source": {
|
|
1034
1173
|
delegated: "Namens de starter",
|
|
1035
1174
|
agent: "Agentrechten",
|
|
1175
|
+
"delegated-read": "Gelezen met rechten van een persoon",
|
|
1036
1176
|
"delegated-hint": "De agent gebruikte de rechten van de persoon die hem startte.",
|
|
1037
|
-
"agent-hint": "De agent gebruikte een recht dat hij zelf heeft gekregen, boven de rechten van de betrokkenen uit."
|
|
1177
|
+
"agent-hint": "De agent gebruikte een recht dat hij zelf heeft gekregen, boven de rechten van de betrokkenen uit.",
|
|
1178
|
+
"delegated-read-hint": "De agent las dit via de datagateway van de applicatie met de rechten van wie hem startte, of anders van degene voor wie hij werkt. Alleen die persoon ziet het resultaat."
|
|
1038
1179
|
},
|
|
1039
|
-
restricted: "Afgeschermd: de agent kreeg dit met
|
|
1180
|
+
restricted: "Afgeschermd: de agent kreeg dit met rechten die jij niet hebt."
|
|
1040
1181
|
},
|
|
1041
1182
|
"tool-group": {
|
|
1042
1183
|
running: "Roept {{name}} aan…",
|
|
@@ -1207,6 +1348,24 @@ var nl = {
|
|
|
1207
1348
|
"assistant-subject-access-denied": "Je rol op dit onderwerp staat dit niet toe.",
|
|
1208
1349
|
"assistant-no-accountable-owner": "Niemand staat voor deze agent op dit onderwerp in.",
|
|
1209
1350
|
"assistant-agent-disabled": "Deze agent is stopgezet.",
|
|
1351
|
+
"assistant-agent-configured-off": "Deze agent is uitgeschakeld in de configuratie van de applicatie.",
|
|
1352
|
+
"assistant-agent-paused": "Deze agent is gepauzeerd; het verzoek wacht tot hij hervat wordt.",
|
|
1353
|
+
"assistant-agent-stopped": "Deze agent is gestopt.",
|
|
1354
|
+
"assistant-run-token-limit": "Deze run is gestopt omdat hij zijn tokenbudget heeft bereikt. Wat hij al deed blijft staan; een goedkeurder kan hem hervatten.",
|
|
1355
|
+
"assistant-skill-stopped": "Deze vaardigheid van de agent is gestopt.",
|
|
1356
|
+
"assistant-skill-paused": "Deze vaardigheid van de agent is gepauzeerd; haar gebeurtenissen wachten tot ze hervat wordt.",
|
|
1357
|
+
"assistant-skill-not-found": "De agent heeft deze vaardigheid niet.",
|
|
1358
|
+
"assistant-skill-not-available": "Die vaardigheid is nu niet beschikbaar.",
|
|
1359
|
+
"assistant-skill-switch-limit": "De run is al zo vaak van vaardigheid gewisseld als mag.",
|
|
1360
|
+
"assistant-handoff-unavailable": "Alleen een agentrun kan werk overdragen aan een andere agent.",
|
|
1361
|
+
"assistant-handoff-not-accepted": "Die agent neemt dit werk niet aan van deze agent.",
|
|
1362
|
+
"assistant-handoff-subject-unavailable": "Het onderwerp bestaat niet of hoort bij een andere organisatie.",
|
|
1363
|
+
"assistant-handoff-shadow-to-live": "Een agent in schaduwmodus kan geen werk overdragen aan een agent die echt werkt.",
|
|
1364
|
+
"assistant-handoff-chain-limit": "De keten van overdrachten is zo lang als toegestaan of zou terugkeren naar een agent erin.",
|
|
1365
|
+
"assistant-handoff-limit-reached": "Deze agent heeft dit onderwerp vandaag zo vaak als toegestaan aan die agent overgedragen.",
|
|
1366
|
+
"assistant-replay-not-shadow": "Alleen een agent in schaduwmodus kan een herhaling ontvangen, van een andere agent.",
|
|
1367
|
+
"assistant-replay-active": "Er loopt nog een herhaling naar deze variant.",
|
|
1368
|
+
"assistant-evaluation-not-variant": "Die agent is geen schaduwvariant om mee te vergelijken.",
|
|
1210
1369
|
"assistant-agent-not-configured": "Deze agent kan niet zelfstandig werken.",
|
|
1211
1370
|
"assistant-run-not-found": "De run is niet gevonden.",
|
|
1212
1371
|
"assistant-run-not-retryable": "Deze run kan niet opnieuw worden gestart.",
|
|
@@ -1334,7 +1493,7 @@ var nl = {
|
|
|
1334
1493
|
},
|
|
1335
1494
|
agents: {
|
|
1336
1495
|
title: "Agents",
|
|
1337
|
-
description: "Code-agents komen uit de applicatie; je kunt ze overschrijven
|
|
1496
|
+
description: "Code-agents komen uit de applicatie; je kunt ze overschrijven of terugzetten. Agents die je hier aanmaakt, kun je verwijderen. Elke agent kun je pauzeren, stoppen en hervatten; de definitie blijft dan zoals hij is.",
|
|
1338
1497
|
"new": "Nieuwe agent",
|
|
1339
1498
|
empty: "Nog geen agents.",
|
|
1340
1499
|
"source-code": "Code",
|
|
@@ -1342,6 +1501,7 @@ var nl = {
|
|
|
1342
1501
|
overridden: "Overschreven",
|
|
1343
1502
|
reset: "Terugzetten naar code",
|
|
1344
1503
|
"confirm-reset": "Terugzetten bevestigen",
|
|
1504
|
+
"reset-keeps-state": "Terugzetten herstelt de definitie uit de code; de agent blijft actief, gepauzeerd of gestopt zoals hij is.",
|
|
1345
1505
|
version: "Versie {{version}}",
|
|
1346
1506
|
"tool-count": "{{count}} toolselectors",
|
|
1347
1507
|
"server-count": "{{count}} MCP-servers",
|
|
@@ -1352,7 +1512,44 @@ var nl = {
|
|
|
1352
1512
|
simulate: "Simuleren",
|
|
1353
1513
|
execute: "Uitvoeren"
|
|
1354
1514
|
},
|
|
1355
|
-
feedback: "Feedback"
|
|
1515
|
+
feedback: "Feedback",
|
|
1516
|
+
evaluation: "Evaluatie",
|
|
1517
|
+
state: {
|
|
1518
|
+
active: "Actief",
|
|
1519
|
+
paused: "Gepauzeerd",
|
|
1520
|
+
stopped: "Gestopt",
|
|
1521
|
+
"configured-off": "Uit in configuratie",
|
|
1522
|
+
"configured-off-hint": "Uitgeschakeld in de code van de applicatie tot de volgende deployment; hier kun je de agent niet hervatten.",
|
|
1523
|
+
changed: "Gewijzigd door {{user}} op {{date}}.",
|
|
1524
|
+
reason: "Reden: {{reason}}",
|
|
1525
|
+
waiting: "{{count}} gebeurtenissen wachten op het hervatten.",
|
|
1526
|
+
"reason-label": "Reden (optioneel)",
|
|
1527
|
+
action: {
|
|
1528
|
+
active: "Hervatten",
|
|
1529
|
+
paused: "Pauzeren",
|
|
1530
|
+
stopped: "Stoppen"
|
|
1531
|
+
},
|
|
1532
|
+
explain: {
|
|
1533
|
+
active: "De agent werkt weer. Elk onderwerp met wachtende gebeurtenissen krijgt één run.",
|
|
1534
|
+
paused: "Er starten geen nieuwe runs. Gebeurtenissen wachten en lopen na het hervatten; lopend werk wordt afgemaakt en goedgekeurde voorstellen worden uitgevoerd.",
|
|
1535
|
+
stopped: "Actieve runs worden geannuleerd, hun open voorstellen ingetrokken en wachtende gebeurtenissen vervallen. Goedgekeurde voorstellen wachten tot de agent weer werkt."
|
|
1536
|
+
},
|
|
1537
|
+
confirm: {
|
|
1538
|
+
active: "Hervatten bevestigen",
|
|
1539
|
+
paused: "Pauze bevestigen",
|
|
1540
|
+
stopped: "Stop bevestigen"
|
|
1541
|
+
}
|
|
1542
|
+
},
|
|
1543
|
+
skills: {
|
|
1544
|
+
title: "Vaardigheden",
|
|
1545
|
+
usage: "Vandaag {{calls}} toolaanroepen, {{tokens}} tokens",
|
|
1546
|
+
budget: "Budget per dag: {{calls}} toolaanroepen, {{tokens}} tokens",
|
|
1547
|
+
explain: {
|
|
1548
|
+
active: "De vaardigheid {{skill}} werkt weer. Elk onderwerp met gebeurtenissen die erop wachten krijgt één run.",
|
|
1549
|
+
paused: "De vaardigheid {{skill}} start geen nieuwe runs: haar gebeurtenissen wachten, triage kiest haar niet meer en lopend werk wordt afgemaakt. De andere vaardigheden werken door.",
|
|
1550
|
+
stopped: "De runs van de vaardigheid {{skill}} worden geannuleerd en haar wachtende gebeurtenissen vervallen; haar triggers worden geweigerd. De andere vaardigheden werken door."
|
|
1551
|
+
}
|
|
1552
|
+
}
|
|
1356
1553
|
},
|
|
1357
1554
|
"agent-editor": {
|
|
1358
1555
|
"new-title": "Nieuwe agent",
|
|
@@ -1367,7 +1564,7 @@ var nl = {
|
|
|
1367
1564
|
"autonomy-hint": "Alleen Uitvoeren staat wijzigingen toe, en elke wijziging vraagt nog steeds om goedkeuring.",
|
|
1368
1565
|
"required-policy": "Vereiste policy",
|
|
1369
1566
|
"required-policy-hint": "Optioneel. Alleen gebruikers die aan deze policy voldoen zien de agent.",
|
|
1370
|
-
|
|
1567
|
+
"state-hint": "Pauzeer, stop en hervat de agent vanuit de lijst met agents. Opslaan verandert de stand nooit.",
|
|
1371
1568
|
"tool-selectors": "Toolselectors",
|
|
1372
1569
|
"tool-selectors-hint": "Kies tools uit de catalogus of voeg een patroon toe, zoals sample-api.project.*. MCP-tools komen van de toegewezen servers.",
|
|
1373
1570
|
"add-selector": "Patroon toevoegen",
|
|
@@ -1519,6 +1716,77 @@ var nl = {
|
|
|
1519
1716
|
next: "Volgende",
|
|
1520
1717
|
page: "Pagina {{page}} van {{pages}}",
|
|
1521
1718
|
pages: "Pagina's"
|
|
1719
|
+
},
|
|
1720
|
+
evaluation: {
|
|
1721
|
+
back: "Terug naar de agents",
|
|
1722
|
+
title: "Evaluatie van schaduwvarianten",
|
|
1723
|
+
description: "Vergelijkt een schaduwvariant met de live agent: de runs die dezelfde gebeurtenissen behandelden, de voorstellen die beide of maar één deed, wat mensen over de live voorstellen besloten, en wat elk kostte.",
|
|
1724
|
+
"export-hint": "De export bevat id's, statussen, gebruik en identiteiten van voorstellen, geen berichten of argumenten. De export wordt geaudit.",
|
|
1725
|
+
refresh: "Vernieuwen",
|
|
1726
|
+
"export": "Exporteren als JSON Lines",
|
|
1727
|
+
exporting: "Exporteren…",
|
|
1728
|
+
variant: "Variant",
|
|
1729
|
+
period: "Periode",
|
|
1730
|
+
"runs-title": "Runs",
|
|
1731
|
+
runs: {
|
|
1732
|
+
live: "Live agent",
|
|
1733
|
+
variant: "Variant",
|
|
1734
|
+
paired: "Zelfde gebeurtenis",
|
|
1735
|
+
replayed: "Herhaald",
|
|
1736
|
+
"live-unpaired": "Alleen live",
|
|
1737
|
+
"variant-unpaired": "Alleen variant"
|
|
1738
|
+
},
|
|
1739
|
+
"small-numbers": "Kleine aantallen misleiden: lees de aantallen naast elk percentage.",
|
|
1740
|
+
"replayed-hint": "Herhaalde runs zagen de huidige stand van elk onderwerp; een onderwerp dat sindsdien veranderde, kan een verschil verklaren.",
|
|
1741
|
+
truncated: "De periode bevat meer runs dan één evaluatie leest; ze dekt de oudste.",
|
|
1742
|
+
"tools-title": "Voorstellen per tool",
|
|
1743
|
+
"tools-empty": "De gekoppelde runs deden geen voorstellen.",
|
|
1744
|
+
columns: {
|
|
1745
|
+
tool: "Tool",
|
|
1746
|
+
agreed: "Gelijk",
|
|
1747
|
+
"live-only": "Alleen live",
|
|
1748
|
+
"variant-only": "Alleen variant",
|
|
1749
|
+
"rejected-not-proposed": "Live afgewezen, niet voorgesteld",
|
|
1750
|
+
"rejected-also-proposed": "Live afgewezen, ook voorgesteld",
|
|
1751
|
+
"approved-missed": "Live goedgekeurd, gemist",
|
|
1752
|
+
"live-decisions": "Besluiten over live voorstellen",
|
|
1753
|
+
measure: "Maat",
|
|
1754
|
+
live: "Live agent",
|
|
1755
|
+
variant: "Variant",
|
|
1756
|
+
"live-skill": "Vaardigheid live",
|
|
1757
|
+
"variant-skill": "Vaardigheid variant",
|
|
1758
|
+
runs: "Runs"
|
|
1759
|
+
},
|
|
1760
|
+
decisions: "{{pending}} open, {{approved}} goedgekeurd, {{executed}} uitgevoerd, {{rejected}} afgewezen, {{stale}} verouderd",
|
|
1761
|
+
"cost-title": "Kosten",
|
|
1762
|
+
cost: {
|
|
1763
|
+
runs: "Runs",
|
|
1764
|
+
"model-calls": "Modelaanroepen per run",
|
|
1765
|
+
tokens: "Tokens per run",
|
|
1766
|
+
"tool-calls": "Toolaanroepen per run",
|
|
1767
|
+
"average-p95": "gemiddeld {{average}}, p95 {{p95}} ({{total}} in totaal)"
|
|
1768
|
+
},
|
|
1769
|
+
"routing-title": "Routering",
|
|
1770
|
+
"no-skill": "Eigen tools",
|
|
1771
|
+
"differences-title": "Verschillen",
|
|
1772
|
+
kind: {
|
|
1773
|
+
"live-only": "Alleen live",
|
|
1774
|
+
"variant-only": "Alleen variant"
|
|
1775
|
+
},
|
|
1776
|
+
"live-status": "Live: {{status}}",
|
|
1777
|
+
replayed: "Herhaald",
|
|
1778
|
+
"open-live": "Open de live thread",
|
|
1779
|
+
"open-variant": "Open de thread van de variant",
|
|
1780
|
+
"replay-title": "Herhaling",
|
|
1781
|
+
"replay-hint": "Stuurt de vastgelegde runs van de live agent in de periode naar de variant, oudste eerst, tegen de huidige stand van elk onderwerp; hoogstens {{max}} runs. Het budget en de limieten van de variant gelden.",
|
|
1782
|
+
"replay-runs": "Te herhalen runs",
|
|
1783
|
+
replay: "Periode herhalen",
|
|
1784
|
+
"replay-status": {
|
|
1785
|
+
running: "Bezig",
|
|
1786
|
+
completed: "Voltooid",
|
|
1787
|
+
stopped: "Gestopt"
|
|
1788
|
+
},
|
|
1789
|
+
"replay-progress": "{{replayed}} van hoogstens {{max}} runs herhaald, {{skipped}} overgeslagen"
|
|
1522
1790
|
}
|
|
1523
1791
|
},
|
|
1524
1792
|
"page-context": {
|
|
@@ -1683,6 +1951,16 @@ var nl = {
|
|
|
1683
1951
|
"rule-then-model": "Regel, daarna het model"
|
|
1684
1952
|
},
|
|
1685
1953
|
trigger: "Aanleiding: {{trigger}}",
|
|
1954
|
+
skill: "Vaardigheid: {{skill}}",
|
|
1955
|
+
"handed-off-by": "Overgedragen door {{agent}}",
|
|
1956
|
+
"open-source-thread": "Open de thread",
|
|
1957
|
+
"skill-chosen-by": {
|
|
1958
|
+
trigger: "door de trigger",
|
|
1959
|
+
rules: "door de regels",
|
|
1960
|
+
triage: "door triage",
|
|
1961
|
+
model: "door het model",
|
|
1962
|
+
"follow-up": "als vervolg op een besluit"
|
|
1963
|
+
},
|
|
1686
1964
|
"tool-calls": "{{count}} tool-aanroepen",
|
|
1687
1965
|
tokens: "{{count}} tokens",
|
|
1688
1966
|
proposals: "{{count}} voorstellen",
|
|
@@ -1737,6 +2015,18 @@ function mergeTrees(base, override) {
|
|
|
1737
2015
|
}
|
|
1738
2016
|
return result;
|
|
1739
2017
|
}
|
|
2018
|
+
/**
|
|
2019
|
+
* The bundle of a language: its own, else that of its base language, so a regional tag such as
|
|
2020
|
+
* `nl-NL`, `nl_BE` or `en-GB` gets the `nl` or `en` texts, else English.
|
|
2021
|
+
*/
|
|
2022
|
+
function bundleOf(language) {
|
|
2023
|
+
for (const candidate of [language, language.split(/[-_]/)[0]].map(tag => tag.toLowerCase())) {
|
|
2024
|
+
if (Object.hasOwn(NH_ASSISTANT_TRANSLATIONS, candidate)) {
|
|
2025
|
+
return NH_ASSISTANT_TRANSLATIONS[candidate];
|
|
2026
|
+
}
|
|
2027
|
+
}
|
|
2028
|
+
return NH_ASSISTANT_TRANSLATIONS.en;
|
|
2029
|
+
}
|
|
1740
2030
|
function hasAllKeys(bundle, candidate) {
|
|
1741
2031
|
if (!isTree(candidate)) {
|
|
1742
2032
|
return false;
|
|
@@ -1747,7 +2037,8 @@ function hasAllKeys(bundle, candidate) {
|
|
|
1747
2037
|
* Merges the bundled texts into `TranslateService` whenever the host loads or replaces a
|
|
1748
2038
|
* language. Host loaders never lose the library texts, the library never pre-empts the
|
|
1749
2039
|
* host loader, and keys the host defines under `nh-assistant.` (agent names, overrides)
|
|
1750
|
-
* win over the bundle.
|
|
2040
|
+
* win over the bundle. A regional language such as `nl-NL` receives the texts of its base
|
|
2041
|
+
* language; languages without a bundle receive the English texts.
|
|
1751
2042
|
*/
|
|
1752
2043
|
class NhAssistantTranslationMerger {
|
|
1753
2044
|
constructor() {
|
|
@@ -1775,8 +2066,7 @@ class NhAssistantTranslationMerger {
|
|
|
1775
2066
|
}
|
|
1776
2067
|
}
|
|
1777
2068
|
ensure(language, existing) {
|
|
1778
|
-
const
|
|
1779
|
-
const bundleRoot = bundle[rootKey];
|
|
2069
|
+
const bundleRoot = bundleOf(language)[rootKey];
|
|
1780
2070
|
if (hasAllKeys(bundleRoot, existing)) {
|
|
1781
2071
|
return;
|
|
1782
2072
|
}
|
|
@@ -1987,11 +2277,27 @@ class NhAssistantAdminApiService {
|
|
|
1987
2277
|
updateAgent(agentId, request) {
|
|
1988
2278
|
return this.request('PUT', `admin/agents/${encodeURIComponent(agentId)}`, request);
|
|
1989
2279
|
}
|
|
1990
|
-
/** Restores a code agent to its definition in code. */
|
|
2280
|
+
/** Restores a code agent to its definition in code. The run state stays as it is. */
|
|
1991
2281
|
resetAgent(agentId) {
|
|
1992
2282
|
return this.request('POST', `admin/agents/${encodeURIComponent(agentId)}/reset`);
|
|
1993
2283
|
}
|
|
1994
|
-
|
|
2284
|
+
getAgentState(agentId) {
|
|
2285
|
+
return this.request('GET', `admin/agents/${encodeURIComponent(agentId)}/state`);
|
|
2286
|
+
}
|
|
2287
|
+
/**
|
|
2288
|
+
* Pauses, stops or resumes an agent without changing its definition. A code-disabled agent
|
|
2289
|
+
* cannot be resumed (`assistant-agent-configured-off`).
|
|
2290
|
+
*/
|
|
2291
|
+
setAgentState(agentId, request) {
|
|
2292
|
+
return this.request('POST', `admin/agents/${encodeURIComponent(agentId)}/state`, request);
|
|
2293
|
+
}
|
|
2294
|
+
/**
|
|
2295
|
+
* Pauses, stops or resumes one skill of an agent; its other skills keep working.
|
|
2296
|
+
*/
|
|
2297
|
+
setSkillState(agentId, skillId, request) {
|
|
2298
|
+
return this.request('POST', `admin/agents/${encodeURIComponent(agentId)}/skills/${encodeURIComponent(skillId)}/state`, request);
|
|
2299
|
+
}
|
|
2300
|
+
/** Deletes an admin agent. Code agents cannot be deleted; stop them instead. */
|
|
1995
2301
|
deleteAgent(agentId) {
|
|
1996
2302
|
return this.request('DELETE', `admin/agents/${encodeURIComponent(agentId)}`);
|
|
1997
2303
|
}
|
|
@@ -2037,8 +2343,35 @@ class NhAssistantAdminApiService {
|
|
|
2037
2343
|
* Downloads the feedback as JSON Lines with the tool input of each proposal. The file holds
|
|
2038
2344
|
* subject data and the server audits the export. Rejects with `NhAssistantApiError`.
|
|
2039
2345
|
*/
|
|
2040
|
-
|
|
2041
|
-
|
|
2346
|
+
exportAgentFeedback(agentId, filter = {}) {
|
|
2347
|
+
return this.download(withQuery(`${feedbackPath(agentId)}/export`, filter));
|
|
2348
|
+
}
|
|
2349
|
+
/**
|
|
2350
|
+
* Compares a shadow variant with its live agent over a period: the runs that handled the same
|
|
2351
|
+
* events, the proposals per tool with what people decided about the live ones, cost and routing.
|
|
2352
|
+
*/
|
|
2353
|
+
getAgentEvaluation(agentId, filter) {
|
|
2354
|
+
return this.request('GET', withQuery(`${agentPath(agentId)}/evaluation`, filter));
|
|
2355
|
+
}
|
|
2356
|
+
/**
|
|
2357
|
+
* Downloads the paired runs of the comparison as JSON Lines: identifiers, statuses, usage and
|
|
2358
|
+
* proposal identities, no content. The server audits the export. Rejects with `NhAssistantApiError`.
|
|
2359
|
+
*/
|
|
2360
|
+
exportAgentEvaluation(agentId, filter) {
|
|
2361
|
+
return this.download(withQuery(`${agentPath(agentId)}/evaluation/export`, filter));
|
|
2362
|
+
}
|
|
2363
|
+
/**
|
|
2364
|
+
* Replays the recorded runs of another agent in a period into a shadow variant, against today's
|
|
2365
|
+
* state of each subject. One replay runs per variant (`assistant-replay-active`).
|
|
2366
|
+
*/
|
|
2367
|
+
startAgentReplay(variantId, request) {
|
|
2368
|
+
return this.request('POST', `${agentPath(variantId)}/replay`, request);
|
|
2369
|
+
}
|
|
2370
|
+
/** The latest replays into a shadow variant, newest first. */
|
|
2371
|
+
getAgentReplays(variantId) {
|
|
2372
|
+
return this.request('GET', `${agentPath(variantId)}/replays`);
|
|
2373
|
+
}
|
|
2374
|
+
async download(path) {
|
|
2042
2375
|
let response;
|
|
2043
2376
|
try {
|
|
2044
2377
|
response = await this.transport.fetch('GET', path, 'application/x-ndjson', undefined, new AbortController().signal);
|
|
@@ -2063,7 +2396,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.33", ngImpo
|
|
|
2063
2396
|
type: Injectable
|
|
2064
2397
|
}] });
|
|
2065
2398
|
function feedbackPath(agentId) {
|
|
2066
|
-
return
|
|
2399
|
+
return `${agentPath(agentId)}/feedback`;
|
|
2400
|
+
}
|
|
2401
|
+
function agentPath(agentId) {
|
|
2402
|
+
return `admin/agents/${encodeURIComponent(agentId)}`;
|
|
2067
2403
|
}
|
|
2068
2404
|
/** Appends the filter values that are set as query parameters. */
|
|
2069
2405
|
function withQuery(path, filter) {
|