@newheap/platform-ai-chat 0.18.0 → 0.19.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 +309 -11
- package/agent-runs/index.d.ts +5 -0
- package/fesm2022/newheap-platform-ai-chat-admin.mjs +5661 -3489
- package/fesm2022/newheap-platform-ai-chat-admin.mjs.map +1 -1
- package/fesm2022/newheap-platform-ai-chat-agent-runs.mjs +9 -2
- package/fesm2022/newheap-platform-ai-chat-agent-runs.mjs.map +1 -1
- package/fesm2022/newheap-platform-ai-chat-testing.mjs +2608 -114
- package/fesm2022/newheap-platform-ai-chat-testing.mjs.map +1 -1
- package/fesm2022/newheap-platform-ai-chat.mjs +1159 -27
- package/fesm2022/newheap-platform-ai-chat.mjs.map +1 -1
- package/i18n/en.json +412 -9
- package/i18n/nl.json +412 -9
- package/index.d.ts +898 -13
- package/package.json +1 -1
- package/push/nh-assistant-push-worker.js +13 -6
- package/testing/index.d.ts +157 -4
|
@@ -94,6 +94,38 @@ const NH_ASSISTANT_MAX_FEEDBACK_TEXT = 1_000;
|
|
|
94
94
|
/** Maximum number of proposals one `POST approvals/feedback` request accepts. */
|
|
95
95
|
const NH_ASSISTANT_MAX_BULK_FEEDBACK = 50;
|
|
96
96
|
|
|
97
|
+
/** The `format` of every agent package. */
|
|
98
|
+
const NH_ASSISTANT_AGENT_PACKAGE_FORMAT = 'newheap.assistant.agent-package';
|
|
99
|
+
/** The format version this library reads and writes; a newer one is refused. */
|
|
100
|
+
const NH_ASSISTANT_AGENT_PACKAGE_FORMAT_VERSION = 1;
|
|
101
|
+
/** The largest package in bytes of its UTF-8 JSON: 1 MB (`assistant-package-too-large` above). */
|
|
102
|
+
const NH_ASSISTANT_AGENT_PACKAGE_MAX_BYTES = 1_048_576;
|
|
103
|
+
/** The most agents of one package. */
|
|
104
|
+
const NH_ASSISTANT_AGENT_PACKAGE_MAX_AGENTS = 20;
|
|
105
|
+
/** The lock of a whole part, instead of a list of its fields. */
|
|
106
|
+
const NH_ASSISTANT_PACKAGE_LOCK_ALL = '*';
|
|
107
|
+
/**
|
|
108
|
+
* The fields a package may lock per part kind (`NhAssistantPackageLockFields`). A save that changes a
|
|
109
|
+
* locked field is refused with the field error `{field}: locked`, named as here; `worksOn`,
|
|
110
|
+
* `dailyBudget`, `files` and `limits` each stand for the fields the forms show together. An agent in
|
|
111
|
+
* code carries only the first six fields of `agent`.
|
|
112
|
+
*/
|
|
113
|
+
const NH_ASSISTANT_PACKAGE_LOCK_FIELDS = {
|
|
114
|
+
agent: ['displayName', 'description', 'instructions', 'toolSelectors', 'requiredPolicy', 'autonomy', 'offeredInChat', 'worksOn', 'profile', 'dataClassification'],
|
|
115
|
+
runSettings: [
|
|
116
|
+
'accountability', 'delegateFromInitiator', 'allowGatewayReads', 'elevatedReads', 'approvalPolicy', 'retryCount', 'dailyBudget',
|
|
117
|
+
'maxConcurrentRuns', 'maxRunsPerSubjectPerDay', 'maxTokensPerRun', 'triageProfile', 'ruleHandler', 'files'
|
|
118
|
+
],
|
|
119
|
+
skill: ['description', 'instructions', 'tools', 'profile', 'ruleHandler', 'maxTokensPerRun', 'dailyBudget', 'approvalPolicy', 'dataClassification', 'files'],
|
|
120
|
+
trigger: ['skill', 'source', 'event', 'filters', 'cron', 'timeZone', 'subjectSet', 'message', 'conflict', 'debounceSeconds'],
|
|
121
|
+
consultation: [
|
|
122
|
+
'description', 'instructions', 'minimumRole', 'askerPolicy', 'routes', 'proposalRole', 'proposalPolicy', 'toolSelectors', 'limits',
|
|
123
|
+
'allowRequests', 'exposeToMcp', 'dataClassification'
|
|
124
|
+
],
|
|
125
|
+
handOff: ['sources', 'description', 'notifySource', 'maxPerSubjectPerDay'],
|
|
126
|
+
metadata: ['value']
|
|
127
|
+
};
|
|
128
|
+
|
|
97
129
|
const NH_ASSISTANT_CONFIG = new InjectionToken('NH_ASSISTANT_CONFIG');
|
|
98
130
|
const NH_ASSISTANT_ACCESS_POLICY = new InjectionToken('NH_ASSISTANT_ACCESS_POLICY');
|
|
99
131
|
/**
|
|
@@ -348,6 +380,7 @@ var en = {
|
|
|
348
380
|
withdrawn: "Withdrawn",
|
|
349
381
|
stale: "Outdated",
|
|
350
382
|
executing: "Running",
|
|
383
|
+
"awaiting-application": "With the application",
|
|
351
384
|
executed: "Done",
|
|
352
385
|
"execution-failed": "Failed",
|
|
353
386
|
"execution-unknown": "Outcome unknown",
|
|
@@ -587,6 +620,7 @@ var en = {
|
|
|
587
620
|
"assistant-consult-timeout": "The agent did not answer in time.",
|
|
588
621
|
"assistant-consult-failed": "The agent could not answer.",
|
|
589
622
|
"assistant-consult-read-only": "A consultation cannot change anything.",
|
|
623
|
+
"assistant-consult-tool-not-selected": "This consultation does not offer that tool, so nothing ran.",
|
|
590
624
|
"assistant-consult-proposal-refused": "No route at the subject takes this proposal any more. Approve or reject it here.",
|
|
591
625
|
"assistant-consult-asker-decides": "The person who asked decides this proposal in their own chat.",
|
|
592
626
|
"assistant-consult-route-not-allowed": "None of the agent's consultations allows this route, so it cannot be switched on.",
|
|
@@ -601,8 +635,9 @@ var en = {
|
|
|
601
635
|
"assistant-skill-in-use": "A trigger still starts this skill. Change or remove the trigger first.",
|
|
602
636
|
"assistant-configuration-limit": "This agent already has as many skills, triggers or consultations as allowed.",
|
|
603
637
|
"assistant-run-settings-in-code": "This agent is part of the code; its runs are configured there.",
|
|
604
|
-
"assistant-run-settings-in-use": "Skills, triggers or
|
|
638
|
+
"assistant-run-settings-in-use": "Skills, triggers, consultations or hand-offs still belong to this agent. Remove them first.",
|
|
605
639
|
"assistant-skill-candidate-not-found": "This skill has no version being evaluated in shadow.",
|
|
640
|
+
"assistant-trigger-candidate-not-found": "This trigger has no version being evaluated in shadow.",
|
|
606
641
|
"assistant-skill-version-gone": "The skill version this run was for is no longer evaluated.",
|
|
607
642
|
"assistant-account-search-unavailable": "The application offers no account search; enter the account's id.",
|
|
608
643
|
"assistant-mcp-connection-required": "This server needs a connection first. Connect it and try again.",
|
|
@@ -632,7 +667,21 @@ var en = {
|
|
|
632
667
|
"assistant-file-scan-refused": "The file did not pass the scan for harmful content and was not stored.",
|
|
633
668
|
"assistant-consultation-in-code": "The agent allows consultation about this kind of object in code; it cannot change here.",
|
|
634
669
|
"assistant-consultation-not-found": "The consultation was not found.",
|
|
635
|
-
"assistant-consultations-not-allowed": "The application does not let administrators add consultations to this agent."
|
|
670
|
+
"assistant-consultations-not-allowed": "The application does not let administrators add consultations to this agent.",
|
|
671
|
+
"assistant-handoffs-not-allowed": "The application does not let administrators connect agents to this one.",
|
|
672
|
+
"assistant-handoff-in-code": "The agent accepts hand-offs about this kind of object in code; it cannot change here.",
|
|
673
|
+
"assistant-handoff-not-found": "The hand-off was not found.",
|
|
674
|
+
"assistant-shadow-variants-not-allowed": "The application does not let administrators create shadow variants of this agent.",
|
|
675
|
+
"assistant-metadata-entry-not-found": "The application does not register this field of agents.",
|
|
676
|
+
"assistant-metadata-read-only": "The application sets this field of the agent in its code; it cannot change here.",
|
|
677
|
+
"assistant-instructions-asset-not-found": "The application has no such text asset in this version.",
|
|
678
|
+
"assistant-instructions-asset-unavailable": "The application's text assets cannot be read right now. Nothing was saved; try again shortly.",
|
|
679
|
+
"assistant-agent-instructions-unavailable": "This agent cannot work right now: the application's text with its instructions is not available. An administrator checks the agent.",
|
|
680
|
+
"assistant-package-format-unsupported": "This is no agent package this version can read: its format, format version or a property is unknown.",
|
|
681
|
+
"assistant-package-locked": "An agent package locks this. Unlink it from the package first.",
|
|
682
|
+
"assistant-package-too-large": "An agent package is at most 1 MB and holds at most 20 agents.",
|
|
683
|
+
"assistant-package-refused": "The check refused parts of the package, so nothing was imported. Check the package again to see which.",
|
|
684
|
+
"assistant-package-not-linked": "This agent, or this part of it, is not linked to an agent package."
|
|
636
685
|
},
|
|
637
686
|
notices: {
|
|
638
687
|
"no-answer": "The assistant finished without an answer. Try again or rephrase your question.",
|
|
@@ -1016,7 +1065,26 @@ var en = {
|
|
|
1016
1065
|
"in-code": "In this group in code",
|
|
1017
1066
|
"shadow-variant": "A shadow variant works for administrators only and joins no group."
|
|
1018
1067
|
},
|
|
1019
|
-
|
|
1068
|
+
metadata: {
|
|
1069
|
+
title: "Application fields",
|
|
1070
|
+
hint: "The application keeps its own data about agents here. Each field has an editor of the application, which saves it on its own.",
|
|
1071
|
+
"save-first": "Save the agent first; then its fields appear here.",
|
|
1072
|
+
loading: "Loading the fields",
|
|
1073
|
+
"load-failed": "The fields of this agent could not be loaded.",
|
|
1074
|
+
"no-editor": "The application shows no editor for this field.",
|
|
1075
|
+
"read-only": "Set in the application's code; it cannot change here.",
|
|
1076
|
+
saved: "Saved.",
|
|
1077
|
+
removed: "Removed.",
|
|
1078
|
+
source: {
|
|
1079
|
+
code: "From code",
|
|
1080
|
+
override: "Changed here, over the value in code",
|
|
1081
|
+
data: "Stored with the agent",
|
|
1082
|
+
none: "No value"
|
|
1083
|
+
}
|
|
1084
|
+
},
|
|
1085
|
+
"catalog-unavailable": "The building blocks of agent runs could not be read, so what this agent works on and its groups cannot be changed now. Saving keeps them as they are.",
|
|
1086
|
+
"starts-in-shadow": "Start in shadow",
|
|
1087
|
+
"starts-in-shadow-hint": "Once it has run settings, its runs work in its shadow threads, where nobody is notified and nothing executes, until you put it live in the agent list."
|
|
1020
1088
|
},
|
|
1021
1089
|
effect: {
|
|
1022
1090
|
"read-only": "Read only",
|
|
@@ -1375,7 +1443,9 @@ var en = {
|
|
|
1375
1443
|
skill: "Skill {{id}}:",
|
|
1376
1444
|
candidate: "Candidate of skill {{id}}:",
|
|
1377
1445
|
trigger: "Trigger {{id}}:",
|
|
1378
|
-
consultation: "Consultation about {{id}}:"
|
|
1446
|
+
consultation: "Consultation about {{id}}:",
|
|
1447
|
+
"hand-off": "Hand-off about {{id}}:",
|
|
1448
|
+
"trigger-candidate": "Candidate of trigger {{id}}:"
|
|
1379
1449
|
},
|
|
1380
1450
|
code: {
|
|
1381
1451
|
"unknown-agent": "the agent can no longer run on its own.",
|
|
@@ -1402,7 +1472,18 @@ var en = {
|
|
|
1402
1472
|
"no-approver": "the route with the agent's account is left out, because the approval policy lets only the person who caused a proposal decide it.",
|
|
1403
1473
|
"limit-above-ceiling": "a limit is above what the application allows, so the application's applies.",
|
|
1404
1474
|
"requests-not-allowed": "the application no longer allows requests, so it takes none.",
|
|
1405
|
-
"mcp-not-allowed": "the application no longer offers consultations to MCP clients, so they do not see it."
|
|
1475
|
+
"mcp-not-allowed": "the application no longer offers consultations to MCP clients, so they do not see it.",
|
|
1476
|
+
"tools-not-allowed": "a chosen tool is no longer among the agent's own tools, so it is left out; with none left the agent gets no tools in it.",
|
|
1477
|
+
"no-asset-source": "its instructions come from the application's text assets, which the application no longer offers.",
|
|
1478
|
+
"asset-missing": "the application no longer has the text asset with its instructions in this version.",
|
|
1479
|
+
"asset-changed": "the text of the asset with its instructions changed since it was saved, so it is not used. Read the asset again and save it as the next version.",
|
|
1480
|
+
"asset-invalid": "the application's text asset cannot be used as instructions.",
|
|
1481
|
+
"asset-unavailable": "the application's text assets could not be read; they are read again shortly.",
|
|
1482
|
+
"outside-ceiling": "the application no longer allows it.",
|
|
1483
|
+
"unknown-source": "an agent that may hand off can no longer run on its own.",
|
|
1484
|
+
"unknown-live-agent": "the agent this shadow variant follows can no longer run on its own.",
|
|
1485
|
+
"live-agent-not-live": "the agent this shadow variant follows is no live agent.",
|
|
1486
|
+
"too-many-variants": "the agent it follows has more shadow variants than the application allows."
|
|
1406
1487
|
}
|
|
1407
1488
|
},
|
|
1408
1489
|
"field-errors": {
|
|
@@ -1421,7 +1502,9 @@ var en = {
|
|
|
1421
1502
|
"megabytes-up-to": "Enter a size above 0 and at most {{max}} MB.",
|
|
1422
1503
|
"megabytes-positive": "Enter a size above 0 MB.",
|
|
1423
1504
|
"not-allowed": "The application does not allow this.",
|
|
1424
|
-
"routes-required": "Choose at least one route, or let it only answer."
|
|
1505
|
+
"routes-required": "Choose at least one route, or let it only answer.",
|
|
1506
|
+
"tools-not-allowed": "A chosen tool is outside the agent's own tools. Clear it, or add the tool to the agent first.",
|
|
1507
|
+
locked: "An agent package locks this field. Unlink the part first to change it."
|
|
1425
1508
|
},
|
|
1426
1509
|
settings: {
|
|
1427
1510
|
title: "Run settings",
|
|
@@ -1664,6 +1747,24 @@ var en = {
|
|
|
1664
1747
|
"set-hint": "One run each time for every object in a set, such as the active projects.",
|
|
1665
1748
|
"every-division": "Every division",
|
|
1666
1749
|
dropped: "This schedule ran for the whole application, which the agent no longer works on. Choose a set of objects."
|
|
1750
|
+
},
|
|
1751
|
+
"saved-candidate": "The new version fires in shadow next to the live version, which keeps working.",
|
|
1752
|
+
apply: "How the change takes effect",
|
|
1753
|
+
"apply-live": "Apply at once",
|
|
1754
|
+
"apply-live-hint": "The new version replaces the live one at once, in the mode the trigger has.",
|
|
1755
|
+
"apply-shadow": "Evaluate in shadow next to the live version first",
|
|
1756
|
+
"apply-shadow-hint": "The new version fires next to the live one into the agent's shadow threads, where nothing executes; compare them, then promote or discard it.",
|
|
1757
|
+
versions: "Versions",
|
|
1758
|
+
candidate: {
|
|
1759
|
+
explain: "Version {{version}} fires in shadow next to the live version: its runs work in the agent's shadow threads, and the live version keeps working.",
|
|
1760
|
+
"out-of-effect": "The candidate does not fire: it no longer fits the code ({{problem}}). The live version keeps working.",
|
|
1761
|
+
changes: "What the candidate changes",
|
|
1762
|
+
"no-changes": "The candidate has the same definition as the live version.",
|
|
1763
|
+
change: "{{candidate}} (live: {{live}})",
|
|
1764
|
+
comparison: "Live version and candidate of trigger {{trigger}}",
|
|
1765
|
+
paired: "Since {{date}} both started a run on {{count}} of the same events, only the live version on {{liveOnly}} and only the candidate on {{candidateOnly}}.",
|
|
1766
|
+
promoted: "The candidate is the live version of the trigger now.",
|
|
1767
|
+
none: "none"
|
|
1667
1768
|
}
|
|
1668
1769
|
},
|
|
1669
1770
|
"way-of-working": "Way of working",
|
|
@@ -1914,6 +2015,9 @@ var en = {
|
|
|
1914
2015
|
"no-askers": "No agent asks it yet. Select its tool in the tools of an agent that should ask it.",
|
|
1915
2016
|
"code-hint": "Allowed in code; here only the route switches below change it.",
|
|
1916
2017
|
"limits-value": "At most {{calls}} tool calls, {{seconds}} seconds, {{chars}} characters and {{history}} thread messages",
|
|
2018
|
+
"tools-label": "Tools:",
|
|
2019
|
+
"tools-all": "every tool of the agent",
|
|
2020
|
+
"tools-none": "none, because no chosen tool is among the agent's own tools any more",
|
|
1917
2021
|
"edit-named": "Edit the consultation about {{type}}",
|
|
1918
2022
|
"remove-named": "Delete the consultation about {{type}}",
|
|
1919
2023
|
"remove-explain": "Its tools disappear; proposals it made can still be decided.",
|
|
@@ -1995,7 +2099,7 @@ var en = {
|
|
|
1995
2099
|
"four-eyes": "This approval policy uses four eyes, so the person who asked cannot decide their own proposal in their chat; that route does not apply.",
|
|
1996
2100
|
"initiator-only": "This approval policy lets only the person who caused a proposal decide it, so the route with the agent's technical account is refused."
|
|
1997
2101
|
},
|
|
1998
|
-
advanced: "Advanced: limits, requests and classification",
|
|
2102
|
+
advanced: "Advanced: tools, limits, requests and classification",
|
|
1999
2103
|
limits: "Limits of one consultation",
|
|
2000
2104
|
"limits-hint": "Empty starts at the default within what the application allows.",
|
|
2001
2105
|
"limit-range": "From {{min}} to {{max}}.",
|
|
@@ -2006,8 +2110,115 @@ var en = {
|
|
|
2006
2110
|
"mcp-hint": "External MCP clients may consult it too, with the rights of their person.",
|
|
2007
2111
|
"mcp-closed": "The application does not offer consultations to MCP clients.",
|
|
2008
2112
|
"classification-hint": "How sensitive its answers are in the conversation that asked. Without one, the agent's classification applies.",
|
|
2009
|
-
|
|
2010
|
-
|
|
2113
|
+
tools: "Tools it may use",
|
|
2114
|
+
"tools-hint": "The agent's own tools; select some to narrow them for this consultation. None selected: every tool of the agent. Changes still need a route.",
|
|
2115
|
+
"tool-not-covered": "No longer among the agent's own tools.",
|
|
2116
|
+
"in-effect": "A consultation is in effect once saved; it answers once an agent that asks selects its tool.",
|
|
2117
|
+
"starts-off": "Start off",
|
|
2118
|
+
"starts-off-hint": "It is not offered until you switch it on in the list, for example after a review.",
|
|
2119
|
+
"starts-off-ceiling": "A new consultation starts off: the application wants every one reviewed before it is offered. Switch it on in the list."
|
|
2120
|
+
},
|
|
2121
|
+
"off-badge": "Off",
|
|
2122
|
+
"off-explain": "Off: asking agents get none of its tools until you switch it on.",
|
|
2123
|
+
"switch-on": "Switch on",
|
|
2124
|
+
"switch-off": "Switch off",
|
|
2125
|
+
"switch-on-named": "Switch on the consultation about {{type}}",
|
|
2126
|
+
"switch-off-named": "Switch off the consultation about {{type}}",
|
|
2127
|
+
"switched-on": "The consultation is on: agents that ask get its tools.",
|
|
2128
|
+
"switched-off": "The consultation is off: agents that ask get none of its tools."
|
|
2129
|
+
}
|
|
2130
|
+
},
|
|
2131
|
+
"hand-offs": {
|
|
2132
|
+
title: "Hand-offs",
|
|
2133
|
+
description: "In their runs, other agents may hand work on an object to this agent, which then works on it in a run of its own with its own approvals. The application decides in its code which agents may be connected; here you connect them within that.",
|
|
2134
|
+
loading: "Loading hand-offs…",
|
|
2135
|
+
"load-failed": "The hand-offs could not be loaded.",
|
|
2136
|
+
add: "Add hand-off",
|
|
2137
|
+
empty: "No agent can hand work to this agent yet.",
|
|
2138
|
+
closed: {
|
|
2139
|
+
application: "The application does not let administrators connect agents to this one; its hand-offs come from its code.",
|
|
2140
|
+
"needs-settings": "Give the agent run settings before you connect agents to it.",
|
|
2141
|
+
limit: "This agent accepts as many hand-offs as allowed ({{max}}).",
|
|
2142
|
+
"no-types": "Every kind of object the application lets you connect this agent about already has a hand-off."
|
|
2143
|
+
},
|
|
2144
|
+
notifies: "Tells the source how it ended",
|
|
2145
|
+
"no-description": "No description.",
|
|
2146
|
+
from: "From:",
|
|
2147
|
+
"limit-value": "At most {{max}} per source and object per day",
|
|
2148
|
+
"code-hint": "Accepted in code; it cannot change here.",
|
|
2149
|
+
changed: "Changed by {{user}} on {{date}}",
|
|
2150
|
+
"edit-named": "Edit the hand-off about {{type}}",
|
|
2151
|
+
"remove-named": "Delete the hand-off about {{type}}",
|
|
2152
|
+
"remove-explain": "Its tool disappears from the sources' next runs; runs it started finish.",
|
|
2153
|
+
added: "The hand-off was added. A source uses it once its tools select its tool.",
|
|
2154
|
+
saved: "The hand-off was saved.",
|
|
2155
|
+
removed: "The hand-off was removed.",
|
|
2156
|
+
problems: {
|
|
2157
|
+
invalid: "Out of effect: a stored value is not valid.",
|
|
2158
|
+
"outside-ceiling": "Out of effect: the application no longer lets these agents be connected about this kind of object.",
|
|
2159
|
+
"unknown-agent": "Out of effect: this agent can no longer run on its own.",
|
|
2160
|
+
"unknown-source": "Out of effect: an agent that may hand off can no longer run on its own.",
|
|
2161
|
+
"not-worked-on": "Out of effect: this agent does not work on this kind of object.",
|
|
2162
|
+
"conflicts-with-code": "Out of effect: the application now accepts hand-offs about this kind of object in code.",
|
|
2163
|
+
"limit-above-ceiling": "Out of effect: the daily limit is above what the application allows."
|
|
2164
|
+
},
|
|
2165
|
+
form: {
|
|
2166
|
+
"new-title": "New hand-off",
|
|
2167
|
+
"edit-title": "Hand-off about {{type}}, version {{version}}",
|
|
2168
|
+
"subject-type": "Kind of object",
|
|
2169
|
+
"subject-type-hint": "The kinds of object the application lets you connect this agent about.",
|
|
2170
|
+
sources: "Agents that may hand off",
|
|
2171
|
+
"no-sources": "The application allows no agent that can run on its own to hand off about this kind of object yet.",
|
|
2172
|
+
"source-not-allowed": "No longer allowed; clear it.",
|
|
2173
|
+
"sources-hint": "Only the agents the application allows; an agent created here counts once it has run settings.",
|
|
2174
|
+
"sources-admin": "The application also allows agents created in the administration.",
|
|
2175
|
+
description: "Description for the sources",
|
|
2176
|
+
"description-hint": "When a source should hand work off, in a sentence or two.",
|
|
2177
|
+
notify: "Give the source a follow-up when this agent's run ends",
|
|
2178
|
+
"notify-hint": "The source hears the outcome and the number of proposals, and the run's summary when both work on the same object.",
|
|
2179
|
+
limit: "Hand-offs per source and object per day",
|
|
2180
|
+
"limit-hint": "1 to {{max}}; 5 when left empty.",
|
|
2181
|
+
"in-effect": "It is in effect once saved. A source's model gets its tool when the source's tools select it."
|
|
2182
|
+
}
|
|
2183
|
+
},
|
|
2184
|
+
"shadow-variants": {
|
|
2185
|
+
title: "Shadow variants",
|
|
2186
|
+
description: "A shadow variant receives every event of this agent and works on it in shadow, in threads only administrators see: it notifies nobody and nothing it proposes is carried out. Compare it with this agent in the evaluation.",
|
|
2187
|
+
loading: "Loading shadow variants…",
|
|
2188
|
+
"load-failed": "The shadow variants could not be loaded.",
|
|
2189
|
+
add: "New shadow variant",
|
|
2190
|
+
empty: "This agent has no shadow variants.",
|
|
2191
|
+
closed: {
|
|
2192
|
+
"not-allowed": "The application does not let administrators create shadow variants of this agent.",
|
|
2193
|
+
limit: "This agent has as many shadow variants as allowed ({{max}})."
|
|
2194
|
+
},
|
|
2195
|
+
source: {
|
|
2196
|
+
code: "In code",
|
|
2197
|
+
data: "Created here"
|
|
2198
|
+
},
|
|
2199
|
+
"needs-settings": "Needs run settings",
|
|
2200
|
+
"in-effect": "Receives this agent's events",
|
|
2201
|
+
open: "Run configuration",
|
|
2202
|
+
"set-up": "Set up runs",
|
|
2203
|
+
"open-named": "Open the run configuration of {{name}}",
|
|
2204
|
+
problems: {
|
|
2205
|
+
invalid: "Out of effect: a stored value is not valid.",
|
|
2206
|
+
"outside-ceiling": "Out of effect: the application no longer lets administrators create shadow variants of this agent.",
|
|
2207
|
+
"unknown-live-agent": "Out of effect: the agent it follows can no longer run on its own.",
|
|
2208
|
+
"live-agent-not-live": "Out of effect: the agent it follows is no live agent.",
|
|
2209
|
+
"too-many-variants": "Out of effect: the agent it follows has more shadow variants than the application allows."
|
|
2210
|
+
},
|
|
2211
|
+
form: {
|
|
2212
|
+
title: "New shadow variant",
|
|
2213
|
+
copies: "It starts from this agent's tools, MCP servers and what it works on, and its own run settings come next. It is never offered in the chat and its shadow mode cannot change.",
|
|
2214
|
+
id: "Id",
|
|
2215
|
+
"id-hint": "Lowercase letters, digits and dashes; it cannot change later.",
|
|
2216
|
+
name: "Name",
|
|
2217
|
+
"default-name": "{{name}} (variant)",
|
|
2218
|
+
description: "Description",
|
|
2219
|
+
instructions: "Instructions",
|
|
2220
|
+
"instructions-hint": "They start as this agent's instructions; change what the variant should try.",
|
|
2221
|
+
create: "Create variant"
|
|
2011
2222
|
}
|
|
2012
2223
|
},
|
|
2013
2224
|
runs: {
|
|
@@ -2040,6 +2251,225 @@ var en = {
|
|
|
2040
2251
|
id: "Account ID {{id}}",
|
|
2041
2252
|
"copy-id": "Copy the account ID of {{name}}",
|
|
2042
2253
|
"id-copied": "Account ID copied"
|
|
2254
|
+
},
|
|
2255
|
+
"instruction-assets": {
|
|
2256
|
+
source: "Where do the instructions come from?",
|
|
2257
|
+
"source-inline": "Written here",
|
|
2258
|
+
"source-inline-hint": "Type the instructions in this form.",
|
|
2259
|
+
"source-asset": "The application's text",
|
|
2260
|
+
"source-asset-hint": "Instructions the application ships or keeps, in an exact version. A new version is used only when you save it.",
|
|
2261
|
+
"not-offered": "The application no longer offers its text assets; write the instructions here to keep this working.",
|
|
2262
|
+
loading: "Loading the application's texts…",
|
|
2263
|
+
asset: "Text",
|
|
2264
|
+
"asset-hint": "The application lists the texts you can choose, each in an exact version.",
|
|
2265
|
+
choose: "Choose a text",
|
|
2266
|
+
option: "{{asset}}, version {{version}}",
|
|
2267
|
+
deprecated: "Replaced by the application",
|
|
2268
|
+
"deprecated-by": "Replaced by {{asset}}",
|
|
2269
|
+
"none-listed": "The application lists no texts; enter the id and version it gave you.",
|
|
2270
|
+
"asset-id": "Text id",
|
|
2271
|
+
version: "Version",
|
|
2272
|
+
read: "Read the text",
|
|
2273
|
+
reading: "Reading the text…",
|
|
2274
|
+
reference: "Uses {{asset}}, version {{version}}.",
|
|
2275
|
+
hash: "Hash {{hash}}",
|
|
2276
|
+
newer: "Version {{version}} of this text is available. Choose it and save to use it; the version in use stays until then.",
|
|
2277
|
+
text: "Text of the instructions",
|
|
2278
|
+
"text-hint": "Read-only: the application owns this text. Saving stores which text and version, never a copy.",
|
|
2279
|
+
"agent-problem": "The agent does not work:",
|
|
2280
|
+
problems: {
|
|
2281
|
+
"no-asset-source": "The application no longer offers its texts; the instructions are not available.",
|
|
2282
|
+
"asset-missing": "The application no longer has this text in this version.",
|
|
2283
|
+
"asset-changed": "The text changed since it was saved, so it is not used. Read it again and save to use the new text.",
|
|
2284
|
+
"asset-invalid": "This text cannot be used as instructions.",
|
|
2285
|
+
"asset-unavailable": "The application's texts could not be read; they are read again shortly."
|
|
2286
|
+
},
|
|
2287
|
+
errors: {
|
|
2288
|
+
required: "Choose a text and read it first.",
|
|
2289
|
+
"not-found": "The application has no such text in this version.",
|
|
2290
|
+
changed: "The text changed since you read it. Read it again before you save.",
|
|
2291
|
+
invalid: "Enter a text id in lowercase letters, digits and dashes, and a version of 1 or higher. The application may also not allow this text as instructions.",
|
|
2292
|
+
"not-allowed": "The application does not offer its texts here."
|
|
2293
|
+
}
|
|
2294
|
+
},
|
|
2295
|
+
packages: {
|
|
2296
|
+
"export": "Export as package",
|
|
2297
|
+
"export-named": "Export {{name}} as a package",
|
|
2298
|
+
"import": "Import package",
|
|
2299
|
+
"linked-badge": "Package {{package}} {{version}}",
|
|
2300
|
+
"delete-locked": "The agent belongs to package {{package}}. Unlink the agent first to delete it.",
|
|
2301
|
+
"remove-locked": "Package {{package}} locks this part. Unlink it first to remove it.",
|
|
2302
|
+
lock: {
|
|
2303
|
+
linked: "Linked to package {{package}}, version {{version}}.",
|
|
2304
|
+
"agent-linked": "This agent comes from package {{package}}, version {{version}}.",
|
|
2305
|
+
whole: "The package locks it as a whole: it changes with the package's next version.",
|
|
2306
|
+
fields: "Locked: {{fields}}.",
|
|
2307
|
+
"nothing-locked": "Nothing of it is locked; the package's next version overwrites a change made here.",
|
|
2308
|
+
field: "Locked by package {{package}}, version {{version}}",
|
|
2309
|
+
unlink: "Unlink",
|
|
2310
|
+
"unlink-agent": "Unlink the agent",
|
|
2311
|
+
"unlink-explain": "Unlinked, this part is local: it changes here again, and later versions of {{package}} leave it as it is unless an import takes the package's version again.",
|
|
2312
|
+
"unlink-agent-explain": "Unlinked, every part of the agent is local: it changes here again, and later versions of {{package}} leave the agent as it is unless an import takes the package's version again.",
|
|
2313
|
+
"confirm-unlink": "Unlink"
|
|
2314
|
+
},
|
|
2315
|
+
parts: {
|
|
2316
|
+
agent: "Agent",
|
|
2317
|
+
"run-settings": "Run settings",
|
|
2318
|
+
skill: "Skill {{name}}",
|
|
2319
|
+
trigger: "Trigger {{name}}",
|
|
2320
|
+
consultation: "Consultation about {{name}}",
|
|
2321
|
+
"hand-off": "Hand-off about {{name}}",
|
|
2322
|
+
metadata: "Field {{name}}"
|
|
2323
|
+
},
|
|
2324
|
+
outcomes: {
|
|
2325
|
+
created: "New",
|
|
2326
|
+
changed: "Changed",
|
|
2327
|
+
unchanged: "Unchanged",
|
|
2328
|
+
"kept-local": "Kept local",
|
|
2329
|
+
"left-behind": "Left behind",
|
|
2330
|
+
refused: "Refused"
|
|
2331
|
+
},
|
|
2332
|
+
"outcome-explain": {
|
|
2333
|
+
created: "The import adds it.",
|
|
2334
|
+
changed: "The import replaces it with the package's version.",
|
|
2335
|
+
unchanged: "It is the same as the package's version.",
|
|
2336
|
+
"kept-local": "It was unlinked here, so the import leaves it as it is unless you take the package's version.",
|
|
2337
|
+
"left-behind": "The package no longer holds this agent: it stays here, unlinked.",
|
|
2338
|
+
refused: "The import refuses it, and with it the whole package."
|
|
2339
|
+
},
|
|
2340
|
+
"changed-locally": "Changed locally",
|
|
2341
|
+
"changed-locally-hint": "Someone changed it here since it was imported; the import overwrites that change.",
|
|
2342
|
+
"export-dialog": {
|
|
2343
|
+
title: "Export agents as a package",
|
|
2344
|
+
close: "Close",
|
|
2345
|
+
agents: "Agents in the package",
|
|
2346
|
+
"agents-hint": "The package holds exactly these agents, each with its run settings, skills, triggers, consultations, hand-offs, fields and groups; never runs, history, accounts or secrets.",
|
|
2347
|
+
"agents-required": "Choose at least one agent.",
|
|
2348
|
+
"too-many": "A package holds at most {{max}} agents.",
|
|
2349
|
+
"package-id": "Package id",
|
|
2350
|
+
"package-id-hint": "Lowercase letters, digits and dashes. A host upgrades the agents it imported from the same package id.",
|
|
2351
|
+
"package-id-default": "Empty: {{id}}",
|
|
2352
|
+
version: "Version",
|
|
2353
|
+
"version-hint": "A whole number from 1. Empty: the next version after the one this host imported, otherwise 1.",
|
|
2354
|
+
description: "Description",
|
|
2355
|
+
"description-hint": "Optional: what the package is for, for whoever imports it.",
|
|
2356
|
+
locks: "Locks",
|
|
2357
|
+
"locks-hint": "Where the package is imported, a locked part shows read-only and saving refuses to change it until an administrator unlinks it.",
|
|
2358
|
+
"lock-none": "Not locked",
|
|
2359
|
+
"lock-whole": "All of it",
|
|
2360
|
+
"lock-fields": "Chosen fields",
|
|
2361
|
+
"lock-choice": "Lock {{part}}",
|
|
2362
|
+
"lock-fields-of": "Fields of {{part}} to lock",
|
|
2363
|
+
"loading-parts": "Reading the parts of the agents…",
|
|
2364
|
+
"parts-failed": "The parts of the agents could not be read.",
|
|
2365
|
+
"no-parts": "Nothing of this agent travels as data.",
|
|
2366
|
+
references: "References outside the package",
|
|
2367
|
+
"references-hint": "These agents are not in the package, so they must exist where it is imported.",
|
|
2368
|
+
add: "Add {{agent}}",
|
|
2369
|
+
download: "Download package",
|
|
2370
|
+
downloading: "Exporting…",
|
|
2371
|
+
downloaded: "The package was downloaded as {{file}}.",
|
|
2372
|
+
reference: {
|
|
2373
|
+
"hand-off-source": "{{referenced}} hands work to {{agent}} ({{part}}).",
|
|
2374
|
+
"shadow-of": "{{agent}} is a shadow variant of {{referenced}}.",
|
|
2375
|
+
"consultation-asker": "{{referenced}} consults {{agent}} ({{part}}).",
|
|
2376
|
+
"shadow-variant": "{{referenced}} is a shadow variant of {{agent}} and receives its triggers."
|
|
2377
|
+
}
|
|
2378
|
+
},
|
|
2379
|
+
"import-dialog": {
|
|
2380
|
+
title: "Import an agent package",
|
|
2381
|
+
close: "Close",
|
|
2382
|
+
file: "Package file",
|
|
2383
|
+
"file-hint": "A JSON file of at most 1 MB, as an export writes it.",
|
|
2384
|
+
"file-chosen": "Read from {{name}}.",
|
|
2385
|
+
paste: "Or paste the package",
|
|
2386
|
+
"paste-hint": "The JSON of the package.",
|
|
2387
|
+
"invalid-json": "This is no package: its JSON cannot be read.",
|
|
2388
|
+
"too-large": "A package is at most 1 MB.",
|
|
2389
|
+
"no-package": "Choose a package file or paste a package first.",
|
|
2390
|
+
preview: "Check the package",
|
|
2391
|
+
previewing: "Checking…",
|
|
2392
|
+
"preview-again": "Check again",
|
|
2393
|
+
"preview-title": "What the import does",
|
|
2394
|
+
summary: "Package {{package}}, version {{version}}",
|
|
2395
|
+
"agent-heading": "Agent {{agent}}",
|
|
2396
|
+
"column-part": "Part",
|
|
2397
|
+
"column-outcome": "Outcome",
|
|
2398
|
+
"column-details": "Details",
|
|
2399
|
+
"column-relink": "Package's version",
|
|
2400
|
+
relink: "Take the package's version of {{part}}",
|
|
2401
|
+
"relink-hint": "Relinks the part: the import overwrites the local version and links it to the package again.",
|
|
2402
|
+
account: "Technical account of {{agent}}",
|
|
2403
|
+
"account-hint": "Accounts never travel: choose the account on this host that the agent answers to.",
|
|
2404
|
+
apply: "Changed skills and triggers",
|
|
2405
|
+
"apply-live": "Take effect at once",
|
|
2406
|
+
"apply-live-hint": "Each change becomes the live version, as a save does.",
|
|
2407
|
+
"apply-shadow": "Run in shadow first",
|
|
2408
|
+
"apply-shadow-hint": "Each change becomes a candidate next to the live version, to compare and promote.",
|
|
2409
|
+
"apply-new-hint": "New skills and triggers start in shadow either way.",
|
|
2410
|
+
refused: "The import refuses {{count}} parts. Fix the package or the host, then check again.",
|
|
2411
|
+
"options-changed": "The choices changed since the check; check again before importing.",
|
|
2412
|
+
"import": "Import",
|
|
2413
|
+
importing: "Importing…",
|
|
2414
|
+
imported: "The package was imported.",
|
|
2415
|
+
"result-title": "What the import did",
|
|
2416
|
+
done: "Done",
|
|
2417
|
+
"agent-exists": "An agent with this id exists on this host and is not linked to this package. Take it over to let the package replace its configuration and link it, or remove it first.",
|
|
2418
|
+
"agent-exists-other-package": "An agent with this id belongs to package {{package}} on this host. Unlink it from that package first, then take it over or remove it.",
|
|
2419
|
+
"agent-exists-in-code": "An agent in code has this id on this host; the package's agent cannot replace it.",
|
|
2420
|
+
"take-over": "Take over the existing agent",
|
|
2421
|
+
"take-over-hint": "The package replaces its configuration and links it.",
|
|
2422
|
+
"refused-one": "The import refuses {{count}} part. Fix the package or the host, then check again."
|
|
2423
|
+
},
|
|
2424
|
+
fields: {
|
|
2425
|
+
"display-name": "Name",
|
|
2426
|
+
description: "Description",
|
|
2427
|
+
instructions: "Instructions",
|
|
2428
|
+
"tool-selectors": "Tools",
|
|
2429
|
+
"required-policy": "Required policy",
|
|
2430
|
+
autonomy: "Autonomy",
|
|
2431
|
+
"offered-in-chat": "Use in the chat",
|
|
2432
|
+
"works-on": "What it works on",
|
|
2433
|
+
profile: "Model profile",
|
|
2434
|
+
"data-classification": "Data classification",
|
|
2435
|
+
accountability: "Answers to",
|
|
2436
|
+
"delegate-from-initiator": "Rights of the person who starts a run",
|
|
2437
|
+
"allow-gateway-reads": "Reads through the data gateway",
|
|
2438
|
+
"elevated-reads": "Reads with the account's rights",
|
|
2439
|
+
"approval-policy": "Approval policy",
|
|
2440
|
+
"retry-count": "Retries after a failure",
|
|
2441
|
+
"daily-budget": "Daily limits",
|
|
2442
|
+
"max-concurrent-runs": "Runs at the same time",
|
|
2443
|
+
"max-runs-per-subject-per-day": "Runs per subject per day",
|
|
2444
|
+
"max-tokens-per-run": "Tokens per run",
|
|
2445
|
+
"triage-profile": "Triage profile",
|
|
2446
|
+
"rule-handler": "Way of working",
|
|
2447
|
+
files: "Files",
|
|
2448
|
+
tools: "Tools",
|
|
2449
|
+
skill: "Skill",
|
|
2450
|
+
source: "When it starts",
|
|
2451
|
+
event: "Event",
|
|
2452
|
+
filters: "Filters",
|
|
2453
|
+
cron: "Schedule",
|
|
2454
|
+
"time-zone": "Time zone",
|
|
2455
|
+
"subject-set": "Subjects",
|
|
2456
|
+
message: "Message to every run",
|
|
2457
|
+
conflict: "While a run is busy",
|
|
2458
|
+
"debounce-seconds": "Wait for more events",
|
|
2459
|
+
"minimum-role": "Role of the person who asks",
|
|
2460
|
+
"asker-policy": "Policy of the person who asks",
|
|
2461
|
+
routes: "Routes",
|
|
2462
|
+
"proposal-role": "Role before it proposes",
|
|
2463
|
+
"proposal-policy": "Approval policy of its proposals",
|
|
2464
|
+
limits: "Limits",
|
|
2465
|
+
"allow-requests": "Requests",
|
|
2466
|
+
"expose-to-mcp": "MCP clients",
|
|
2467
|
+
sources: "Agents that may hand off",
|
|
2468
|
+
"notify-source": "Tells the source how it ended",
|
|
2469
|
+
"max-per-subject-per-day": "Hand-offs per source and object per day",
|
|
2470
|
+
value: "Value"
|
|
2471
|
+
},
|
|
2472
|
+
"reset-locked": "Package {{package}} locks fields of the definition. Unlink them first to reset the agent."
|
|
2043
2473
|
}
|
|
2044
2474
|
},
|
|
2045
2475
|
"page-context": {
|
|
@@ -2176,6 +2606,10 @@ var en = {
|
|
|
2176
2606
|
"re-execute": "Run again",
|
|
2177
2607
|
"mark-resolved": "Mark as resolved",
|
|
2178
2608
|
"unknown-hint": "The execution stopped without a known outcome. Check whether it happened before you run it again.",
|
|
2609
|
+
"hand-to-application": "Hand to the application again",
|
|
2610
|
+
"unknown-application-hint": "The application did not confirm that it carried this out. Check in the application whether it happened before you hand it over again.",
|
|
2611
|
+
"awaiting-application-hint": "The application carries out this approved proposal and reports back when it is done.",
|
|
2612
|
+
"report-due": "Report due {{date}}",
|
|
2179
2613
|
mode: {
|
|
2180
2614
|
inline: "The run waits",
|
|
2181
2615
|
deferred: "Decide later"
|
|
@@ -2188,6 +2622,7 @@ var en = {
|
|
|
2188
2622
|
withdrawn: "Withdrawn",
|
|
2189
2623
|
stale: "Outdated",
|
|
2190
2624
|
executing: "Running",
|
|
2625
|
+
"awaiting-application": "With the application",
|
|
2191
2626
|
executed: "Done",
|
|
2192
2627
|
"execution-failed": "Failed",
|
|
2193
2628
|
"execution-unknown": "Outcome unknown",
|
|
@@ -2610,6 +3045,7 @@ var nl = {
|
|
|
2610
3045
|
withdrawn: "Ingetrokken",
|
|
2611
3046
|
stale: "Verouderd",
|
|
2612
3047
|
executing: "Wordt uitgevoerd",
|
|
3048
|
+
"awaiting-application": "Bij de applicatie",
|
|
2613
3049
|
executed: "Uitgevoerd",
|
|
2614
3050
|
"execution-failed": "Mislukt",
|
|
2615
3051
|
"execution-unknown": "Uitkomst onbekend",
|
|
@@ -2849,6 +3285,7 @@ var nl = {
|
|
|
2849
3285
|
"assistant-consult-timeout": "De agent antwoordde niet op tijd.",
|
|
2850
3286
|
"assistant-consult-failed": "De agent kon niet antwoorden.",
|
|
2851
3287
|
"assistant-consult-read-only": "Een raadpleging kan niets wijzigen.",
|
|
3288
|
+
"assistant-consult-tool-not-selected": "Deze raadpleging biedt die tool niet aan, dus er is niets uitgevoerd.",
|
|
2852
3289
|
"assistant-consult-proposal-refused": "Geen route bij het onderwerp neemt dit voorstel nog aan. Keur het hier goed of af.",
|
|
2853
3290
|
"assistant-consult-asker-decides": "Degene die het vroeg, beslist over dit voorstel in de eigen chat.",
|
|
2854
3291
|
"assistant-consult-route-not-allowed": "Geen van de raadplegingen van de agent staat deze route toe, dus die kan niet aan.",
|
|
@@ -2863,8 +3300,9 @@ var nl = {
|
|
|
2863
3300
|
"assistant-skill-in-use": "Een trigger start deze vaardigheid nog. Pas de trigger eerst aan of verwijder hem.",
|
|
2864
3301
|
"assistant-configuration-limit": "Deze agent heeft al zoveel vaardigheden, triggers of raadplegingen als is toegestaan.",
|
|
2865
3302
|
"assistant-run-settings-in-code": "Deze agent staat in de code; daar is ingesteld hoe hij werkt.",
|
|
2866
|
-
"assistant-run-settings-in-use": "Er horen nog vaardigheden, triggers of
|
|
3303
|
+
"assistant-run-settings-in-use": "Er horen nog vaardigheden, triggers, raadplegingen of overdrachten bij deze agent. Verwijder die eerst.",
|
|
2867
3304
|
"assistant-skill-candidate-not-found": "Van deze vaardigheid wordt geen versie in schaduw beoordeeld.",
|
|
3305
|
+
"assistant-trigger-candidate-not-found": "Van deze trigger wordt geen versie in schaduw beoordeeld.",
|
|
2868
3306
|
"assistant-skill-version-gone": "De versie van de vaardigheid waarvoor deze run was, wordt niet meer beoordeeld.",
|
|
2869
3307
|
"assistant-account-search-unavailable": "De applicatie biedt geen accountzoeker; vul de id van het account in.",
|
|
2870
3308
|
"assistant-mcp-connection-required": "Deze server moet eerst gekoppeld worden. Koppel hem en probeer het opnieuw.",
|
|
@@ -2894,7 +3332,21 @@ var nl = {
|
|
|
2894
3332
|
"assistant-file-scan-refused": "Het bestand is niet door de scan op schadelijke inhoud gekomen en is niet opgeslagen.",
|
|
2895
3333
|
"assistant-consultation-in-code": "De agent staat raadpleging over deze soort object in code toe; die kan hier niet veranderen.",
|
|
2896
3334
|
"assistant-consultation-not-found": "De raadpleging is niet gevonden.",
|
|
2897
|
-
"assistant-consultations-not-allowed": "De applicatie laat beheerders geen raadplegingen aan deze agent toevoegen."
|
|
3335
|
+
"assistant-consultations-not-allowed": "De applicatie laat beheerders geen raadplegingen aan deze agent toevoegen.",
|
|
3336
|
+
"assistant-handoffs-not-allowed": "De applicatie laat beheerders geen agents aan deze agent koppelen.",
|
|
3337
|
+
"assistant-handoff-in-code": "De agent neemt overdrachten over deze soort object in code aan; die kan hier niet veranderen.",
|
|
3338
|
+
"assistant-handoff-not-found": "De overdracht is niet gevonden.",
|
|
3339
|
+
"assistant-shadow-variants-not-allowed": "De applicatie laat beheerders geen schaduwvarianten van deze agent maken.",
|
|
3340
|
+
"assistant-metadata-entry-not-found": "De applicatie kent dit veld van agents niet.",
|
|
3341
|
+
"assistant-metadata-read-only": "De applicatie zet dit veld van de agent in haar code; het kan hier niet veranderen.",
|
|
3342
|
+
"assistant-instructions-asset-not-found": "De applicatie heeft deze tekst niet in deze versie.",
|
|
3343
|
+
"assistant-instructions-asset-unavailable": "De teksten van de applicatie zijn nu niet te lezen. Er is niets opgeslagen; probeer het zo opnieuw.",
|
|
3344
|
+
"assistant-agent-instructions-unavailable": "Deze agent kan nu niet werken: de tekst van de applicatie met zijn instructies is niet beschikbaar. Een beheerder controleert de agent.",
|
|
3345
|
+
"assistant-package-format-unsupported": "Dit is geen agentpakket dat deze versie kan lezen: het formaat, de formaatversie of een eigenschap is onbekend.",
|
|
3346
|
+
"assistant-package-locked": "Een agentpakket vergrendelt dit. Ontkoppel het eerst van het pakket.",
|
|
3347
|
+
"assistant-package-too-large": "Een agentpakket is hoogstens 1 MB en bevat hoogstens 20 agents.",
|
|
3348
|
+
"assistant-package-refused": "De controle weigerde onderdelen van het pakket, dus er is niets geïmporteerd. Controleer het pakket opnieuw om te zien welke.",
|
|
3349
|
+
"assistant-package-not-linked": "Deze agent, of dit onderdeel ervan, is niet aan een agentpakket gekoppeld."
|
|
2898
3350
|
},
|
|
2899
3351
|
notices: {
|
|
2900
3352
|
"no-answer": "De assistent is klaar zonder antwoord. Probeer het opnieuw of stel je vraag anders.",
|
|
@@ -3278,7 +3730,26 @@ var nl = {
|
|
|
3278
3730
|
"in-code": "In deze groep in de code",
|
|
3279
3731
|
"shadow-variant": "Een schaduwvariant werkt alleen voor beheerders en hoort bij geen groep."
|
|
3280
3732
|
},
|
|
3281
|
-
|
|
3733
|
+
metadata: {
|
|
3734
|
+
title: "Applicatievelden",
|
|
3735
|
+
hint: "De applicatie bewaart hier haar eigen gegevens over agents. Elk veld heeft een editor van de applicatie, die het zelf opslaat.",
|
|
3736
|
+
"save-first": "Sla de agent eerst op; daarna verschijnen zijn velden hier.",
|
|
3737
|
+
loading: "De velden worden geladen",
|
|
3738
|
+
"load-failed": "De velden van deze agent konden niet worden geladen.",
|
|
3739
|
+
"no-editor": "De applicatie toont geen editor voor dit veld.",
|
|
3740
|
+
"read-only": "Ingesteld in de code van de applicatie; het kan hier niet veranderen.",
|
|
3741
|
+
saved: "Opgeslagen.",
|
|
3742
|
+
removed: "Verwijderd.",
|
|
3743
|
+
source: {
|
|
3744
|
+
code: "Uit de code",
|
|
3745
|
+
override: "Hier gewijzigd, boven de waarde in de code",
|
|
3746
|
+
data: "Opgeslagen bij de agent",
|
|
3747
|
+
none: "Geen waarde"
|
|
3748
|
+
}
|
|
3749
|
+
},
|
|
3750
|
+
"catalog-unavailable": "De bouwstenen van agentruns konden niet worden gelezen, dus waar deze agent aan werkt en zijn groepen kun je nu niet wijzigen. Opslaan laat ze zoals ze zijn.",
|
|
3751
|
+
"starts-in-shadow": "In schaduw beginnen",
|
|
3752
|
+
"starts-in-shadow-hint": "Zodra de agent run-instellingen heeft, werken zijn runs in zijn schaduwthreads, waar niemand een melding krijgt en niets wordt uitgevoerd, tot je hem live zet in de lijst met agents."
|
|
3282
3753
|
},
|
|
3283
3754
|
effect: {
|
|
3284
3755
|
"read-only": "Alleen lezen",
|
|
@@ -3637,7 +4108,9 @@ var nl = {
|
|
|
3637
4108
|
skill: "Vaardigheid {{id}}:",
|
|
3638
4109
|
candidate: "Kandidaat van vaardigheid {{id}}:",
|
|
3639
4110
|
trigger: "Trigger {{id}}:",
|
|
3640
|
-
consultation: "Raadpleging over {{id}}:"
|
|
4111
|
+
consultation: "Raadpleging over {{id}}:",
|
|
4112
|
+
"hand-off": "Overdracht over {{id}}:",
|
|
4113
|
+
"trigger-candidate": "Kandidaat van trigger {{id}}:"
|
|
3641
4114
|
},
|
|
3642
4115
|
code: {
|
|
3643
4116
|
"unknown-agent": "de agent kan niet meer zelfstandig werken.",
|
|
@@ -3664,7 +4137,18 @@ var nl = {
|
|
|
3664
4137
|
"no-approver": "de route met het account van de agent valt weg, omdat het goedkeuringsbeleid alleen degene die een voorstel veroorzaakte laat beslissen.",
|
|
3665
4138
|
"limit-above-ceiling": "een grens ligt boven wat de applicatie toestaat, dus die van de applicatie geldt.",
|
|
3666
4139
|
"requests-not-allowed": "de applicatie staat geen verzoeken meer toe, dus ze neemt er geen aan.",
|
|
3667
|
-
"mcp-not-allowed": "de applicatie biedt raadplegingen niet meer aan MCP-clients aan, dus die zien haar niet."
|
|
4140
|
+
"mcp-not-allowed": "de applicatie biedt raadplegingen niet meer aan MCP-clients aan, dus die zien haar niet.",
|
|
4141
|
+
"tools-not-allowed": "een gekozen tool hoort niet meer bij de eigen tools van de agent en valt weg; zonder tools krijgt de agent er geen enkele tool.",
|
|
4142
|
+
"no-asset-source": "de instructies komen uit de teksten van de applicatie, die de applicatie niet meer aanbiedt.",
|
|
4143
|
+
"asset-missing": "de applicatie heeft de tekst met de instructies niet meer in deze versie.",
|
|
4144
|
+
"asset-changed": "de tekst met de instructies is veranderd sinds hij is opgeslagen en wordt daarom niet gebruikt. Lees de tekst opnieuw en sla hem op als volgende versie.",
|
|
4145
|
+
"asset-invalid": "de tekst van de applicatie is niet te gebruiken als instructies.",
|
|
4146
|
+
"asset-unavailable": "de teksten van de applicatie waren niet te lezen; ze worden zo opnieuw gelezen.",
|
|
4147
|
+
"outside-ceiling": "de applicatie staat het niet meer toe.",
|
|
4148
|
+
"unknown-source": "een agent die mag overdragen kan niet meer zelfstandig werken.",
|
|
4149
|
+
"unknown-live-agent": "de agent die deze schaduwvariant volgt kan niet meer zelfstandig werken.",
|
|
4150
|
+
"live-agent-not-live": "de agent die deze schaduwvariant volgt is geen live agent.",
|
|
4151
|
+
"too-many-variants": "de agent die hij volgt heeft meer schaduwvarianten dan de applicatie toestaat."
|
|
3668
4152
|
}
|
|
3669
4153
|
},
|
|
3670
4154
|
"field-errors": {
|
|
@@ -3683,7 +4167,9 @@ var nl = {
|
|
|
3683
4167
|
"megabytes-up-to": "Vul een grootte in boven 0 en hooguit {{max}} MB.",
|
|
3684
4168
|
"megabytes-positive": "Vul een grootte in boven 0 MB.",
|
|
3685
4169
|
"not-allowed": "De applicatie staat dit niet toe.",
|
|
3686
|
-
"routes-required": "Kies minstens één route, of laat hem alleen antwoorden."
|
|
4170
|
+
"routes-required": "Kies minstens één route, of laat hem alleen antwoorden.",
|
|
4171
|
+
"tools-not-allowed": "Een gekozen tool valt buiten de eigen tools van de agent. Haal het vinkje weg, of voeg de tool eerst aan de agent toe.",
|
|
4172
|
+
locked: "Een agentpakket vergrendelt dit veld. Ontkoppel het onderdeel eerst om het te wijzigen."
|
|
3687
4173
|
},
|
|
3688
4174
|
settings: {
|
|
3689
4175
|
title: "Runinstellingen",
|
|
@@ -3926,6 +4412,24 @@ var nl = {
|
|
|
3926
4412
|
"set-hint": "Telkens één run voor elk object in een verzameling, zoals de actieve projecten.",
|
|
3927
4413
|
"every-division": "Elke divisie",
|
|
3928
4414
|
dropped: "Dit schema draaide voor de hele applicatie, waaraan de agent niet meer werkt. Kies een verzameling objecten."
|
|
4415
|
+
},
|
|
4416
|
+
"saved-candidate": "De nieuwe versie vuurt in schaduw naast de live versie, die blijft werken.",
|
|
4417
|
+
apply: "Hoe de wijziging ingaat",
|
|
4418
|
+
"apply-live": "Direct toepassen",
|
|
4419
|
+
"apply-live-hint": "De nieuwe versie vervangt de live versie meteen, in de modus van de trigger.",
|
|
4420
|
+
"apply-shadow": "Eerst in schaduw beoordelen naast de live versie",
|
|
4421
|
+
"apply-shadow-hint": "De nieuwe versie vuurt naast de live versie in de schaduwthreads van de agent, waar niets wordt uitgevoerd; vergelijk ze en promoveer of verwerp hem daarna.",
|
|
4422
|
+
versions: "Versies",
|
|
4423
|
+
candidate: {
|
|
4424
|
+
explain: "Versie {{version}} vuurt in schaduw naast de live versie: zijn runs werken in de schaduwthreads van de agent, en de live versie blijft werken.",
|
|
4425
|
+
"out-of-effect": "De kandidaat vuurt niet: hij past niet meer bij de code ({{problem}}). De live versie blijft werken.",
|
|
4426
|
+
changes: "Wat de kandidaat verandert",
|
|
4427
|
+
"no-changes": "De kandidaat heeft dezelfde definitie als de live versie.",
|
|
4428
|
+
change: "{{candidate}} (live: {{live}})",
|
|
4429
|
+
comparison: "Live versie en kandidaat van trigger {{trigger}}",
|
|
4430
|
+
paired: "Sinds {{date}} startten beide een run op {{count}} dezelfde gebeurtenissen, alleen de live versie op {{liveOnly}} en alleen de kandidaat op {{candidateOnly}}.",
|
|
4431
|
+
promoted: "De kandidaat is nu de live versie van de trigger.",
|
|
4432
|
+
none: "geen"
|
|
3929
4433
|
}
|
|
3930
4434
|
},
|
|
3931
4435
|
"way-of-working": "Werkwijze",
|
|
@@ -4176,6 +4680,9 @@ var nl = {
|
|
|
4176
4680
|
"no-askers": "Nog geen agent vraagt het. Selecteer de tool bij de tools van een agent die het moet vragen.",
|
|
4177
4681
|
"code-hint": "Toegestaan in code; hier veranderen alleen de routeschakelaars hieronder iets.",
|
|
4178
4682
|
"limits-value": "Hooguit {{calls}} toolaanroepen, {{seconds}} seconden, {{chars}} tekens en {{history}} berichten uit de thread",
|
|
4683
|
+
"tools-label": "Tools:",
|
|
4684
|
+
"tools-all": "alle tools van de agent",
|
|
4685
|
+
"tools-none": "geen, want geen gekozen tool hoort nog bij de eigen tools van de agent",
|
|
4179
4686
|
"edit-named": "De raadpleging over {{type}} bewerken",
|
|
4180
4687
|
"remove-named": "De raadpleging over {{type}} verwijderen",
|
|
4181
4688
|
"remove-explain": "Haar tools verdwijnen; voorstellen die ze deed, kunnen nog worden beslist.",
|
|
@@ -4257,7 +4764,7 @@ var nl = {
|
|
|
4257
4764
|
"four-eyes": "Dit goedkeuringsbeleid vraagt vier ogen, dus degene die het vroeg kan het eigen voorstel niet in de eigen chat beslissen; die route geldt dan niet.",
|
|
4258
4765
|
"initiator-only": "Dit goedkeuringsbeleid laat alleen degene die een voorstel veroorzaakte erover beslissen, dus de route met het technische account van de agent wordt geweigerd."
|
|
4259
4766
|
},
|
|
4260
|
-
advanced: "Geavanceerd: grenzen, verzoeken en classificatie",
|
|
4767
|
+
advanced: "Geavanceerd: tools, grenzen, verzoeken en classificatie",
|
|
4261
4768
|
limits: "Grenzen van één raadpleging",
|
|
4262
4769
|
"limits-hint": "Leeg begint bij de standaard binnen wat de applicatie toestaat.",
|
|
4263
4770
|
"limit-range": "Van {{min}} tot en met {{max}}.",
|
|
@@ -4268,8 +4775,115 @@ var nl = {
|
|
|
4268
4775
|
"mcp-hint": "Externe MCP-clients mogen hem ook raadplegen, met de rechten van hun persoon.",
|
|
4269
4776
|
"mcp-closed": "De applicatie biedt raadplegingen niet aan MCP-clients aan.",
|
|
4270
4777
|
"classification-hint": "Hoe gevoelig zijn antwoorden zijn in het gesprek dat vroeg. Zonder geldt de classificatie van de agent.",
|
|
4271
|
-
|
|
4272
|
-
|
|
4778
|
+
tools: "Tools die hij mag gebruiken",
|
|
4779
|
+
"tools-hint": "De eigen tools van de agent; selecteer er een paar om ze voor deze raadpleging te beperken. Niets geselecteerd: alle tools van de agent. Wijzigingen hebben nog steeds een route nodig.",
|
|
4780
|
+
"tool-not-covered": "Hoort niet meer bij de eigen tools van de agent.",
|
|
4781
|
+
"in-effect": "Een raadpleging werkt zodra ze is opgeslagen; ze antwoordt zodra een agent die vraagt haar tool selecteert.",
|
|
4782
|
+
"starts-off": "Uit beginnen",
|
|
4783
|
+
"starts-off-hint": "Hij wordt niet aangeboden tot je hem aanzet in de lijst, bijvoorbeeld na een beoordeling.",
|
|
4784
|
+
"starts-off-ceiling": "Een nieuwe raadpleging begint uit: de applicatie wil elke raadpleging beoordeeld hebben voordat hij wordt aangeboden. Zet hem aan in de lijst."
|
|
4785
|
+
},
|
|
4786
|
+
"off-badge": "Uit",
|
|
4787
|
+
"off-explain": "Uit: vragende agents krijgen geen van zijn tools tot je hem aanzet.",
|
|
4788
|
+
"switch-on": "Aanzetten",
|
|
4789
|
+
"switch-off": "Uitzetten",
|
|
4790
|
+
"switch-on-named": "Raadpleging over {{type}} aanzetten",
|
|
4791
|
+
"switch-off-named": "Raadpleging over {{type}} uitzetten",
|
|
4792
|
+
"switched-on": "De raadpleging staat aan: agents die vragen krijgen zijn tools.",
|
|
4793
|
+
"switched-off": "De raadpleging staat uit: agents die vragen krijgen geen van zijn tools."
|
|
4794
|
+
}
|
|
4795
|
+
},
|
|
4796
|
+
"hand-offs": {
|
|
4797
|
+
title: "Overdrachten",
|
|
4798
|
+
description: "Andere agents kunnen in hun runs werk aan een object aan deze agent overdragen, die er dan in een eigen run met eigen goedkeuringen aan werkt. De applicatie bepaalt in haar code welke agents gekoppeld mogen worden; hier koppel je ze daarbinnen.",
|
|
4799
|
+
loading: "Overdrachten laden…",
|
|
4800
|
+
"load-failed": "De overdrachten konden niet geladen worden.",
|
|
4801
|
+
add: "Overdracht toevoegen",
|
|
4802
|
+
empty: "Nog geen agent kan werk aan deze agent overdragen.",
|
|
4803
|
+
closed: {
|
|
4804
|
+
application: "De applicatie laat beheerders geen agents aan deze agent koppelen; haar overdrachten komen uit haar code.",
|
|
4805
|
+
"needs-settings": "Geef de agent runinstellingen voordat je agents eraan koppelt.",
|
|
4806
|
+
limit: "Deze agent neemt zoveel overdrachten aan als toegestaan ({{max}}).",
|
|
4807
|
+
"no-types": "Elke soort object waarover de applicatie deze agent laat koppelen heeft al een overdracht."
|
|
4808
|
+
},
|
|
4809
|
+
notifies: "Laat de bron weten hoe het afliep",
|
|
4810
|
+
"no-description": "Geen beschrijving.",
|
|
4811
|
+
from: "Van:",
|
|
4812
|
+
"limit-value": "Hoogstens {{max}} per bron en object per dag",
|
|
4813
|
+
"code-hint": "Aangenomen in code; dit kan hier niet veranderen.",
|
|
4814
|
+
changed: "Gewijzigd door {{user}} op {{date}}",
|
|
4815
|
+
"edit-named": "De overdracht over {{type}} bewerken",
|
|
4816
|
+
"remove-named": "De overdracht over {{type}} verwijderen",
|
|
4817
|
+
"remove-explain": "Het hulpmiddel verdwijnt uit de volgende runs van de bronnen; runs die het startte maken het af.",
|
|
4818
|
+
added: "De overdracht is toegevoegd. Een bron gebruikt hem zodra zijn hulpmiddelen het hulpmiddel ervan selecteren.",
|
|
4819
|
+
saved: "De overdracht is opgeslagen.",
|
|
4820
|
+
removed: "De overdracht is verwijderd.",
|
|
4821
|
+
problems: {
|
|
4822
|
+
invalid: "Buiten werking: een opgeslagen waarde is niet geldig.",
|
|
4823
|
+
"outside-ceiling": "Buiten werking: de applicatie laat deze agents niet meer over deze soort object koppelen.",
|
|
4824
|
+
"unknown-agent": "Buiten werking: deze agent kan niet meer zelfstandig werken.",
|
|
4825
|
+
"unknown-source": "Buiten werking: een agent die mag overdragen kan niet meer zelfstandig werken.",
|
|
4826
|
+
"not-worked-on": "Buiten werking: deze agent werkt niet aan deze soort object.",
|
|
4827
|
+
"conflicts-with-code": "Buiten werking: de applicatie neemt overdrachten over deze soort object nu in code aan.",
|
|
4828
|
+
"limit-above-ceiling": "Buiten werking: de daglimiet ligt boven wat de applicatie toestaat."
|
|
4829
|
+
},
|
|
4830
|
+
form: {
|
|
4831
|
+
"new-title": "Nieuwe overdracht",
|
|
4832
|
+
"edit-title": "Overdracht over {{type}}, versie {{version}}",
|
|
4833
|
+
"subject-type": "Soort object",
|
|
4834
|
+
"subject-type-hint": "De soorten object waarover de applicatie deze agent laat koppelen.",
|
|
4835
|
+
sources: "Agents die mogen overdragen",
|
|
4836
|
+
"no-sources": "De applicatie staat nog geen zelfstandig werkende agent toe om over deze soort object over te dragen.",
|
|
4837
|
+
"source-not-allowed": "Niet meer toegestaan; haal hem weg.",
|
|
4838
|
+
"sources-hint": "Alleen de agents die de applicatie toestaat; een hier gemaakte agent telt mee zodra hij runinstellingen heeft.",
|
|
4839
|
+
"sources-admin": "De applicatie staat ook agents toe die in het beheer gemaakt zijn.",
|
|
4840
|
+
description: "Beschrijving voor de bronnen",
|
|
4841
|
+
"description-hint": "Wanneer een bron werk moet overdragen, in een of twee zinnen.",
|
|
4842
|
+
notify: "Geef de bron een vervolg wanneer de run van deze agent eindigt",
|
|
4843
|
+
"notify-hint": "De bron hoort de uitkomst en het aantal voorstellen, en de samenvatting van de run wanneer beide aan hetzelfde object werken.",
|
|
4844
|
+
limit: "Overdrachten per bron en object per dag",
|
|
4845
|
+
"limit-hint": "1 tot en met {{max}}; 5 als je het leeg laat.",
|
|
4846
|
+
"in-effect": "Hij werkt zodra hij opgeslagen is. Het model van een bron krijgt het hulpmiddel ervan wanneer de hulpmiddelen van de bron het selecteren."
|
|
4847
|
+
}
|
|
4848
|
+
},
|
|
4849
|
+
"shadow-variants": {
|
|
4850
|
+
title: "Schaduwvarianten",
|
|
4851
|
+
description: "Een schaduwvariant krijgt elke gebeurtenis van deze agent en werkt eraan in schaduw, in threads die alleen beheerders zien: hij meldt niemand iets en niets wat hij voorstelt wordt uitgevoerd. Vergelijk hem met deze agent in de evaluatie.",
|
|
4852
|
+
loading: "Schaduwvarianten laden…",
|
|
4853
|
+
"load-failed": "De schaduwvarianten konden niet geladen worden.",
|
|
4854
|
+
add: "Nieuwe schaduwvariant",
|
|
4855
|
+
empty: "Deze agent heeft geen schaduwvarianten.",
|
|
4856
|
+
closed: {
|
|
4857
|
+
"not-allowed": "De applicatie laat beheerders geen schaduwvarianten van deze agent maken.",
|
|
4858
|
+
limit: "Deze agent heeft zoveel schaduwvarianten als toegestaan ({{max}})."
|
|
4859
|
+
},
|
|
4860
|
+
source: {
|
|
4861
|
+
code: "In code",
|
|
4862
|
+
data: "Hier gemaakt"
|
|
4863
|
+
},
|
|
4864
|
+
"needs-settings": "Heeft runinstellingen nodig",
|
|
4865
|
+
"in-effect": "Krijgt de gebeurtenissen van deze agent",
|
|
4866
|
+
open: "Runconfiguratie",
|
|
4867
|
+
"set-up": "Runs instellen",
|
|
4868
|
+
"open-named": "De runconfiguratie van {{name}} openen",
|
|
4869
|
+
problems: {
|
|
4870
|
+
invalid: "Buiten werking: een opgeslagen waarde is niet geldig.",
|
|
4871
|
+
"outside-ceiling": "Buiten werking: de applicatie laat beheerders geen schaduwvarianten van deze agent meer maken.",
|
|
4872
|
+
"unknown-live-agent": "Buiten werking: de agent die hij volgt kan niet meer zelfstandig werken.",
|
|
4873
|
+
"live-agent-not-live": "Buiten werking: de agent die hij volgt is geen live agent.",
|
|
4874
|
+
"too-many-variants": "Buiten werking: de agent die hij volgt heeft meer schaduwvarianten dan de applicatie toestaat."
|
|
4875
|
+
},
|
|
4876
|
+
form: {
|
|
4877
|
+
title: "Nieuwe schaduwvariant",
|
|
4878
|
+
copies: "Hij begint met de hulpmiddelen, MCP-servers en het werkgebied van deze agent; daarna volgen zijn eigen runinstellingen. Hij wordt nooit in de chat aangeboden en zijn schaduwmodus kan niet veranderen.",
|
|
4879
|
+
id: "Id",
|
|
4880
|
+
"id-hint": "Kleine letters, cijfers en streepjes; dit kan later niet veranderen.",
|
|
4881
|
+
name: "Naam",
|
|
4882
|
+
"default-name": "{{name}} (variant)",
|
|
4883
|
+
description: "Beschrijving",
|
|
4884
|
+
instructions: "Instructies",
|
|
4885
|
+
"instructions-hint": "Ze beginnen als de instructies van deze agent; verander wat de variant moet proberen.",
|
|
4886
|
+
create: "Variant maken"
|
|
4273
4887
|
}
|
|
4274
4888
|
},
|
|
4275
4889
|
runs: {
|
|
@@ -4302,6 +4916,225 @@ var nl = {
|
|
|
4302
4916
|
id: "Account-ID {{id}}",
|
|
4303
4917
|
"copy-id": "Account-ID van {{name}} kopiëren",
|
|
4304
4918
|
"id-copied": "Account-ID gekopieerd"
|
|
4919
|
+
},
|
|
4920
|
+
"instruction-assets": {
|
|
4921
|
+
source: "Waar komen de instructies vandaan?",
|
|
4922
|
+
"source-inline": "Hier geschreven",
|
|
4923
|
+
"source-inline-hint": "Typ de instructies in dit formulier.",
|
|
4924
|
+
"source-asset": "Tekst van de applicatie",
|
|
4925
|
+
"source-asset-hint": "Instructies die de applicatie meelevert of bewaart, in een vaste versie. Een nieuwe versie wordt pas gebruikt als je hem opslaat.",
|
|
4926
|
+
"not-offered": "De applicatie biedt haar teksten niet meer aan; schrijf de instructies hier zodat dit blijft werken.",
|
|
4927
|
+
loading: "De teksten van de applicatie laden…",
|
|
4928
|
+
asset: "Tekst",
|
|
4929
|
+
"asset-hint": "De applicatie toont de teksten die je kunt kiezen, elk in een vaste versie.",
|
|
4930
|
+
choose: "Kies een tekst",
|
|
4931
|
+
option: "{{asset}}, versie {{version}}",
|
|
4932
|
+
deprecated: "Vervangen door de applicatie",
|
|
4933
|
+
"deprecated-by": "Vervangen door {{asset}}",
|
|
4934
|
+
"none-listed": "De applicatie toont geen teksten; vul de id en versie in die je van haar kreeg.",
|
|
4935
|
+
"asset-id": "Id van de tekst",
|
|
4936
|
+
version: "Versie",
|
|
4937
|
+
read: "Tekst lezen",
|
|
4938
|
+
reading: "De tekst lezen…",
|
|
4939
|
+
reference: "Gebruikt {{asset}}, versie {{version}}.",
|
|
4940
|
+
hash: "Hash {{hash}}",
|
|
4941
|
+
newer: "Versie {{version}} van deze tekst is beschikbaar. Kies hem en sla op om hem te gebruiken; tot dan blijft de huidige versie in gebruik.",
|
|
4942
|
+
text: "Tekst van de instructies",
|
|
4943
|
+
"text-hint": "Alleen lezen: deze tekst is van de applicatie. Opslaan bewaart welke tekst en versie, nooit een kopie.",
|
|
4944
|
+
"agent-problem": "De agent werkt niet:",
|
|
4945
|
+
problems: {
|
|
4946
|
+
"no-asset-source": "De applicatie biedt haar teksten niet meer aan; de instructies zijn niet beschikbaar.",
|
|
4947
|
+
"asset-missing": "De applicatie heeft deze tekst niet meer in deze versie.",
|
|
4948
|
+
"asset-changed": "De tekst is veranderd sinds hij is opgeslagen en wordt daarom niet gebruikt. Lees hem opnieuw en sla op om de nieuwe tekst te gebruiken.",
|
|
4949
|
+
"asset-invalid": "Deze tekst is niet te gebruiken als instructies.",
|
|
4950
|
+
"asset-unavailable": "De teksten van de applicatie waren niet te lezen; ze worden zo opnieuw gelezen."
|
|
4951
|
+
},
|
|
4952
|
+
errors: {
|
|
4953
|
+
required: "Kies een tekst en lees hem eerst.",
|
|
4954
|
+
"not-found": "De applicatie heeft deze tekst niet in deze versie.",
|
|
4955
|
+
changed: "De tekst is veranderd sinds je hem las. Lees hem opnieuw voordat je opslaat.",
|
|
4956
|
+
invalid: "Vul een id in met kleine letters, cijfers en streepjes, en een versie van 1 of hoger. Mogelijk staat de applicatie deze tekst ook niet toe als instructies.",
|
|
4957
|
+
"not-allowed": "De applicatie biedt haar teksten hier niet aan."
|
|
4958
|
+
}
|
|
4959
|
+
},
|
|
4960
|
+
packages: {
|
|
4961
|
+
"export": "Als pakket exporteren",
|
|
4962
|
+
"export-named": "{{name}} als pakket exporteren",
|
|
4963
|
+
"import": "Pakket importeren",
|
|
4964
|
+
"linked-badge": "Pakket {{package}} {{version}}",
|
|
4965
|
+
"delete-locked": "De agent hoort bij pakket {{package}}. Ontkoppel de agent eerst om hem te verwijderen.",
|
|
4966
|
+
"remove-locked": "Pakket {{package}} vergrendelt dit onderdeel. Ontkoppel het eerst om het te verwijderen.",
|
|
4967
|
+
lock: {
|
|
4968
|
+
linked: "Gekoppeld aan pakket {{package}}, versie {{version}}.",
|
|
4969
|
+
"agent-linked": "Deze agent komt uit pakket {{package}}, versie {{version}}.",
|
|
4970
|
+
whole: "Het pakket vergrendelt het als geheel: het verandert met de volgende versie van het pakket.",
|
|
4971
|
+
fields: "Vergrendeld: {{fields}}.",
|
|
4972
|
+
"nothing-locked": "Er is niets van vergrendeld; de volgende versie van het pakket overschrijft een wijziging die hier is gemaakt.",
|
|
4973
|
+
field: "Vergrendeld door pakket {{package}}, versie {{version}}",
|
|
4974
|
+
unlink: "Ontkoppelen",
|
|
4975
|
+
"unlink-agent": "De agent ontkoppelen",
|
|
4976
|
+
"unlink-explain": "Ontkoppeld is dit onderdeel lokaal: het verandert hier weer, en latere versies van {{package}} laten het zoals het is, tenzij een import de versie van het pakket weer neemt.",
|
|
4977
|
+
"unlink-agent-explain": "Ontkoppeld is elk onderdeel van de agent lokaal: het verandert hier weer, en latere versies van {{package}} laten de agent zoals hij is, tenzij een import de versie van het pakket weer neemt.",
|
|
4978
|
+
"confirm-unlink": "Ontkoppelen"
|
|
4979
|
+
},
|
|
4980
|
+
parts: {
|
|
4981
|
+
agent: "Agent",
|
|
4982
|
+
"run-settings": "Runinstellingen",
|
|
4983
|
+
skill: "Vaardigheid {{name}}",
|
|
4984
|
+
trigger: "Trigger {{name}}",
|
|
4985
|
+
consultation: "Raadpleging over {{name}}",
|
|
4986
|
+
"hand-off": "Overdracht over {{name}}",
|
|
4987
|
+
metadata: "Veld {{name}}"
|
|
4988
|
+
},
|
|
4989
|
+
outcomes: {
|
|
4990
|
+
created: "Nieuw",
|
|
4991
|
+
changed: "Gewijzigd",
|
|
4992
|
+
unchanged: "Ongewijzigd",
|
|
4993
|
+
"kept-local": "Lokaal gehouden",
|
|
4994
|
+
"left-behind": "Achtergelaten",
|
|
4995
|
+
refused: "Geweigerd"
|
|
4996
|
+
},
|
|
4997
|
+
"outcome-explain": {
|
|
4998
|
+
created: "De import voegt het toe.",
|
|
4999
|
+
changed: "De import vervangt het door de versie van het pakket.",
|
|
5000
|
+
unchanged: "Het is gelijk aan de versie van het pakket.",
|
|
5001
|
+
"kept-local": "Het is hier ontkoppeld, dus de import laat het zoals het is, tenzij je de versie van het pakket neemt.",
|
|
5002
|
+
"left-behind": "Het pakket bevat deze agent niet meer: hij blijft hier, ontkoppeld.",
|
|
5003
|
+
refused: "De import weigert het, en daarmee het hele pakket."
|
|
5004
|
+
},
|
|
5005
|
+
"changed-locally": "Lokaal gewijzigd",
|
|
5006
|
+
"changed-locally-hint": "Iemand heeft het hier gewijzigd sinds het is geïmporteerd; de import overschrijft die wijziging.",
|
|
5007
|
+
"export-dialog": {
|
|
5008
|
+
title: "Agents als pakket exporteren",
|
|
5009
|
+
close: "Sluiten",
|
|
5010
|
+
agents: "Agents in het pakket",
|
|
5011
|
+
"agents-hint": "Het pakket bevat precies deze agents, elk met zijn runinstellingen, vaardigheden, triggers, raadplegingen, overdrachten, velden en groepen; nooit runs, geschiedenis, accounts of geheimen.",
|
|
5012
|
+
"agents-required": "Kies minstens één agent.",
|
|
5013
|
+
"too-many": "Een pakket bevat hoogstens {{max}} agents.",
|
|
5014
|
+
"package-id": "Pakket-id",
|
|
5015
|
+
"package-id-hint": "Kleine letters, cijfers en streepjes. Een host werkt de agents die hij uit hetzelfde pakket-id importeerde bij.",
|
|
5016
|
+
"package-id-default": "Leeg: {{id}}",
|
|
5017
|
+
version: "Versie",
|
|
5018
|
+
"version-hint": "Een heel getal vanaf 1. Leeg: de volgende versie na die deze host importeerde, anders 1.",
|
|
5019
|
+
description: "Beschrijving",
|
|
5020
|
+
"description-hint": "Optioneel: waarvoor het pakket is, voor wie het importeert.",
|
|
5021
|
+
locks: "Vergrendelingen",
|
|
5022
|
+
"locks-hint": "Waar het pakket wordt geïmporteerd, staat een vergrendeld onderdeel alleen-lezen en weigert opslaan het te wijzigen tot een beheerder het ontkoppelt.",
|
|
5023
|
+
"lock-none": "Niet vergrendeld",
|
|
5024
|
+
"lock-whole": "Helemaal",
|
|
5025
|
+
"lock-fields": "Gekozen velden",
|
|
5026
|
+
"lock-choice": "{{part}} vergrendelen",
|
|
5027
|
+
"lock-fields-of": "Te vergrendelen velden van {{part}}",
|
|
5028
|
+
"loading-parts": "De onderdelen van de agents lezen…",
|
|
5029
|
+
"parts-failed": "De onderdelen van de agents konden niet gelezen worden.",
|
|
5030
|
+
"no-parts": "Niets van deze agent gaat als gegevens mee.",
|
|
5031
|
+
references: "Verwijzingen buiten het pakket",
|
|
5032
|
+
"references-hint": "Deze agents zitten niet in het pakket, dus ze moeten bestaan waar het wordt geïmporteerd.",
|
|
5033
|
+
add: "{{agent}} toevoegen",
|
|
5034
|
+
download: "Pakket downloaden",
|
|
5035
|
+
downloading: "Exporteren…",
|
|
5036
|
+
downloaded: "Het pakket is gedownload als {{file}}.",
|
|
5037
|
+
reference: {
|
|
5038
|
+
"hand-off-source": "{{referenced}} draagt werk over aan {{agent}} ({{part}}).",
|
|
5039
|
+
"shadow-of": "{{agent}} is een schaduwvariant van {{referenced}}.",
|
|
5040
|
+
"consultation-asker": "{{referenced}} raadpleegt {{agent}} ({{part}}).",
|
|
5041
|
+
"shadow-variant": "{{referenced}} is een schaduwvariant van {{agent}} en krijgt zijn triggers."
|
|
5042
|
+
}
|
|
5043
|
+
},
|
|
5044
|
+
"import-dialog": {
|
|
5045
|
+
title: "Een agentpakket importeren",
|
|
5046
|
+
close: "Sluiten",
|
|
5047
|
+
file: "Pakketbestand",
|
|
5048
|
+
"file-hint": "Een JSON-bestand van hoogstens 1 MB, zoals een export het schrijft.",
|
|
5049
|
+
"file-chosen": "Gelezen uit {{name}}.",
|
|
5050
|
+
paste: "Of plak het pakket",
|
|
5051
|
+
"paste-hint": "De JSON van het pakket.",
|
|
5052
|
+
"invalid-json": "Dit is geen pakket: de JSON ervan kan niet gelezen worden.",
|
|
5053
|
+
"too-large": "Een pakket is hoogstens 1 MB.",
|
|
5054
|
+
"no-package": "Kies eerst een pakketbestand of plak een pakket.",
|
|
5055
|
+
preview: "Het pakket controleren",
|
|
5056
|
+
previewing: "Controleren…",
|
|
5057
|
+
"preview-again": "Opnieuw controleren",
|
|
5058
|
+
"preview-title": "Wat de import doet",
|
|
5059
|
+
summary: "Pakket {{package}}, versie {{version}}",
|
|
5060
|
+
"agent-heading": "Agent {{agent}}",
|
|
5061
|
+
"column-part": "Onderdeel",
|
|
5062
|
+
"column-outcome": "Uitkomst",
|
|
5063
|
+
"column-details": "Details",
|
|
5064
|
+
"column-relink": "Versie van het pakket",
|
|
5065
|
+
relink: "De versie van het pakket van {{part}} nemen",
|
|
5066
|
+
"relink-hint": "Koppelt het onderdeel weer: de import overschrijft de lokale versie en koppelt het weer aan het pakket.",
|
|
5067
|
+
account: "Technisch account van {{agent}}",
|
|
5068
|
+
"account-hint": "Accounts gaan nooit mee: kies het account op deze host waaraan de agent verantwoording aflegt.",
|
|
5069
|
+
apply: "Gewijzigde vaardigheden en triggers",
|
|
5070
|
+
"apply-live": "Direct van kracht",
|
|
5071
|
+
"apply-live-hint": "Elke wijziging wordt de live versie, zoals bij opslaan.",
|
|
5072
|
+
"apply-shadow": "Eerst in schaduw draaien",
|
|
5073
|
+
"apply-shadow-hint": "Elke wijziging wordt een kandidaat naast de live versie, om te vergelijken en te promoveren.",
|
|
5074
|
+
"apply-new-hint": "Nieuwe vaardigheden en triggers beginnen hoe dan ook in schaduw.",
|
|
5075
|
+
refused: "De import weigert {{count}} onderdelen. Herstel het pakket of de host en controleer opnieuw.",
|
|
5076
|
+
"options-changed": "De keuzes zijn gewijzigd sinds de controle; controleer opnieuw voordat je importeert.",
|
|
5077
|
+
"import": "Importeren",
|
|
5078
|
+
importing: "Importeren…",
|
|
5079
|
+
imported: "Het pakket is geïmporteerd.",
|
|
5080
|
+
"result-title": "Wat de import deed",
|
|
5081
|
+
done: "Klaar",
|
|
5082
|
+
"agent-exists": "Op deze host bestaat al een agent met dit id die niet aan dit pakket gekoppeld is. Neem hem over, zodat het pakket zijn configuratie vervangt en hem koppelt, of verwijder hem eerst.",
|
|
5083
|
+
"agent-exists-other-package": "Een agent met dit id hoort op deze host bij pakket {{package}}. Ontkoppel hem eerst van dat pakket en neem hem daarna over of verwijder hem.",
|
|
5084
|
+
"agent-exists-in-code": "Op deze host heeft een agent in code dit id; de agent van het pakket kan hem niet vervangen.",
|
|
5085
|
+
"take-over": "De bestaande agent overnemen",
|
|
5086
|
+
"take-over-hint": "Het pakket vervangt zijn configuratie en koppelt hem.",
|
|
5087
|
+
"refused-one": "De import weigert {{count}} onderdeel. Herstel het pakket of de host en controleer opnieuw."
|
|
5088
|
+
},
|
|
5089
|
+
fields: {
|
|
5090
|
+
"display-name": "Naam",
|
|
5091
|
+
description: "Omschrijving",
|
|
5092
|
+
instructions: "Instructies",
|
|
5093
|
+
"tool-selectors": "Tools",
|
|
5094
|
+
"required-policy": "Vereiste policy",
|
|
5095
|
+
autonomy: "Autonomie",
|
|
5096
|
+
"offered-in-chat": "Gebruik in de chat",
|
|
5097
|
+
"works-on": "Waaraan hij werkt",
|
|
5098
|
+
profile: "Modelprofiel",
|
|
5099
|
+
"data-classification": "Dataclassificatie",
|
|
5100
|
+
accountability: "Legt verantwoording af aan",
|
|
5101
|
+
"delegate-from-initiator": "Rechten van de persoon die een run start",
|
|
5102
|
+
"allow-gateway-reads": "Lezen via de datagateway",
|
|
5103
|
+
"elevated-reads": "Lezen met de rechten van het account",
|
|
5104
|
+
"approval-policy": "Goedkeuringsbeleid",
|
|
5105
|
+
"retry-count": "Nieuwe pogingen na een fout",
|
|
5106
|
+
"daily-budget": "Daglimieten",
|
|
5107
|
+
"max-concurrent-runs": "Runs tegelijk",
|
|
5108
|
+
"max-runs-per-subject-per-day": "Runs per onderwerp per dag",
|
|
5109
|
+
"max-tokens-per-run": "Tokens per run",
|
|
5110
|
+
"triage-profile": "Triageprofiel",
|
|
5111
|
+
"rule-handler": "Werkwijze",
|
|
5112
|
+
files: "Bestanden",
|
|
5113
|
+
tools: "Tools",
|
|
5114
|
+
skill: "Vaardigheid",
|
|
5115
|
+
source: "Wanneer hij start",
|
|
5116
|
+
event: "Gebeurtenis",
|
|
5117
|
+
filters: "Filters",
|
|
5118
|
+
cron: "Schema",
|
|
5119
|
+
"time-zone": "Tijdzone",
|
|
5120
|
+
"subject-set": "Onderwerpen",
|
|
5121
|
+
message: "Bericht aan elke run",
|
|
5122
|
+
conflict: "Terwijl een run bezig is",
|
|
5123
|
+
"debounce-seconds": "Wachten op meer gebeurtenissen",
|
|
5124
|
+
"minimum-role": "Rol van de persoon die vraagt",
|
|
5125
|
+
"asker-policy": "Policy van de persoon die vraagt",
|
|
5126
|
+
routes: "Routes",
|
|
5127
|
+
"proposal-role": "Rol voordat hij voorstelt",
|
|
5128
|
+
"proposal-policy": "Goedkeuringsbeleid van zijn voorstellen",
|
|
5129
|
+
limits: "Limieten",
|
|
5130
|
+
"allow-requests": "Verzoeken",
|
|
5131
|
+
"expose-to-mcp": "MCP-clients",
|
|
5132
|
+
sources: "Agents die mogen overdragen",
|
|
5133
|
+
"notify-source": "Laat de bron weten hoe het afliep",
|
|
5134
|
+
"max-per-subject-per-day": "Overdrachten per bron en object per dag",
|
|
5135
|
+
value: "Waarde"
|
|
5136
|
+
},
|
|
5137
|
+
"reset-locked": "Pakket {{package}} vergrendelt velden van de definitie. Ontkoppel ze eerst om de agent terug te zetten."
|
|
4305
5138
|
}
|
|
4306
5139
|
},
|
|
4307
5140
|
"page-context": {
|
|
@@ -4438,6 +5271,10 @@ var nl = {
|
|
|
4438
5271
|
"re-execute": "Opnieuw uitvoeren",
|
|
4439
5272
|
"mark-resolved": "Als afgehandeld markeren",
|
|
4440
5273
|
"unknown-hint": "De uitvoering stopte zonder bekende uitkomst. Controleer of het gebeurd is voordat je het opnieuw uitvoert.",
|
|
5274
|
+
"hand-to-application": "Opnieuw aan de applicatie geven",
|
|
5275
|
+
"unknown-application-hint": "De applicatie heeft niet bevestigd dat ze dit heeft uitgevoerd. Controleer in de applicatie of het gebeurd is voordat je het opnieuw overdraagt.",
|
|
5276
|
+
"awaiting-application-hint": "De applicatie voert dit goedgekeurde voorstel uit en meldt zich als het klaar is.",
|
|
5277
|
+
"report-due": "Melding verwacht {{date}}",
|
|
4441
5278
|
mode: {
|
|
4442
5279
|
inline: "De run wacht",
|
|
4443
5280
|
deferred: "Later beslissen"
|
|
@@ -4450,6 +5287,7 @@ var nl = {
|
|
|
4450
5287
|
withdrawn: "Ingetrokken",
|
|
4451
5288
|
stale: "Verouderd",
|
|
4452
5289
|
executing: "Wordt uitgevoerd",
|
|
5290
|
+
"awaiting-application": "Bij de applicatie",
|
|
4453
5291
|
executed: "Uitgevoerd",
|
|
4454
5292
|
"execution-failed": "Mislukt",
|
|
4455
5293
|
"execution-unknown": "Uitkomst onbekend",
|
|
@@ -4934,6 +5772,20 @@ class NhAssistantTransport {
|
|
|
4934
5772
|
return () => abort.abort();
|
|
4935
5773
|
});
|
|
4936
5774
|
}
|
|
5775
|
+
/**
|
|
5776
|
+
* A cold request with a JSON body that answers the response's text and headers, for an endpoint that
|
|
5777
|
+
* answers a file with details in a header, such as the export of an agent package. It aborts on
|
|
5778
|
+
* unsubscribe and errors as `json` does: with the code and field errors of a refused request's error
|
|
5779
|
+
* body, the endpoint's status mapping without one, and `assistant-network` when the request did not
|
|
5780
|
+
* reach the server.
|
|
5781
|
+
*/
|
|
5782
|
+
file(method, path, body, accept, statusCodes = {}) {
|
|
5783
|
+
return new Observable(subscriber => {
|
|
5784
|
+
const abort = new AbortController();
|
|
5785
|
+
void this.executeFile(method, path, body, accept, statusCodes, abort.signal, subscriber);
|
|
5786
|
+
return () => abort.abort();
|
|
5787
|
+
});
|
|
5788
|
+
}
|
|
4937
5789
|
async fetch(method, path, accept, body, signal) {
|
|
4938
5790
|
const init = await this.createInit(method, accept, body, signal);
|
|
4939
5791
|
return this.fetchFn(this.url(path), init);
|
|
@@ -5029,6 +5881,33 @@ class NhAssistantTransport {
|
|
|
5029
5881
|
}
|
|
5030
5882
|
return { code: statusCodes[response.status] ?? nhAssistantCodeForStatus(response.status), fieldErrors };
|
|
5031
5883
|
}
|
|
5884
|
+
async executeFile(method, path, body, accept, statusCodes, signal, subscriber) {
|
|
5885
|
+
let response;
|
|
5886
|
+
try {
|
|
5887
|
+
response = await this.fetch(method, path, accept, body, signal);
|
|
5888
|
+
}
|
|
5889
|
+
catch {
|
|
5890
|
+
if (!signal.aborted) {
|
|
5891
|
+
subscriber.error(createApiError(0, nhAssistantCodeForStatus(0)));
|
|
5892
|
+
}
|
|
5893
|
+
return;
|
|
5894
|
+
}
|
|
5895
|
+
if (!response.ok) {
|
|
5896
|
+
const failure = await this.failure(response, statusCodes);
|
|
5897
|
+
subscriber.error(createApiError(response.status, failure.code, failure.fieldErrors));
|
|
5898
|
+
return;
|
|
5899
|
+
}
|
|
5900
|
+
try {
|
|
5901
|
+
const text = await response.text();
|
|
5902
|
+
subscriber.next({ text, headers: response.headers });
|
|
5903
|
+
subscriber.complete();
|
|
5904
|
+
}
|
|
5905
|
+
catch {
|
|
5906
|
+
if (!signal.aborted) {
|
|
5907
|
+
subscriber.error(createApiError(response.status, NhAssistantClientErrorCodes.streamInterrupted));
|
|
5908
|
+
}
|
|
5909
|
+
}
|
|
5910
|
+
}
|
|
5032
5911
|
async executeJson(method, path, body, statusCodes, signal, subscriber) {
|
|
5033
5912
|
let response;
|
|
5034
5913
|
try {
|
|
@@ -5378,6 +6257,8 @@ const adminStatusCodes = {
|
|
|
5378
6257
|
const maxAccountIds = 50;
|
|
5379
6258
|
/** The longest account id the server reads; a longer id names no account. */
|
|
5380
6259
|
const maxAccountIdLength = 256;
|
|
6260
|
+
/** The header of the agent package export that lists the references to agents outside the selection. */
|
|
6261
|
+
const packageWarningsHeader = 'X-NewHeap-Package-Warnings';
|
|
5381
6262
|
/**
|
|
5382
6263
|
* Client for the assistant administration endpoints (`admin/*`). The server requires the
|
|
5383
6264
|
* access policy and the admin policy; show the administration only when
|
|
@@ -5468,6 +6349,29 @@ class NhAssistantAdminApiService {
|
|
|
5468
6349
|
setAgentGroups(agentId, groups) {
|
|
5469
6350
|
return this.request('PUT', `admin/agents/${encodeURIComponent(agentId)}/groups`, { groups });
|
|
5470
6351
|
}
|
|
6352
|
+
/**
|
|
6353
|
+
* Every entry of agent metadata the application registers, with the agent's value in effect, where
|
|
6354
|
+
* it comes from and whether it changes here (`GET admin/agents/{id}/metadata`).
|
|
6355
|
+
*/
|
|
6356
|
+
getAgentMetadata(agentId) {
|
|
6357
|
+
return this.request('GET', `${agentPath(agentId)}/metadata`);
|
|
6358
|
+
}
|
|
6359
|
+
/**
|
|
6360
|
+
* Saves the agent's value of one metadata entry after the checks in code: field errors `value` or
|
|
6361
|
+
* `value.<field>`. For an agent created here it makes the agent's next version (`expectedVersion` is
|
|
6362
|
+
* the agent's version); for an agent in code only an editable entry changes, as an override with a
|
|
6363
|
+
* version of its own (`assistant-metadata-read-only` otherwise).
|
|
6364
|
+
*/
|
|
6365
|
+
saveAgentMetadata(agentId, name, request) {
|
|
6366
|
+
return this.request('PUT', metadataPath(agentId, name), request);
|
|
6367
|
+
}
|
|
6368
|
+
/**
|
|
6369
|
+
* Removes the agent's stored value of one metadata entry, so an agent in code uses its value in code
|
|
6370
|
+
* again; answers the entry as it is now.
|
|
6371
|
+
*/
|
|
6372
|
+
removeAgentMetadata(agentId, name, expectedVersion) {
|
|
6373
|
+
return this.request('DELETE', withQuery$1(metadataPath(agentId, name), { expectedVersion }));
|
|
6374
|
+
}
|
|
5471
6375
|
/** Deletes an admin agent. Code agents cannot be deleted; stop them instead. */
|
|
5472
6376
|
deleteAgent(agentId) {
|
|
5473
6377
|
return this.request('DELETE', `admin/agents/${encodeURIComponent(agentId)}`);
|
|
@@ -5591,6 +6495,21 @@ class NhAssistantAdminApiService {
|
|
|
5591
6495
|
getRunCatalog() {
|
|
5592
6496
|
return this.request('GET', 'admin/run-catalog');
|
|
5593
6497
|
}
|
|
6498
|
+
/**
|
|
6499
|
+
* The application's assets an administrator may choose as instructions, without their content
|
|
6500
|
+
* (`GET admin/instruction-assets`). Fails with `assistant-instructions-asset-unavailable` when the
|
|
6501
|
+
* application's source fails.
|
|
6502
|
+
*/
|
|
6503
|
+
listInstructionAssets() {
|
|
6504
|
+
return this.request('GET', 'admin/instruction-assets');
|
|
6505
|
+
}
|
|
6506
|
+
/**
|
|
6507
|
+
* The text of one asset, read-only, with the hash a reference stores. Fails with
|
|
6508
|
+
* `assistant-instructions-asset-not-found` for an asset or version the application does not have.
|
|
6509
|
+
*/
|
|
6510
|
+
getInstructionAsset(assetId, version) {
|
|
6511
|
+
return this.request('GET', `admin/instruction-assets/${encodeURIComponent(assetId)}/versions/${encodeURIComponent(String(version))}`);
|
|
6512
|
+
}
|
|
5594
6513
|
/**
|
|
5595
6514
|
* Accounts whose name or e-mail address contains `query` (2 to 100 characters), at most `limit`.
|
|
5596
6515
|
* Fails with `assistant-account-search-unavailable` when the application offers no search; the
|
|
@@ -5641,7 +6560,10 @@ class NhAssistantAdminApiService {
|
|
|
5641
6560
|
getAgentRuns(agentId, filter = {}) {
|
|
5642
6561
|
return this.request('GET', withQuery$1(`${agentPath(agentId)}/runs`, filter));
|
|
5643
6562
|
}
|
|
5644
|
-
/**
|
|
6563
|
+
/**
|
|
6564
|
+
* Removes the run settings; while data skills, triggers, consultations or hand-offs defined as data
|
|
6565
|
+
* belong to the agent, `assistant-run-settings-in-use`.
|
|
6566
|
+
*/
|
|
5645
6567
|
removeRunSettings(agentId, removal = {}) {
|
|
5646
6568
|
return this.request('DELETE', withQuery$1(`${agentPath(agentId)}/run-settings`, removal));
|
|
5647
6569
|
}
|
|
@@ -5672,10 +6594,30 @@ class NhAssistantAdminApiService {
|
|
|
5672
6594
|
compareSkillCandidate(agentId, skillId, filter = {}) {
|
|
5673
6595
|
return this.request('GET', withQuery$1(`${skillPath(agentId, skillId)}/candidate/comparison`, filter));
|
|
5674
6596
|
}
|
|
5675
|
-
/**
|
|
6597
|
+
/**
|
|
6598
|
+
* Adds a trigger defined as data, which starts in shadow, or stores its next version: with `apply`
|
|
6599
|
+
* `live` (default) it takes effect at once in the trigger's mode; with `shadow` it becomes the
|
|
6600
|
+
* candidate that fires next to the live version until it is promoted or discarded.
|
|
6601
|
+
*/
|
|
5676
6602
|
saveDataTrigger(agentId, triggerId, request) {
|
|
5677
6603
|
return this.request('PUT', triggerPath(agentId, triggerId), request);
|
|
5678
6604
|
}
|
|
6605
|
+
/** Every version of a trigger defined as data, newest first, with its definition. */
|
|
6606
|
+
getDataTriggerVersions(agentId, triggerId) {
|
|
6607
|
+
return this.request('GET', `${triggerPath(agentId, triggerId)}/versions`);
|
|
6608
|
+
}
|
|
6609
|
+
/** Makes the candidate the live version of its trigger, in the trigger's mode. */
|
|
6610
|
+
promoteTriggerCandidate(agentId, triggerId, request) {
|
|
6611
|
+
return this.request('POST', `${triggerPath(agentId, triggerId)}/candidate/promote`, request);
|
|
6612
|
+
}
|
|
6613
|
+
/** Discards the candidate of a trigger; it stays as history and fires no more. */
|
|
6614
|
+
discardTriggerCandidate(agentId, triggerId, request) {
|
|
6615
|
+
return this.request('POST', `${triggerPath(agentId, triggerId)}/candidate/discard`, request);
|
|
6616
|
+
}
|
|
6617
|
+
/** Compares the trigger's candidate with its live version on the runs they started in the period. */
|
|
6618
|
+
compareTriggerCandidate(agentId, triggerId, filter = {}) {
|
|
6619
|
+
return this.request('GET', withQuery$1(`${triggerPath(agentId, triggerId)}/candidate/comparison`, filter));
|
|
6620
|
+
}
|
|
5679
6621
|
removeDataTrigger(agentId, triggerId, removal = {}) {
|
|
5680
6622
|
return this.request('DELETE', withQuery$1(triggerPath(agentId, triggerId), removal));
|
|
5681
6623
|
}
|
|
@@ -5696,6 +6638,14 @@ class NhAssistantAdminApiService {
|
|
|
5696
6638
|
saveDataConsultation(agentId, subjectType, request) {
|
|
5697
6639
|
return this.request('PUT', consultationPath(agentId, subjectType), request);
|
|
5698
6640
|
}
|
|
6641
|
+
/**
|
|
6642
|
+
* Switches a consultation defined as data on or off, without a new version. Off, it is not offered,
|
|
6643
|
+
* while its recorded proposals can still be decided. Fails with `assistant-consultation-not-found`
|
|
6644
|
+
* without one and with `assistant-consultation-in-code` for a consultation in code.
|
|
6645
|
+
*/
|
|
6646
|
+
setDataConsultationState(agentId, subjectType, request) {
|
|
6647
|
+
return this.request('POST', `${consultationPath(agentId, subjectType)}/state`, request);
|
|
6648
|
+
}
|
|
5699
6649
|
/**
|
|
5700
6650
|
* Removes a consultation defined as data: its tools disappear, while its recorded proposals can still
|
|
5701
6651
|
* be decided. Fails with `assistant-consultation-not-found` without one and with
|
|
@@ -5704,6 +6654,91 @@ class NhAssistantAdminApiService {
|
|
|
5704
6654
|
removeDataConsultation(agentId, subjectType, removal = {}) {
|
|
5705
6655
|
return this.request('DELETE', withQuery$1(consultationPath(agentId, subjectType), removal));
|
|
5706
6656
|
}
|
|
6657
|
+
/**
|
|
6658
|
+
* The hand-offs the agent accepts, in code and as data with their problems, and what the ceiling in
|
|
6659
|
+
* code (`UseHandOffsAsData`) lets administrators add; `ceiling` is `null` when it may accept none.
|
|
6660
|
+
*/
|
|
6661
|
+
getAgentHandOffs(agentId) {
|
|
6662
|
+
return this.request('GET', `${agentPath(agentId)}/hand-offs`);
|
|
6663
|
+
}
|
|
6664
|
+
/**
|
|
6665
|
+
* Adds or changes the hand-off defined as data that the agent accepts about one subject type, within
|
|
6666
|
+
* the ceiling: in effect once saved, as one in code. An agent the ceiling connects to no agent fails
|
|
6667
|
+
* with `assistant-handoffs-not-allowed`, a type it accepts in code with `assistant-handoff-in-code`,
|
|
6668
|
+
* an agent without run configuration with `assistant-agent-not-configured`, more than the ceiling's
|
|
6669
|
+
* `maxHandOffs` with `assistant-configuration-limit`, a stale `expectedVersion` with
|
|
6670
|
+
* `assistant-version-conflict` and invalid input with field errors, such as `sources: not-allowed`
|
|
6671
|
+
* for a source outside the ceiling.
|
|
6672
|
+
*/
|
|
6673
|
+
saveDataHandOff(agentId, subjectType, request) {
|
|
6674
|
+
return this.request('PUT', handOffPath(agentId, subjectType), request);
|
|
6675
|
+
}
|
|
6676
|
+
/**
|
|
6677
|
+
* Removes a hand-off defined as data; its tool disappears from the sources' next turns. Fails with
|
|
6678
|
+
* `assistant-handoff-not-found` without one and with `assistant-handoff-in-code` for one in code.
|
|
6679
|
+
*/
|
|
6680
|
+
removeDataHandOff(agentId, subjectType, removal = {}) {
|
|
6681
|
+
return this.request('DELETE', withQuery$1(handOffPath(agentId, subjectType), removal));
|
|
6682
|
+
}
|
|
6683
|
+
/**
|
|
6684
|
+
* The agent's shadow variants, in code and created as data, and whether administrators may create
|
|
6685
|
+
* more (`UseShadowVariantsAsData`). Create a data variant with `createAgent` and `shadowOf`.
|
|
6686
|
+
*/
|
|
6687
|
+
getShadowVariants(agentId) {
|
|
6688
|
+
return this.request('GET', `${agentPath(agentId)}/shadow-variants`);
|
|
6689
|
+
}
|
|
6690
|
+
/**
|
|
6691
|
+
* Exports exactly `agentIds` (1 to 20) as one agent package (`POST admin/agent-packages/export`):
|
|
6692
|
+
* agents created here whole, agents in code as an overlay of what data changes on them; never
|
|
6693
|
+
* history, candidates, runs, run state, shadow overrides, MCP servers, the technical account or
|
|
6694
|
+
* secrets. The options set the package id, version and locks; left out, the id of the package the
|
|
6695
|
+
* first agent is linked to and its next version, otherwise the first agent's id and 1. Answers the
|
|
6696
|
+
* package, its JSON exactly as the server wrote it for the download, and every reference to an agent
|
|
6697
|
+
* outside the selection, which must exist where the package is imported. Fails with
|
|
6698
|
+
* `assistant-agent-not-found` for an unknown agent and with field errors for invalid options; the
|
|
6699
|
+
* server audits the export.
|
|
6700
|
+
*/
|
|
6701
|
+
exportAgentPackage(agentIds, options = {}) {
|
|
6702
|
+
return this.transport.file('POST', 'admin/agent-packages/export', { agentIds: [...agentIds], options }, 'application/json', adminStatusCodes).pipe(map(file => {
|
|
6703
|
+
let agentPackage;
|
|
6704
|
+
try {
|
|
6705
|
+
agentPackage = JSON.parse(file.text);
|
|
6706
|
+
}
|
|
6707
|
+
catch {
|
|
6708
|
+
throw new NhAssistantApiError(200, NhAssistantClientErrorCodes.invalidResponse, nhAssistantErrorMessageKey(NhAssistantClientErrorCodes.invalidResponse));
|
|
6709
|
+
}
|
|
6710
|
+
return { package: agentPackage, json: file.text, warnings: packageWarnings(file.headers.get(packageWarningsHeader)) };
|
|
6711
|
+
}));
|
|
6712
|
+
}
|
|
6713
|
+
/**
|
|
6714
|
+
* What importing the package would do, per agent and part (`POST admin/agent-packages/preview`):
|
|
6715
|
+
* `created`, `changed`, `unchanged`, `kept-local`, `left-behind` or `refused` with the field
|
|
6716
|
+
* errors of the save validators, after one check of the whole package against this host as it would
|
|
6717
|
+
* be after the import. Changes nothing. The server reads the package strictly: a package it does not
|
|
6718
|
+
* read fails with `assistant-package-format-unsupported`, one above 1 MB or 20 agents with
|
|
6719
|
+
* `assistant-package-too-large`.
|
|
6720
|
+
*/
|
|
6721
|
+
previewAgentPackageImport(agentPackage, options = {}) {
|
|
6722
|
+
return this.request('POST', 'admin/agent-packages/preview', { package: agentPackage, options });
|
|
6723
|
+
}
|
|
6724
|
+
/**
|
|
6725
|
+
* Imports the package in one transaction (`POST admin/agent-packages/import`): every agent and part
|
|
6726
|
+
* of it, or nothing. Fails as `previewAgentPackageImport` does, and with `assistant-package-refused`
|
|
6727
|
+
* and the field error `parts: invalid` when the check refuses a part; preview again to see which part
|
|
6728
|
+
* and why. Every part is audited as its save.
|
|
6729
|
+
*/
|
|
6730
|
+
importAgentPackage(agentPackage, options = {}) {
|
|
6731
|
+
return this.request('POST', 'admin/agent-packages/import', { package: agentPackage, options });
|
|
6732
|
+
}
|
|
6733
|
+
/**
|
|
6734
|
+
* Unlinks one part of the agent, or without `part` the whole agent, from its package
|
|
6735
|
+
* (`POST admin/agents/{id}/package/unlink`): its locks no longer hold and the next upgrade keeps it as
|
|
6736
|
+
* `kept-local` unless the import relinks it. Fails with `assistant-package-not-linked` for an agent
|
|
6737
|
+
* or part without a link and with the field error `part: invalid` for an unknown part key.
|
|
6738
|
+
*/
|
|
6739
|
+
unlinkAgentPackage(agentId, request = {}) {
|
|
6740
|
+
return this.request('POST', `${agentPath(agentId)}/package/unlink`, request);
|
|
6741
|
+
}
|
|
5707
6742
|
download(path) {
|
|
5708
6743
|
return this.transport.download(path, 'application/x-ndjson', adminStatusCodes);
|
|
5709
6744
|
}
|
|
@@ -5734,6 +6769,43 @@ function triggerPath(agentId, triggerId) {
|
|
|
5734
6769
|
function consultationPath(agentId, subjectType) {
|
|
5735
6770
|
return `${agentPath(agentId)}/consultations/${encodeURIComponent(subjectType)}`;
|
|
5736
6771
|
}
|
|
6772
|
+
function handOffPath(agentId, subjectType) {
|
|
6773
|
+
return `${agentPath(agentId)}/hand-offs/${encodeURIComponent(subjectType)}`;
|
|
6774
|
+
}
|
|
6775
|
+
function metadataPath(agentId, name) {
|
|
6776
|
+
return `${agentPath(agentId)}/metadata/${encodeURIComponent(name)}`;
|
|
6777
|
+
}
|
|
6778
|
+
/**
|
|
6779
|
+
* The references to agents outside an exported selection, from the export's header: a JSON array,
|
|
6780
|
+
* of which only entries with a safe code and string ids are kept. Without the header, none.
|
|
6781
|
+
*/
|
|
6782
|
+
function packageWarnings(header) {
|
|
6783
|
+
if (!header) {
|
|
6784
|
+
return [];
|
|
6785
|
+
}
|
|
6786
|
+
let items;
|
|
6787
|
+
try {
|
|
6788
|
+
items = JSON.parse(header);
|
|
6789
|
+
}
|
|
6790
|
+
catch {
|
|
6791
|
+
return [];
|
|
6792
|
+
}
|
|
6793
|
+
if (!Array.isArray(items)) {
|
|
6794
|
+
return [];
|
|
6795
|
+
}
|
|
6796
|
+
const warnings = [];
|
|
6797
|
+
for (const item of items) {
|
|
6798
|
+
const record = item && typeof item === 'object' ? item : null;
|
|
6799
|
+
if (record
|
|
6800
|
+
&& typeof record['agentId'] === 'string'
|
|
6801
|
+
&& typeof record['part'] === 'string'
|
|
6802
|
+
&& typeof record['referencedAgentId'] === 'string'
|
|
6803
|
+
&& nhAssistantIsSafeCode(record['code'])) {
|
|
6804
|
+
warnings.push({ agentId: record['agentId'], part: record['part'], code: record['code'], referencedAgentId: record['referencedAgentId'] });
|
|
6805
|
+
}
|
|
6806
|
+
}
|
|
6807
|
+
return warnings;
|
|
6808
|
+
}
|
|
5737
6809
|
/** Appends the filter values that are set as query parameters. */
|
|
5738
6810
|
function withQuery$1(path, filter) {
|
|
5739
6811
|
const query = new URLSearchParams();
|
|
@@ -6568,18 +7640,32 @@ class NhAssistantPushService {
|
|
|
6568
7640
|
this.subscribedState = signal(false, ...(ngDevMode ? [{ debugName: "subscribedState" }] : []));
|
|
6569
7641
|
this.busyState = signal(false, ...(ngDevMode ? [{ debugName: "busyState" }] : []));
|
|
6570
7642
|
this.openSubject = new Subject();
|
|
7643
|
+
this.openRunSubject = new Subject();
|
|
6571
7644
|
this.revision = 0;
|
|
6572
7645
|
this.onWorkerMessage = (event) => {
|
|
6573
7646
|
const data = event.data;
|
|
6574
7647
|
if (data?.type === openConversationMessage && typeof data.conversationId === 'string') {
|
|
6575
|
-
this.
|
|
7648
|
+
this.openNotification(data.conversationId, typeof data.runId === 'string' ? data.runId : undefined);
|
|
6576
7649
|
}
|
|
6577
7650
|
};
|
|
6578
7651
|
/** The caller's server-side choice, or `null` before it was loaded. */
|
|
6579
7652
|
this.settings = this.settingsState.asReadonly();
|
|
6580
7653
|
this.busy = this.busyState.asReadonly();
|
|
6581
|
-
/**
|
|
7654
|
+
/**
|
|
7655
|
+
* Conversations a clicked notification asks to open; the assistant panel opens them. A
|
|
7656
|
+
* notification about the proposals of a run goes to `openRun$` instead while the application
|
|
7657
|
+
* subscribes to it.
|
|
7658
|
+
*/
|
|
6582
7659
|
this.openConversation$ = this.openSubject.asObservable();
|
|
7660
|
+
/**
|
|
7661
|
+
* Runs whose proposals a clicked notification is about, for the application to open its inbox of
|
|
7662
|
+
* the run, for example `nh-assistant-agent-inbox` with `[runId]`, which lists every proposal of the
|
|
7663
|
+
* run the person may decide. While the application subscribes, such a click emits the run here
|
|
7664
|
+
* instead of opening the conversation in the panel; without a subscriber it opens the conversation
|
|
7665
|
+
* as before. Subscribe in the application shell, so a notification that opens a new window finds
|
|
7666
|
+
* the subscription.
|
|
7667
|
+
*/
|
|
7668
|
+
this.openRun$ = this.openRunSubject.asObservable();
|
|
6583
7669
|
this.state = computed(() => {
|
|
6584
7670
|
const settings = this.settingsState();
|
|
6585
7671
|
if (!settings?.pushAvailable || !this.isSupported()) {
|
|
@@ -6599,12 +7685,25 @@ class NhAssistantPushService {
|
|
|
6599
7685
|
navigator.serviceWorker.removeEventListener('message', this.onWorkerMessage);
|
|
6600
7686
|
}
|
|
6601
7687
|
this.openSubject.complete();
|
|
7688
|
+
this.openRunSubject.complete();
|
|
6602
7689
|
});
|
|
6603
7690
|
if (this.browser && this.isSupported()) {
|
|
6604
7691
|
navigator.serviceWorker.addEventListener('message', this.onWorkerMessage);
|
|
6605
7692
|
navigator.serviceWorker.startMessages();
|
|
6606
7693
|
}
|
|
6607
7694
|
}
|
|
7695
|
+
/**
|
|
7696
|
+
* Opens what a clicked notification is about: the run through `openRun$` when the notification
|
|
7697
|
+
* names one and the application subscribes, otherwise the conversation through
|
|
7698
|
+
* `openConversation$`. The bundled worker and the panel's notification fragments call it.
|
|
7699
|
+
*/
|
|
7700
|
+
openNotification(conversationId, runId) {
|
|
7701
|
+
if (runId && this.openRunSubject.observed) {
|
|
7702
|
+
this.openRunSubject.next(runId);
|
|
7703
|
+
return;
|
|
7704
|
+
}
|
|
7705
|
+
this.openSubject.next(conversationId);
|
|
7706
|
+
}
|
|
6608
7707
|
/**
|
|
6609
7708
|
* Loads the user's choice and, when permission was granted before, renews this browser's
|
|
6610
7709
|
* subscription, which also moves it to the current user and to a rotated server key.
|
|
@@ -9877,6 +10976,7 @@ const NH_ASSISTANT_SERVER_ERROR_CODES = [
|
|
|
9877
10976
|
'assistant-run-settings-in-code',
|
|
9878
10977
|
'assistant-run-settings-in-use',
|
|
9879
10978
|
'assistant-skill-candidate-not-found',
|
|
10979
|
+
'assistant-trigger-candidate-not-found',
|
|
9880
10980
|
'assistant-skill-version-gone',
|
|
9881
10981
|
'assistant-account-search-unavailable',
|
|
9882
10982
|
'assistant-handoff-unavailable',
|
|
@@ -9933,6 +11033,7 @@ const NH_ASSISTANT_SERVER_ERROR_CODES = [
|
|
|
9933
11033
|
'assistant-consult-timeout',
|
|
9934
11034
|
'assistant-consult-failed',
|
|
9935
11035
|
'assistant-consult-read-only',
|
|
11036
|
+
'assistant-consult-tool-not-selected',
|
|
9936
11037
|
'assistant-consult-proposal-refused',
|
|
9937
11038
|
'assistant-consult-asker-decides',
|
|
9938
11039
|
'assistant-consult-route-not-allowed',
|
|
@@ -9941,6 +11042,17 @@ const NH_ASSISTANT_SERVER_ERROR_CODES = [
|
|
|
9941
11042
|
'assistant-consultation-in-code',
|
|
9942
11043
|
'assistant-consultation-not-found',
|
|
9943
11044
|
'assistant-consultations-not-allowed',
|
|
11045
|
+
// Hand-offs defined as data and shadow variants created in the administration
|
|
11046
|
+
'assistant-handoffs-not-allowed',
|
|
11047
|
+
'assistant-handoff-in-code',
|
|
11048
|
+
'assistant-handoff-not-found',
|
|
11049
|
+
'assistant-shadow-variants-not-allowed',
|
|
11050
|
+
// Agent packages: their format and the parts they lock
|
|
11051
|
+
'assistant-package-format-unsupported',
|
|
11052
|
+
'assistant-package-too-large',
|
|
11053
|
+
'assistant-package-refused',
|
|
11054
|
+
'assistant-package-locked',
|
|
11055
|
+
'assistant-package-not-linked',
|
|
9944
11056
|
// Preferences and administration
|
|
9945
11057
|
'assistant-validation',
|
|
9946
11058
|
'assistant-instructions-too-long',
|
|
@@ -9951,6 +11063,13 @@ const NH_ASSISTANT_SERVER_ERROR_CODES = [
|
|
|
9951
11063
|
'assistant-agent-exists',
|
|
9952
11064
|
'assistant-code-agent-not-deletable',
|
|
9953
11065
|
'assistant-agent-not-code',
|
|
11066
|
+
// Agent metadata registered by the application
|
|
11067
|
+
'assistant-metadata-entry-not-found',
|
|
11068
|
+
'assistant-metadata-read-only',
|
|
11069
|
+
// Instructions from the application's text assets
|
|
11070
|
+
'assistant-instructions-asset-not-found',
|
|
11071
|
+
'assistant-instructions-asset-unavailable',
|
|
11072
|
+
'assistant-agent-instructions-unavailable',
|
|
9954
11073
|
'assistant-mcp-server-not-found',
|
|
9955
11074
|
'assistant-mcp-server-exists',
|
|
9956
11075
|
'assistant-mcp-tool-not-found',
|
|
@@ -9995,6 +11114,12 @@ const NH_ASSISTANT_ERROR_CODES = [
|
|
|
9995
11114
|
const NH_ASSISTANT_JOIN_FRAGMENT = 'nh-assistant-join';
|
|
9996
11115
|
/** Fragment a clicked notification opens: `#nh-assistant-conversation=<id>`. */
|
|
9997
11116
|
const NH_ASSISTANT_CONVERSATION_FRAGMENT = 'nh-assistant-conversation';
|
|
11117
|
+
/**
|
|
11118
|
+
* Fragment a clicked notification about the proposals of a run opens:
|
|
11119
|
+
* `#nh-assistant-run=<runId>.<conversationId>`. The run goes to `NhAssistantPushService.openRun$`
|
|
11120
|
+
* while the application subscribes; otherwise the panel opens the conversation.
|
|
11121
|
+
*/
|
|
11122
|
+
const NH_ASSISTANT_RUN_FRAGMENT = 'nh-assistant-run';
|
|
9998
11123
|
/** Builds the default invitation link: the current page with the join fragment. */
|
|
9999
11124
|
function nhAssistantShareLink(conversationId, token) {
|
|
10000
11125
|
const location = globalThis.location;
|
|
@@ -10032,7 +11157,8 @@ const builtInPaths = {
|
|
|
10032
11157
|
bell: 'M6 16V11a6 6 0 0 1 12 0v5l2 2H4zM10 20a2 2 0 0 0 4 0',
|
|
10033
11158
|
leave: 'M10 4H5v16h5M14 8l4 4-4 4M18 12H9',
|
|
10034
11159
|
attach: 'M19 11.5l-7.6 7.6a4.6 4.6 0 0 1-6.5-6.5l8.3-8.3a3 3 0 0 1 4.3 4.3l-8.2 8.2a1.5 1.5 0 0 1-2.1-2.1l7.4-7.4',
|
|
10035
|
-
file: 'M6 3h8l4 4v14H6zM14 3v4h4'
|
|
11160
|
+
file: 'M6 3h8l4 4v14H6zM14 3v4h4',
|
|
11161
|
+
lock: 'M6 11h12v9H6zM8.5 11V8a3.5 3.5 0 0 1 7 0v3M12 15v2'
|
|
10036
11162
|
};
|
|
10037
11163
|
/** Decorative icon. The surrounding control provides the accessible name. */
|
|
10038
11164
|
class NhAssistantIconComponent {
|
|
@@ -11474,7 +12600,7 @@ class NhAssistantApprovalCardComponent {
|
|
|
11474
12600
|
/** The application's explanation of a stale proposal, such as who already did the work. */
|
|
11475
12601
|
this.staleExplanation = computed(() => this.effectiveStatus() === 'stale' ? this.approval().staleExplanation ?? null : null, ...(ngDevMode ? [{ debugName: "staleExplanation" }] : []));
|
|
11476
12602
|
this.actionable = computed(() => this.effectiveStatus() === 'pending', ...(ngDevMode ? [{ debugName: "actionable" }] : []));
|
|
11477
|
-
this.succeeded = computed(() => ['approved', 'executing', 'executed', 'resolved'].includes(this.effectiveStatus()), ...(ngDevMode ? [{ debugName: "succeeded" }] : []));
|
|
12603
|
+
this.succeeded = computed(() => ['approved', 'executing', 'awaiting-application', 'executed', 'resolved'].includes(this.effectiveStatus()), ...(ngDevMode ? [{ debugName: "succeeded" }] : []));
|
|
11478
12604
|
this.disabled = computed(() => !this.actionable() || !this.canDecide() || this.deciding() || this.submitted(), ...(ngDevMode ? [{ debugName: "disabled" }] : []));
|
|
11479
12605
|
/** The route at the subject the pending proposal may be left for; `null` when it can only be approved or rejected. */
|
|
11480
12606
|
this.leaveRoute = computed(() => this.actionable() ? this.consultation()?.leaveRoute ?? null : null, ...(ngDevMode ? [{ debugName: "leaveRoute" }] : []));
|
|
@@ -12126,7 +13252,9 @@ class NhAssistantPanelComponent {
|
|
|
12126
13252
|
}
|
|
12127
13253
|
/**
|
|
12128
13254
|
* Opens the panel for an invitation link or a clicked notification in the URL fragment and
|
|
12129
|
-
* removes the fragment, so a reload or a shared screenshot does not reuse the token.
|
|
13255
|
+
* removes the fragment, so a reload or a shared screenshot does not reuse the token. A clicked
|
|
13256
|
+
* notification about the proposals of a run goes to `NhAssistantPushService.openRun$` while the
|
|
13257
|
+
* application subscribes, and otherwise opens its conversation.
|
|
12130
13258
|
*/
|
|
12131
13259
|
openFromLocation() {
|
|
12132
13260
|
const location = globalThis.location;
|
|
@@ -12134,7 +13262,7 @@ class NhAssistantPanelComponent {
|
|
|
12134
13262
|
const separatorIndex = hash.indexOf('=');
|
|
12135
13263
|
const name = separatorIndex < 0 ? hash : hash.slice(0, separatorIndex);
|
|
12136
13264
|
const value = separatorIndex < 0 ? '' : hash.slice(separatorIndex + 1);
|
|
12137
|
-
if (!value || (name !== NH_ASSISTANT_JOIN_FRAGMENT && name !== NH_ASSISTANT_CONVERSATION_FRAGMENT)) {
|
|
13265
|
+
if (!value || (name !== NH_ASSISTANT_JOIN_FRAGMENT && name !== NH_ASSISTANT_CONVERSATION_FRAGMENT && name !== NH_ASSISTANT_RUN_FRAGMENT)) {
|
|
12138
13266
|
return;
|
|
12139
13267
|
}
|
|
12140
13268
|
globalThis.history?.replaceState(globalThis.history.state, '', location.pathname + location.search);
|
|
@@ -12146,6 +13274,10 @@ class NhAssistantPanelComponent {
|
|
|
12146
13274
|
if (tokenIndex <= 0) {
|
|
12147
13275
|
return;
|
|
12148
13276
|
}
|
|
13277
|
+
if (name === NH_ASSISTANT_RUN_FRAGMENT) {
|
|
13278
|
+
this.push.openNotification(decodeURIComponent(value.slice(tokenIndex + 1)), decodeURIComponent(value.slice(0, tokenIndex)));
|
|
13279
|
+
return;
|
|
13280
|
+
}
|
|
12149
13281
|
const conversationId = decodeURIComponent(value.slice(0, tokenIndex));
|
|
12150
13282
|
const token = decodeURIComponent(value.slice(tokenIndex + 1));
|
|
12151
13283
|
this.panel.open();
|
|
@@ -12511,5 +13643,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.34", ngImpo
|
|
|
12511
13643
|
* Generated bundle index. Do not edit.
|
|
12512
13644
|
*/
|
|
12513
13645
|
|
|
12514
|
-
export { NH_ASSISTANT_ACCESS_POLICY, NH_ASSISTANT_CONFIG, NH_ASSISTANT_CONVERSATION_FRAGMENT, NH_ASSISTANT_ERROR_CODES, 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_MCP_AUTHORIZATION_MESSAGE, NH_ASSISTANT_MCP_AUTHORIZATION_WINDOW, NH_ASSISTANT_MESSAGE_QUEUED_NOTICE_CODE, NH_ASSISTANT_NO_ANSWER_NOTICE_CODE, NH_ASSISTANT_PAGE_CONTEXT_LIMITS, NH_ASSISTANT_PANEL_MOBILE_QUERY, NH_ASSISTANT_PANEL_WIDTH, NH_ASSISTANT_RESULT_PREVIEW_LENGTH, NH_ASSISTANT_RUN_HISTORY_MAX_PAGE, NH_ASSISTANT_RUN_RESULT_MAX_LENGTH, NH_ASSISTANT_SERVER_ERROR_CODES, NH_ASSISTANT_SSE_EVENT_TYPES, NH_ASSISTANT_SUBJECT_SEARCH, NH_ASSISTANT_SYSTEM_GLOBAL_ID, NH_ASSISTANT_SYSTEM_SUBJECT_TYPE, NH_ASSISTANT_TRANSLATIONS, NH_ASSISTANT_UPLOAD, NH_ASSISTANT_UPLOAD_HEADER, NH_ASSISTANT_VIRTUAL_SCROLL_THRESHOLD, NhAssistantActivityComponent, NhAssistantAdminApiService, NhAssistantAgentPickerComponent, NhAssistantAgentRunApiService, NhAssistantAllowAllAccessPolicy, NhAssistantApiError, NhAssistantApiService, NhAssistantApprovalCardComponent, NhAssistantClientErrorCodes, NhAssistantComposerComponent, NhAssistantConnectionRequiredComponent, NhAssistantConversationListComponent, NhAssistantLauncherComponent, NhAssistantLiveService, NhAssistantMcpConnectService, NhAssistantMcpConnectionsComponent, NhAssistantMcpPopupAuthorizationWindow, NhAssistantPanelComponent, NhAssistantPanelService, NhAssistantPreferencesComponent, NhAssistantProposalFeedbackComponent, NhAssistantPushService, NhAssistantShareComponent, NhAssistantSseParser, NhAssistantStore, NhAssistantSubjectBadgeComponent, NhAssistantSubjectSummaryService, NhAssistantThreadComponent, NhAssistantToolCallCardComponent, NhAssistantToolCallGroupComponent, NhAssistantTranslationMerger, applyNhAssistantApprovalDecision, applyNhAssistantConversationChange, applyNhAssistantEvent, applyNhAssistantLiveEvent, describeNhAssistantClientContext, formatNhAssistantCountdown, nhAssistantCodeForStatus, nhAssistantConnectMcp, nhAssistantErrorMessageKey, nhAssistantIsUnread, nhAssistantLatestTurnHasText, nhAssistantMcpAuthorizationFromFragment, nhAssistantShareLink, nhAssistantXhrUpload, normalizeNhAssistantClientContext, provideNhAssistant, toNhAssistantError, NH_ASSISTANT_DASH_CASE as ɵNH_ASSISTANT_DASH_CASE, NhAssistantIconComponent as ɵNhAssistantIconComponent, NhAssistantMarkdownPipe as ɵNhAssistantMarkdownPipe, NhAssistantPickerComponent as ɵNhAssistantPickerComponent, NhAssistantSubjectLinkComponent as ɵNhAssistantSubjectLinkComponent, NhAssistantTranslatePipe as ɵNhAssistantTranslatePipe, nhAssistantCodeKeys as ɵnhAssistantCodeKeys, nhAssistantErrorKeys as ɵnhAssistantErrorKeys, nhAssistantErrorOf as ɵnhAssistantErrorOf, nhAssistantMediaTypeOf as ɵnhAssistantMediaTypeOf, nhAssistantReloadOnAgentWork as ɵnhAssistantReloadOnAgentWork, nhAssistantWatchAgentWork as ɵnhAssistantWatchAgentWork, toNhAssistantError as ɵtoNhAssistantError };
|
|
13646
|
+
export { NH_ASSISTANT_ACCESS_POLICY, NH_ASSISTANT_AGENT_PACKAGE_FORMAT, NH_ASSISTANT_AGENT_PACKAGE_FORMAT_VERSION, NH_ASSISTANT_AGENT_PACKAGE_MAX_AGENTS, NH_ASSISTANT_AGENT_PACKAGE_MAX_BYTES, NH_ASSISTANT_CONFIG, NH_ASSISTANT_CONVERSATION_FRAGMENT, NH_ASSISTANT_ERROR_CODES, 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_MCP_AUTHORIZATION_MESSAGE, NH_ASSISTANT_MCP_AUTHORIZATION_WINDOW, NH_ASSISTANT_MESSAGE_QUEUED_NOTICE_CODE, NH_ASSISTANT_NO_ANSWER_NOTICE_CODE, NH_ASSISTANT_PACKAGE_LOCK_ALL, NH_ASSISTANT_PACKAGE_LOCK_FIELDS, NH_ASSISTANT_PAGE_CONTEXT_LIMITS, NH_ASSISTANT_PANEL_MOBILE_QUERY, NH_ASSISTANT_PANEL_WIDTH, NH_ASSISTANT_RESULT_PREVIEW_LENGTH, NH_ASSISTANT_RUN_FRAGMENT, NH_ASSISTANT_RUN_HISTORY_MAX_PAGE, NH_ASSISTANT_RUN_RESULT_MAX_LENGTH, NH_ASSISTANT_SERVER_ERROR_CODES, NH_ASSISTANT_SSE_EVENT_TYPES, NH_ASSISTANT_SUBJECT_SEARCH, NH_ASSISTANT_SYSTEM_GLOBAL_ID, NH_ASSISTANT_SYSTEM_SUBJECT_TYPE, NH_ASSISTANT_TRANSLATIONS, NH_ASSISTANT_UPLOAD, NH_ASSISTANT_UPLOAD_HEADER, NH_ASSISTANT_VIRTUAL_SCROLL_THRESHOLD, NhAssistantActivityComponent, NhAssistantAdminApiService, NhAssistantAgentPickerComponent, NhAssistantAgentRunApiService, NhAssistantAllowAllAccessPolicy, NhAssistantApiError, NhAssistantApiService, NhAssistantApprovalCardComponent, NhAssistantClientErrorCodes, NhAssistantComposerComponent, NhAssistantConnectionRequiredComponent, NhAssistantConversationListComponent, NhAssistantLauncherComponent, NhAssistantLiveService, NhAssistantMcpConnectService, NhAssistantMcpConnectionsComponent, NhAssistantMcpPopupAuthorizationWindow, NhAssistantPanelComponent, NhAssistantPanelService, NhAssistantPreferencesComponent, NhAssistantProposalFeedbackComponent, NhAssistantPushService, NhAssistantShareComponent, NhAssistantSseParser, NhAssistantStore, NhAssistantSubjectBadgeComponent, NhAssistantSubjectSummaryService, NhAssistantThreadComponent, NhAssistantToolCallCardComponent, NhAssistantToolCallGroupComponent, NhAssistantTranslationMerger, applyNhAssistantApprovalDecision, applyNhAssistantConversationChange, applyNhAssistantEvent, applyNhAssistantLiveEvent, describeNhAssistantClientContext, formatNhAssistantCountdown, nhAssistantCodeForStatus, nhAssistantConnectMcp, nhAssistantErrorMessageKey, nhAssistantIsUnread, nhAssistantLatestTurnHasText, nhAssistantMcpAuthorizationFromFragment, nhAssistantShareLink, nhAssistantXhrUpload, normalizeNhAssistantClientContext, provideNhAssistant, toNhAssistantError, NH_ASSISTANT_DASH_CASE as ɵNH_ASSISTANT_DASH_CASE, NhAssistantIconComponent as ɵNhAssistantIconComponent, NhAssistantMarkdownPipe as ɵNhAssistantMarkdownPipe, NhAssistantPickerComponent as ɵNhAssistantPickerComponent, NhAssistantSubjectLinkComponent as ɵNhAssistantSubjectLinkComponent, NhAssistantTranslatePipe as ɵNhAssistantTranslatePipe, nhAssistantCodeKeys as ɵnhAssistantCodeKeys, nhAssistantErrorKeys as ɵnhAssistantErrorKeys, nhAssistantErrorOf as ɵnhAssistantErrorOf, nhAssistantMediaTypeOf as ɵnhAssistantMediaTypeOf, nhAssistantReloadOnAgentWork as ɵnhAssistantReloadOnAgentWork, nhAssistantWatchAgentWork as ɵnhAssistantWatchAgentWork, toNhAssistantError as ɵtoNhAssistantError };
|
|
12515
13647
|
//# sourceMappingURL=newheap-platform-ai-chat.mjs.map
|