@newheap/platform-ai-chat 0.19.0 → 0.21.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.
@@ -0,0 +1,1738 @@
1
+ {
2
+ "nh-assistant": {
3
+ "admin": {
4
+ "title": "Assistant administration",
5
+ "description": "Manage the application context, the agents and the MCP servers of the assistant. Changes apply from the next turn.",
6
+ "tabs-label": "Administration sections",
7
+ "tabs": {
8
+ "context": "Context",
9
+ "agents": "Agents",
10
+ "mcp-servers": "MCP servers"
11
+ },
12
+ "loading": "Loading",
13
+ "load-failed": "The data could not be loaded.",
14
+ "retry": "Try again",
15
+ "forbidden-title": "No access",
16
+ "forbidden-description": "You need the assistant administration permission to open this page.",
17
+ "saved": "Saved.",
18
+ "cancel": "Cancel",
19
+ "save": "Save",
20
+ "saving": "Saving",
21
+ "edit": "Edit",
22
+ "delete": "Delete",
23
+ "confirm-delete": "Confirm delete",
24
+ "enabled": "Enabled",
25
+ "disabled": "Disabled",
26
+ "enable": "Enable",
27
+ "disable": "Disable",
28
+ "characters": "{{count}} of {{max}} characters",
29
+ "too-long": "The text is too long.",
30
+ "required": "This field is required.",
31
+ "invalid-id": "Use lowercase letters, digits and single dashes.",
32
+ "context": {
33
+ "title": "Application context",
34
+ "description": "Background about the application that every agent receives before its own instructions. It cannot override the assistant's fixed rules. Do not include personal data or secrets.",
35
+ "label": "Context text",
36
+ "version": "Version {{version}}",
37
+ "updated": "Updated {{date}} by {{user}}",
38
+ "updated-unknown": "Updated {{date}}",
39
+ "hash": "Hash",
40
+ "history": "Version history",
41
+ "history-empty": "No earlier versions.",
42
+ "conflict": "Someone saved a newer version. Your text is kept; load the latest version, compare and save again.",
43
+ "reload": "Load latest version"
44
+ },
45
+ "agents": {
46
+ "title": "Agents",
47
+ "description": "Code agents come from the application; you can override or reset them. Agents you create here can be deleted. Pause, stop and resume any agent; its definition stays as it is.",
48
+ "new": "New agent",
49
+ "empty": "No agents yet.",
50
+ "source-code": "Code",
51
+ "source-admin": "Created here",
52
+ "overridden": "Overridden",
53
+ "reset": "Reset to code",
54
+ "confirm-reset": "Confirm reset",
55
+ "reset-keeps-state": "Resetting restores the code definition; the agent stays active, paused or stopped as it is.",
56
+ "version": "Version {{version}}",
57
+ "tool-count": "{{count}} tool selectors",
58
+ "server-count": "{{count}} MCP servers",
59
+ "autonomy": {
60
+ "observe": "Observe",
61
+ "explain": "Explain",
62
+ "propose": "Propose",
63
+ "simulate": "Simulate",
64
+ "execute": "Execute"
65
+ },
66
+ "feedback": "Feedback",
67
+ "evaluation": "Evaluation",
68
+ "state": {
69
+ "active": "Active",
70
+ "paused": "Paused",
71
+ "stopped": "Stopped",
72
+ "configured-off": "Off in configuration",
73
+ "configured-off-hint": "Disabled in the application's code until the next deployment; it cannot be resumed here.",
74
+ "off": "Off",
75
+ "off-hint": "Events, schedules and other triggers are ignored until it is switched on, and nothing waits for it. People can still chat with it and start it by hand.",
76
+ "starts-off": "It started off, as its code says.",
77
+ "changed": "Changed by {{user}} on {{date}}.",
78
+ "reason": "Note: {{reason}}",
79
+ "waiting": "{{count}} events wait for the resume.",
80
+ "stopped-was-off-hint": "It was off when it stopped: releasing the kill switch switches it back off. Resume switches it on.",
81
+ "stopped-was-on-hint": "It was not off when it stopped: releasing the kill switch makes it work again, as Resume does.",
82
+ "action": {
83
+ "active": "Resume",
84
+ "paused": "Pause",
85
+ "off": "Switch off",
86
+ "switch-on": "Switch on",
87
+ "stopped": "Stop"
88
+ },
89
+ "explain": {
90
+ "active": "The agent works again. Every subject with waiting events gets one run.",
91
+ "paused": "No new runs start. Events wait and run after the resume; running work finishes and approved proposals execute.",
92
+ "off": "Events, schedules, webhooks, hand-offs and follow-ups are ignored and nothing waits; switching on later starts nothing for them. Running work finishes, open proposals can still be decided and people can still chat with the agent and start it by hand.",
93
+ "switch-on": "The agent takes its events, schedules and other triggers again. Nothing that happened while it was off runs.",
94
+ "stopped": "Active runs are cancelled, their open proposals withdrawn and waiting events dropped. Approved proposals wait until the agent works again."
95
+ },
96
+ "confirm": {
97
+ "active": "Confirm resume",
98
+ "paused": "Confirm pause",
99
+ "off": "Confirm switch off",
100
+ "switch-on": "Confirm switch on",
101
+ "stopped": "Confirm stop"
102
+ },
103
+ "note-label": "Note for other administrators (optional)",
104
+ "note-hint": "Shown on this agent with your name and the time until the next change. The agent does not read it."
105
+ },
106
+ "skills": {
107
+ "title": "Skills",
108
+ "usage": "Today {{calls}} tool calls, {{tokens}} tokens",
109
+ "budget": "Budget per day: {{calls}} tool calls, {{tokens}} tokens",
110
+ "explain": {
111
+ "active": "The skill {{skill}} works again. Every subject with events waiting for it gets one run.",
112
+ "paused": "The skill {{skill}} starts no new runs: its events wait, triage no longer chooses it and running work finishes. The other skills keep working.",
113
+ "off": "Triggers of the skill {{skill}} are ignored and rules and triage no longer route work to it; nothing waits for it. Running work finishes. The other skills keep working.",
114
+ "switch-on": "The skill {{skill}} takes work again. Nothing that happened while it was off runs.",
115
+ "stopped": "The runs of the skill {{skill}} are cancelled and its waiting events dropped; its triggers are refused. The other skills keep working."
116
+ }
117
+ },
118
+ "shadow": {
119
+ "badge": "Shadow",
120
+ "hint": "Its work goes to shadow threads that only administrators see.",
121
+ "changed": "Shadow mode set by {{user}} on {{date}}.",
122
+ "locked": "A shadow variant always works in shadow.",
123
+ "action": {
124
+ "shadow": "Put in shadow",
125
+ "live": "Put live",
126
+ "code": "Follow the code",
127
+ "own": "Back to its own setting"
128
+ },
129
+ "explain": {
130
+ "shadow": "New runs work in shadow threads that only administrators see: nobody is notified and nothing proposed there executes. Running work finishes as it started; the live threads and their open proposals stay.",
131
+ "live": "New runs work live: people see them, are notified and decide their proposals.",
132
+ "code": "The mode in code decides again.",
133
+ "own": "The agent's own setting decides again: {{mode}}."
134
+ },
135
+ "skill-explain": {
136
+ "shadow": "Work that reaches the skill {{skill}} goes to the shadow threads; the other skills keep their mode.",
137
+ "live": "The skill {{skill}} works live again, unless its agent works in shadow.",
138
+ "code": "The mode in code decides again for the skill {{skill}}.",
139
+ "own": "The own setting of the skill {{skill}} decides again: {{mode}}."
140
+ },
141
+ "confirm": {
142
+ "shadow": "Confirm shadow",
143
+ "live": "Confirm live",
144
+ "code": "Confirm"
145
+ },
146
+ "mode": {
147
+ "shadow": "in shadow",
148
+ "live": "live"
149
+ }
150
+ },
151
+ "service-account": {
152
+ "label": "Technical account: {{account}}",
153
+ "configured": "In code: {{account}}",
154
+ "input-label": "Account id",
155
+ "action": {
156
+ "set": "Change technical account",
157
+ "code": "Use the account in code"
158
+ },
159
+ "explain": {
160
+ "set": "New runs answer to this account and use its rights. Runs that started and their proposals keep their account.",
161
+ "code": "New runs answer to the account in code again: {{account}}."
162
+ },
163
+ "confirm": {
164
+ "set": "Confirm account",
165
+ "code": "Confirm"
166
+ },
167
+ "input-label-search": "Account"
168
+ },
169
+ "consultation-routes": {
170
+ "title": "Consultation routes",
171
+ "description": "Switch a route off for all consultations of this agent at once, in code and in the administration. When another assistant consults this agent and the agent proposes a change, a route decides who decides it and whose rights run it.",
172
+ "load-failed": "The consultation routes could not be read.",
173
+ "route": {
174
+ "asker-decides": "The person who asked decides",
175
+ "subject-agent-rights": "Approvers decide, agent's rights",
176
+ "subject-asker-rights": "Approvers decide, asker's rights"
177
+ },
178
+ "explain": {
179
+ "asker-decides": "The person who asked decides in their own chat; it runs with their own rights.",
180
+ "subject-agent-rights": "The subject's approvers other than the person who asked decide; it runs with the agent's own rights.",
181
+ "subject-asker-rights": "The subject's approvers decide; it runs later with the rights of the person who asked."
182
+ },
183
+ "on": "On",
184
+ "off": "Off",
185
+ "code": "As the consultations allow",
186
+ "overridden": "Overridden",
187
+ "not-allowed": "Not allowed",
188
+ "not-allowed-hint": "No consultation of this agent allows this route, so it stays off and cannot be switched on.",
189
+ "subject-types": "For: {{types}}",
190
+ "action": {
191
+ "on": "Switch on",
192
+ "off": "Switch off",
193
+ "code": "Back to what the consultations allow"
194
+ },
195
+ "explain-change": {
196
+ "on": "Consultations use this route for new proposals again. Proposals already recorded keep their route.",
197
+ "off": "Consultations no longer use this route for new proposals; with every route off, the agent's consultations only read. Proposals already recorded keep their route.",
198
+ "code-on": "The consultations decide again: one of them allows this route, so it is on.",
199
+ "code-off": "The consultations decide again: none of them allows this route, so it stays off."
200
+ },
201
+ "confirm": {
202
+ "on": "Confirm switching on",
203
+ "off": "Confirm switching off",
204
+ "code": "Confirm"
205
+ }
206
+ },
207
+ "run-config": "Run configuration",
208
+ "run-now": "Run now",
209
+ "runs": "Runs",
210
+ "chat": {
211
+ "hidden": "Not in the chat"
212
+ },
213
+ "chat-only": {
214
+ "badge": "Chat only",
215
+ "hint": "Works in the chat only: it is on no object's page, has no triggers and does not run on its own."
216
+ },
217
+ "version-label": "Version",
218
+ "tool-count-one": "{{count}} tool selector",
219
+ "server-count-one": "{{count}} MCP server",
220
+ "required-policy": "Requires:",
221
+ "works-on": {
222
+ "label": "Works on:",
223
+ "all": "All objects",
224
+ "application": "The whole application",
225
+ "and-application": "and the whole application",
226
+ "per-division": "per division",
227
+ "undeclared": "(not stated in code)",
228
+ "known": "Known to work on: {{types}}.",
229
+ "run-policy": "Run for the whole application by: {{policy}}.",
230
+ "view-policy": "Results for the whole application seen by: {{policy}}."
231
+ },
232
+ "groups": "Groups: {{groups}}",
233
+ "catalog-failed": "The building blocks of agent runs could not be read. Until they are, agents cannot be run now here and what an agent works on and its groups stay as they are.",
234
+ "warnings": {
235
+ "classification-not-permitted": "Neither the agent's model profile nor the profile's fallbacks permit its data classification. The agent is saved, but its model calls are refused until a profile permits the classification."
236
+ }
237
+ },
238
+ "agent-editor": {
239
+ "new-title": "New agent",
240
+ "edit-title": "Edit {{name}}",
241
+ "id": "Id",
242
+ "id-hint": "Lowercase letters, digits and dashes. The id cannot change later.",
243
+ "display-name": "Name",
244
+ "description": "Description",
245
+ "instructions": "Instructions",
246
+ "instructions-hint": "What the agent does and how it answers.",
247
+ "autonomy": "Autonomy",
248
+ "autonomy-hint": "Only Execute allows changes in the agent's own work. In a consultation that may propose, Propose and Simulate propose changes too. Every change still needs approval.",
249
+ "required-policy": "Required policy",
250
+ "required-policy-hint": "Optional. Only users who pass this policy see the agent.",
251
+ "profile": "Model profile",
252
+ "profile-default": "The application's chat profile",
253
+ "profile-hint": "The model the agent works with, from the profiles the application offers for agents created here.",
254
+ "classification": "Data classification",
255
+ "classification-hint": "How sensitive the data is that the agent's model calls carry, in chats with it and in its runs. Its model profile or one of the profile's fallbacks must permit it; a skill may set its own.",
256
+ "state-hint": "Pause, stop and resume the agent from the agent list. Saving never changes its state.",
257
+ "switch-on-now": "Switch on now",
258
+ "switch-on-now-hint": "Otherwise the agent starts off: its events, schedules and other triggers are ignored until you switch it on in the agent list. People can still chat with it and start it by hand.",
259
+ "tool-selectors": "Tool selectors",
260
+ "tool-selectors-hint": "Choose tools from the catalog or add a pattern such as sample-api.project.*. MCP tools come from the assigned servers.",
261
+ "add-selector": "Add pattern",
262
+ "selector-placeholder": "orders.*",
263
+ "remove-selector": "Remove {{selector}}",
264
+ "no-selectors": "No tool selectors. The agent can only answer from its instructions and assigned MCP servers.",
265
+ "catalog": "Tool catalog",
266
+ "catalog-filter": "Filter the tool catalog",
267
+ "catalog-empty": "No tools match.",
268
+ "matches": "{{count}} catalog tools match the selectors.",
269
+ "mcp-servers": "MCP servers",
270
+ "mcp-servers-hint": "Enabled tools of these servers become available to this agent.",
271
+ "mcp-servers-empty": "No MCP servers are configured.",
272
+ "mcp-servers-failed": "The agent is saved, but not every change to its MCP servers went through. Save again to retry the rest.",
273
+ "use": {
274
+ "title": "How is this agent used?",
275
+ "chat": "In the chat",
276
+ "chat-hint": "People choose it in the assistant to ask questions and get work done.",
277
+ "background": "On its own",
278
+ "background-hint": "It starts on events or a schedule and proposes work; it is not offered in the chat.",
279
+ "both": "Both",
280
+ "both-hint": "Offered in the chat, and it also starts on events or a schedule.",
281
+ "next": "After saving, a short setup asks when the agent starts, what it does and on whose behalf."
282
+ },
283
+ "works-on": {
284
+ "title": "What does this agent work on?",
285
+ "hint": "Events, schedules, people and other agents start it only on what it works on.",
286
+ "all": "All objects",
287
+ "all-hint": "Every kind of object the application has, now and later.",
288
+ "types": "Chosen kinds of objects",
289
+ "types-hint": "Only the kinds of objects you tick below.",
290
+ "no-types": "The application has no kinds of objects to choose from.",
291
+ "too-many": "Choose at most 20 kinds of objects, or All objects.",
292
+ "known": "Known to work on: {{types}}.",
293
+ "application": "The whole application",
294
+ "application-hint": "Work that concerns no single object, such as a weekly overview.",
295
+ "per-division": "Per division",
296
+ "per-division-hint": "Its work for the whole application, such as its schedules, runs separately for every division.",
297
+ "missing": "Choose at least one kind of object, or the whole application.",
298
+ "run-policy": "Who may run it for the whole application",
299
+ "run-policy-default": "Administrators (default)",
300
+ "run-policy-hint": "People who pass this may start the agent for the whole application.",
301
+ "view-policy": "Who sees its results for the whole application",
302
+ "view-policy-default": "Everyone who may use the agent (default)",
303
+ "view-policy-hint": "Results on an object follow who may read that object."
304
+ },
305
+ "groups": {
306
+ "title": "Groups",
307
+ "hint": "Pages of the application show the agents of a group on a board, with their latest results. Your choice wins over the code.",
308
+ "in-code": "In this group in code",
309
+ "shadow-variant": "A shadow variant works for administrators only and joins no group."
310
+ },
311
+ "metadata": {
312
+ "title": "Application fields",
313
+ "hint": "The application keeps its own data about agents here. Each field has an editor of the application, which saves it on its own.",
314
+ "save-first": "Save the agent first; then its fields appear here.",
315
+ "loading": "Loading the fields",
316
+ "load-failed": "The fields of this agent could not be loaded.",
317
+ "no-editor": "The application shows no editor for this field.",
318
+ "read-only": "Set in the application's code; it cannot change here.",
319
+ "saved": "Saved.",
320
+ "removed": "Removed.",
321
+ "source": {
322
+ "code": "From code",
323
+ "override": "Changed here, over the value in code",
324
+ "data": "Stored with the agent",
325
+ "none": "No value"
326
+ }
327
+ },
328
+ "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.",
329
+ "starts-in-shadow": "Start in shadow",
330
+ "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."
331
+ },
332
+ "effect": {
333
+ "read-only": "Read only",
334
+ "idempotent-mutation": "Idempotent change",
335
+ "mutation": "Change",
336
+ "destructive": "Destructive"
337
+ },
338
+ "source": {
339
+ "local": "Local",
340
+ "bridge": "API bridge",
341
+ "mcp": "MCP"
342
+ },
343
+ "mcp": {
344
+ "title": "MCP servers",
345
+ "description": "Connect remote MCP servers. Their tools start disabled and are treated as changes that need approval until you mark them read-only.",
346
+ "new": "New server",
347
+ "empty": "No MCP servers yet.",
348
+ "test": "Test connection",
349
+ "testing": "Testing the connection",
350
+ "test-ok": "The connection works: {{count}} tools.",
351
+ "sync": "Sync tools",
352
+ "syncing": "Syncing tools",
353
+ "sync-done": "Tools synced: {{count}}.",
354
+ "tools": "Tools",
355
+ "last-sync": "Last sync {{date}}",
356
+ "never-synced": "Never synced",
357
+ "sync-ok": "Sync OK",
358
+ "sync-failed": "Sync failed",
359
+ "assigned": "Assigned to: {{agents}}",
360
+ "unassigned": "Not assigned to an agent",
361
+ "secret-set": "Secret set",
362
+ "no-secret": "No secret",
363
+ "secret-reference": "Secret from {{reference}}",
364
+ "client-certificate": "Client certificate {{name}}",
365
+ "transport-fallback": "HTTP+SSE fallback",
366
+ "connected": "Last connection {{date}}",
367
+ "connect-failed": "Last connection failed {{date}}",
368
+ "never-connected": "Not connected yet",
369
+ "headless": {
370
+ "never": "Not in background runs",
371
+ "organization": "Background runs with this credential",
372
+ "personal": "Background runs with the person's own account, after consent"
373
+ },
374
+ "auth": {
375
+ "none": "No authentication",
376
+ "bearer": "Bearer token",
377
+ "api-key": "API key",
378
+ "basic": "User name and password",
379
+ "forward-user-token": "Forward the user's token",
380
+ "oauth": "OAuth (authorization)",
381
+ "oauth-client-credentials": "OAuth client credentials"
382
+ },
383
+ "transport": {
384
+ "streamable-http": "Streamable HTTP",
385
+ "auto": "Streamable HTTP with fallback to HTTP+SSE (deprecated)"
386
+ },
387
+ "connection-scope": {
388
+ "organization": "One connection for everyone",
389
+ "user": "Each person connects"
390
+ },
391
+ "connection-status": {
392
+ "not-connected": "Not connected",
393
+ "active": "Connected",
394
+ "reauthorization-required": "Connect again",
395
+ "issuer-changed": "Waiting for confirmation"
396
+ },
397
+ "organization-account": "Everyone acts as {{account}}",
398
+ "connected-by": "Connected by {{actor}} on {{date}}",
399
+ "connect": "Connect",
400
+ "reconnect": "Connect again",
401
+ "disconnect": "Disconnect",
402
+ "confirm-disconnect": "Disconnect and revoke",
403
+ "connecting": "Waiting for the authorization…",
404
+ "connect-done": "The organization's account is connected.",
405
+ "disconnect-done": "The connection was removed and its tokens revoked.",
406
+ "personal-connections": "Personal connections: {{active}}",
407
+ "revoke-all": "Revoke all personal connections",
408
+ "confirm-revoke-all": "Revoke for everyone",
409
+ "revoke-all-done": "Every personal connection was revoked.",
410
+ "issuer-changed": "The server named another authorization server. Edit the server and confirm it.",
411
+ "required-scopes": "The server asked for: {{scopes}}",
412
+ "connect-own": "Connect my account",
413
+ "connect-own-done": "Your own account is connected; tests and syncs use it.",
414
+ "personal-attention": "{{count}} need to connect again",
415
+ "personal-connections-failed": "The personal connections could not be counted."
416
+ },
417
+ "server-editor": {
418
+ "new-title": "New MCP server",
419
+ "edit-title": "Edit {{name}}",
420
+ "id": "Id",
421
+ "id-hint": "Lowercase letters, digits and dashes, at most 40 characters. The id cannot change later.",
422
+ "display-name": "Name",
423
+ "url": "URL",
424
+ "url-hint": "https is required; http is only allowed for localhost during development.",
425
+ "url-invalid": "Enter an https URL.",
426
+ "auth-mode": "Authentication",
427
+ "header-name": "Header name",
428
+ "header-name-hint": "Default X-Api-Key.",
429
+ "header-name-invalid": "Use 1 to 128 letters, digits and dashes.",
430
+ "user-name": "User name",
431
+ "user-name-hint": "Sent with the secret as basic authentication.",
432
+ "user-name-invalid": "Enter a user name without a colon, at most 256 characters.",
433
+ "secret": "Secret",
434
+ "secret-hint": "Stored encrypted and never shown again.",
435
+ "secret-set": "A secret is set.",
436
+ "secret-none": "No secret is set.",
437
+ "secret-replace": "Replace",
438
+ "secret-clear": "Clear",
439
+ "secret-will-clear": "The secret will be cleared when you save.",
440
+ "secret-undo": "Keep the current secret",
441
+ "secret-new": "New secret",
442
+ "secret-source": "Where the secret is",
443
+ "secret-source-stored": "Stored here, encrypted",
444
+ "secret-source-reference": "A secret of the application",
445
+ "secret-reference": "Secret reference",
446
+ "secret-reference-hint": "config:<name> reads NewHeap:AI:Assistant:Mcp:Secrets:<name> from the configuration; another prefix is a source the application registered, such as a vault. The secret is read for every connection, so a rotation applies at once.",
447
+ "secret-reference-invalid": "Enter a reference such as config:planning-token.",
448
+ "client-certificate": "Client certificate",
449
+ "client-certificate-hint": "Optional. The name of a certificate that the application configured under NewHeap:AI:Assistant:Mcp:ClientCertificates, presented for mutual TLS.",
450
+ "client-certificate-invalid": "Use letters, digits, dots, underscores and dashes.",
451
+ "transport": "Transport",
452
+ "transport-hint": "Choose the fallback only for a server that does not offer Streamable HTTP yet.",
453
+ "forward-warning": "The signed-in user's token is sent to this server. The server's host must be on the allow-list of the application.",
454
+ "custom-auth": {
455
+ "organization": "The application supplies this credential; every caller shares it. It takes no secret here.",
456
+ "person": "The application supplies each person's own credential. It takes no secret here."
457
+ },
458
+ "headless-use": "Background runs",
459
+ "headless-use-hint": "Agents that work without a person may use the tools with this server's own credential. The call still needs the rights of the person the agent works for, or, for an agent that acts for itself, a grant in the application code (mcp.<server id>.*).",
460
+ "headless-use-personal": "Background runs may use the server with a short-lived token of the person the run acts for, only after that person allowed it in their preferences.",
461
+ "required-policy": "Required policy",
462
+ "required-policy-hint": "Optional. The server's tools are only available to users who pass this policy.",
463
+ "enabled": "Server is enabled",
464
+ "connection-scope": "Who connects",
465
+ "connection-scope-hint": "One connection makes everyone act as the organization's account. With personal connections every person connects their own account and the server sees who acts.",
466
+ "oauth-warning": "With one connection for everyone, every user of the server's agents acts as the connected account, with all its rights.",
467
+ "discover": "Read authorization",
468
+ "discovering": "Reading…",
469
+ "discovery-title": "Authorization found",
470
+ "discovery-issuer": "Authorization server",
471
+ "discovery-resource": "Resource",
472
+ "discovery-scopes": "Scopes offered",
473
+ "discovery-registration": "Registration",
474
+ "registration-metadata-document": "By the host's client metadata document",
475
+ "registration-dynamic": "Dynamic registration",
476
+ "registration-manual": "A client id from the server's administrator is needed",
477
+ "pkce-missing": "This authorization server does not support PKCE with S256; it cannot be used.",
478
+ "confirm-authorization": "I confirm this authorization server for the server",
479
+ "confirm-authorization-hint": "Tokens are only requested from the confirmed authorization server. When the server names another one later, connections stop until you confirm again.",
480
+ "confirmed-authorization": "Confirmed: {{issuer}}",
481
+ "confirm-required": "Read the authorization and confirm it.",
482
+ "scopes": "Scopes",
483
+ "scopes-hint": "Space-separated. Only these scopes are requested; empty leaves the choice to the authorization server.",
484
+ "scopes-invalid": "Use scope names without quotes or backslashes, at most 1,024 characters.",
485
+ "client-id": "Client id",
486
+ "client-id-hint": "Optional for authorization: without one the host registers itself when the server allows it. Required for client credentials.",
487
+ "client-id-required": "Enter the client id the authorization server issued.",
488
+ "client-secret": "Client secret",
489
+ "client-secret-hint": "Stored encrypted and never shown again. Client credentials need a secret, a reference or the client certificate (private_key_jwt).",
490
+ "client-secret-reference": "Client secret reference",
491
+ "organization-account-label": "Connected account",
492
+ "organization-account-label-hint": "Which account the organization connects, for example \"Planning service account\". Everyone using the server sees it.",
493
+ "organization-account-label-required": "Name the account that will be connected.",
494
+ "reader": {
495
+ "title": "Reading documents",
496
+ "hint": "Models that cannot read a file type themselves can get the file as text from a reader of this server. The assistant calls the reader's tool with the file name, media type and base64 content of the file, after the application's own readers.",
497
+ "empty": "This server reads no files.",
498
+ "item": "Reader {{number}}",
499
+ "add": "Add reader",
500
+ "add-hint": "Each reader is one of the server's synced tools; a server has at most {{max}}.",
501
+ "limit": "This server has the most readers it can have ({{max}}).",
502
+ "remove": "Remove",
503
+ "remove-label": "Remove reader {{number}}",
504
+ "media-types": "Media types",
505
+ "media-types-hint": "Comma-separated, at most 16, such as application/vnd.openxmlformats-officedocument.wordprocessingml.document.",
506
+ "media-types-invalid": "Enter 1 to 16 media types of the form type/subtype, separated by commas.",
507
+ "tool": "Reading tool",
508
+ "tool-choose": "Choose a tool",
509
+ "tool-hint": "A tool synced from this server that turns a file into text. It does not have to be enabled for agents.",
510
+ "tool-duplicate": "Another reader of this server already uses this tool.",
511
+ "tool-sync": "Sync the server's tools first, then add a reader.",
512
+ "priority": "Priority",
513
+ "priority-hint": "Readers with a higher priority are asked first, after the application's own readers; with the same priority, by server and tool name.",
514
+ "priority-invalid": "Enter a whole number from {{min}} to {{max}}.",
515
+ "max-classification": "Highest classification",
516
+ "max-classification-choose": "Choose a classification",
517
+ "max-classification-hint": "A file that is more sensitive is never sent to this server.",
518
+ "leaves-application": "A file sent to this server leaves the application. Choose a classification the server may receive; for personal connections the person's consent to background use still applies."
519
+ }
520
+ },
521
+ "tools": {
522
+ "title": "Tools of {{name}}",
523
+ "description": "Tools stay disabled and are treated as changes that need approval until you enable them and choose the effect. Annotations from the server are hints only.",
524
+ "empty": "No tools yet. Sync the server to load its tools.",
525
+ "enabled": "Tool is enabled",
526
+ "effect": "Effect",
527
+ "description-override": "Description for the assistant",
528
+ "description-override-hint": "Optional. Replaces the server's description.",
529
+ "remote-description": "Server description",
530
+ "hint-read-only": "Server hint: read only",
531
+ "hint-mutation": "Server hint: changes data",
532
+ "status": {
533
+ "available": "Available",
534
+ "schema-changed": "Input changed",
535
+ "missing": "Missing on server",
536
+ "awaiting-sync": "Not seen yet"
537
+ },
538
+ "schema-changed-warning": "The tool's input changed on the server, so the tool was disabled. Review the tool before you enable it again.",
539
+ "missing-warning": "The server no longer lists this tool.",
540
+ "awaiting-sync-warning": "No sync has seen this tool yet. Agents are not offered it until a sync finds it on the server; it then becomes available with these settings.",
541
+ "save": "Save tool",
542
+ "back": "Back to the servers"
543
+ },
544
+ "feedback": {
545
+ "title": "Feedback on proposals",
546
+ "description": "What people said when they rejected this agent's proposals. Compare agent versions to see whether a change to the prompt, tools or policy helped.",
547
+ "agent": "{{name}} ({{id}})",
548
+ "back": "Back to agents",
549
+ "refresh": "Refresh",
550
+ "export": "Export (JSON Lines)",
551
+ "exporting": "Exporting…",
552
+ "export-hint": "The export holds subject data and the proposed tool input, and is recorded in the audit log.",
553
+ "period": "Period",
554
+ "periods": {
555
+ "last-7-days": "Last 7 days",
556
+ "last-30-days": "Last 30 days",
557
+ "last-90-days": "Last 90 days"
558
+ },
559
+ "tool": "Tool",
560
+ "all-tools": "All tools",
561
+ "category": "Category",
562
+ "all-categories": "All categories",
563
+ "category-hint": "The category narrows the feedback and the export.",
564
+ "summary-title": "Per tool and agent version",
565
+ "summary-empty": "The agent made no proposals in this period.",
566
+ "columns": {
567
+ "tool": "Tool",
568
+ "version": "Agent version",
569
+ "approved": "Approved",
570
+ "rejected": "Rejected",
571
+ "expired": "Expired",
572
+ "rejection-rate": "Rejection rate",
573
+ "with-feedback": "Rejected with feedback",
574
+ "invalidated": "No longer needed",
575
+ "people": "People",
576
+ "categories": "Top categories"
577
+ },
578
+ "version": "v{{version}}",
579
+ "consultations": "Consultations",
580
+ "no-decisions": "Not decided yet",
581
+ "no-categories": "None",
582
+ "invalidated-hint": "Open proposals that closed before anyone decided, because the work was already done or no longer applied. They do not count as rejected.",
583
+ "list-title": "Feedback",
584
+ "list-count": "{{count}} in total",
585
+ "list-empty": "Nobody gave feedback in this period.",
586
+ "list-empty-filtered": "No feedback matches these filters.",
587
+ "no-text": "No explanation given.",
588
+ "proposal": "Proposal:",
589
+ "author": "By {{actor}}",
590
+ "bulk": "Bulk",
591
+ "bulk-hint": "Given once for several proposals rejected together; weigh it lower.",
592
+ "previous": "Previous",
593
+ "next": "Next",
594
+ "page": "Page {{page}} of {{pages}}",
595
+ "pages": "Pages"
596
+ },
597
+ "evaluation": {
598
+ "back": "Back to the agents",
599
+ "title": "Evaluation of shadow variants",
600
+ "description": "Compares a shadow variant with the live agent: the runs that handled the same events, the proposals both made or only one made, what people decided about the live ones, and what each cost.",
601
+ "export-hint": "The export holds identifiers, statuses, usage and proposal identities, no messages or arguments. It is audited.",
602
+ "refresh": "Refresh",
603
+ "export": "Export JSON Lines",
604
+ "exporting": "Exporting…",
605
+ "variant": "Variant",
606
+ "period": "Period",
607
+ "runs-title": "Runs",
608
+ "runs": {
609
+ "live": "Live agent",
610
+ "variant": "Variant",
611
+ "paired": "Same event",
612
+ "replayed": "Replayed",
613
+ "live-unpaired": "Live only",
614
+ "variant-unpaired": "Variant only"
615
+ },
616
+ "small-numbers": "Small numbers mislead: read the counts next to every share.",
617
+ "replayed-hint": "Replayed runs saw today's state of each subject; a subject that changed since can explain a difference.",
618
+ "truncated": "The period holds more runs than one evaluation reads; it covers the oldest ones.",
619
+ "tools-title": "Proposals per tool",
620
+ "tools-empty": "The paired runs made no proposals.",
621
+ "columns": {
622
+ "tool": "Tool",
623
+ "agreed": "Agreed",
624
+ "live-only": "Live only",
625
+ "variant-only": "Variant only",
626
+ "rejected-not-proposed": "Rejected live, not proposed",
627
+ "rejected-also-proposed": "Rejected live, also proposed",
628
+ "approved-missed": "Approved live, missed",
629
+ "live-decisions": "Decisions on live proposals",
630
+ "measure": "Measure",
631
+ "live": "Live agent",
632
+ "variant": "Variant",
633
+ "live-skill": "Live skill",
634
+ "variant-skill": "Variant skill",
635
+ "runs": "Runs"
636
+ },
637
+ "decisions": "{{pending}} pending, {{approved}} approved, {{executed}} executed, {{rejected}} rejected, {{stale}} stale",
638
+ "cost-title": "Cost",
639
+ "cost": {
640
+ "runs": "Runs",
641
+ "model-calls": "Model calls per run",
642
+ "tokens": "Tokens per run",
643
+ "tool-calls": "Tool calls per run",
644
+ "average-p95": "{{average}} on average, p95 {{p95}} ({{total}} in total)"
645
+ },
646
+ "routing-title": "Routing",
647
+ "no-skill": "Own tools",
648
+ "differences-title": "Differences",
649
+ "kind": {
650
+ "live-only": "Live only",
651
+ "variant-only": "Variant only"
652
+ },
653
+ "live-status": "Live: {{status}}",
654
+ "replayed": "Replayed",
655
+ "open-live": "Open the live thread",
656
+ "open-variant": "Open the variant's thread",
657
+ "replay-title": "Replay",
658
+ "replay-hint": "Fires the live agent's recorded runs of the period into the variant, oldest first, against today's state of each subject; at most {{max}} runs. The variant's budget and limits apply.",
659
+ "replay-runs": "Runs to replay",
660
+ "replay": "Replay the period",
661
+ "replay-status": {
662
+ "running": "Running",
663
+ "completed": "Completed",
664
+ "stopped": "Stopped"
665
+ },
666
+ "replay-progress": "{{replayed}} of at most {{max}} runs replayed, {{skipped}} skipped"
667
+ },
668
+ "run-config": {
669
+ "files": {
670
+ "label": "Accepts files",
671
+ "agent-hint": "People's messages and the agent's tools may give it documents, such as PDFs, within the application's limits. A new agent accepts none until you switch this on.",
672
+ "skill-hint": "Runs in this skill may read documents when the agent accepts them too. A new skill accepts none until you switch this on.",
673
+ "limits-title": "Lower file limits",
674
+ "agent-limits-hint": "Leave a field empty to keep the application's limit. A value can only lower it.",
675
+ "skill-limits-hint": "Leave a field empty to keep the agent's limit. A value can only lower the application's.",
676
+ "max-file-megabytes": "Largest file (MB)",
677
+ "max-file-pages": "Most pages per file",
678
+ "max-files-per-turn": "Most files per turn",
679
+ "max-file-tokens-per-turn": "Most file tokens per turn",
680
+ "application-limit": "The application allows at most {{value}}."
681
+ },
682
+ "back": "Back to agents",
683
+ "title": "Run configuration of {{name}}",
684
+ "description": "Skills and triggers that the administration adds without a deploy, made of the building blocks the application registers. New skills and triggers start in shadow, where nobody is notified and nothing executes.",
685
+ "problems": {
686
+ "kind": {
687
+ "agent": "Run settings:",
688
+ "skill": "Skill {{id}}:",
689
+ "candidate": "Candidate of skill {{id}}:",
690
+ "trigger": "Trigger {{id}}:",
691
+ "consultation": "Consultation about {{id}}:",
692
+ "hand-off": "Hand-off about {{id}}:",
693
+ "trigger-candidate": "Candidate of trigger {{id}}:"
694
+ },
695
+ "code": {
696
+ "unknown-agent": "the agent can no longer run on its own.",
697
+ "conflicts-with-code": "the application now declares one with the same id.",
698
+ "too-many-skills": "the agent has more skills than allowed.",
699
+ "tool-not-covered": "a tool is outside the agent's own tools.",
700
+ "unknown-profile": "the model profile no longer exists.",
701
+ "unknown-policy": "the approval policy no longer exists.",
702
+ "unknown-rule-handler": "the rules no longer exist.",
703
+ "unknown-event": "the event no longer exists.",
704
+ "unknown-filter": "a filter of the event no longer exists, so the trigger starts nothing until you remove it.",
705
+ "unknown-subject-set": "the set of subjects no longer exists.",
706
+ "unknown-skill": "the skill no longer exists.",
707
+ "invalid-schedule": "the schedule or its time zone is not valid.",
708
+ "invalid": "a value is not valid.",
709
+ "not-worked-on": "it concerns a kind of object, or the whole application, that the agent does not work on.",
710
+ "unknown-subject-type": "the kind of object no longer exists.",
711
+ "unknown-agent-policy": "the policy the people who ask need is no longer listed.",
712
+ "conflicts-with-tool": "another tool already has the name of its tool.",
713
+ "not-consultable": "the application no longer lets administrators add consultations to this agent.",
714
+ "route-not-allowed": "a route is no longer allowed, so it is left out.",
715
+ "agent-answers-to-person": "the route with the agent's account is left out, because the agent answers to the object's responsible person.",
716
+ "agent-has-no-rights": "the route with the agent's account is left out, because the agent answers for itself and has no rights of its own.",
717
+ "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.",
718
+ "limit-above-ceiling": "a limit is above what the application allows, so the application's applies.",
719
+ "requests-not-allowed": "the application no longer allows requests, so it takes none.",
720
+ "mcp-not-allowed": "the application no longer offers consultations to MCP clients, so they do not see it.",
721
+ "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.",
722
+ "no-asset-source": "its instructions come from the application's text assets, which the application no longer offers.",
723
+ "asset-missing": "the application no longer has the text asset with its instructions in this version.",
724
+ "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.",
725
+ "asset-invalid": "the application's text asset cannot be used as instructions.",
726
+ "asset-unavailable": "the application's text assets could not be read; they are read again shortly.",
727
+ "outside-ceiling": "the application no longer allows it.",
728
+ "unknown-source": "an agent that may hand off can no longer run on its own.",
729
+ "unknown-live-agent": "the agent this shadow variant follows can no longer run on its own.",
730
+ "live-agent-not-live": "the agent this shadow variant follows is no live agent.",
731
+ "too-many-variants": "the agent it follows has more shadow variants than the application allows."
732
+ }
733
+ },
734
+ "field-errors": {
735
+ "required": "Required.",
736
+ "invalid": "Not valid here.",
737
+ "too-long": "Too long.",
738
+ "not-found": "The application does not know this name.",
739
+ "at-least": "Enter a whole number of at least {{min}}.",
740
+ "between": "Enter a whole number from {{min}} to {{max}}.",
741
+ "budget-pair": "Fill in both daily limits, or neither.",
742
+ "dash-case": "Use lowercase letters, digits and dashes, starting with a letter.",
743
+ "taken": "This id is already in use.",
744
+ "name-letters": "Use at least one letter in the name.",
745
+ "instructions-for-model": "Without fixed rules the model works from these instructions; describe what it should do.",
746
+ "application-not-worked-on": "The agent does not work on the whole application. Choose a set of objects, or let the agent work on the whole application first.",
747
+ "megabytes-up-to": "Enter a size above 0 and at most {{max}} MB.",
748
+ "megabytes-positive": "Enter a size above 0 MB.",
749
+ "not-allowed": "The application does not allow this.",
750
+ "routes-required": "Choose at least one route, or let it only answer.",
751
+ "tools-not-allowed": "A chosen tool is outside the agent's own tools. Clear it, or add the tool to the agent first.",
752
+ "locked": "An agent package locks this field. Unlink the part first to change it.",
753
+ "region-not-permitted": "This model profile may not run in the region the application works in, nor may its fallbacks. Choose a profile that permits the region."
754
+ },
755
+ "settings": {
756
+ "title": "Run settings",
757
+ "empty": "This agent only chats. Let it work on its own: it then starts on events or a schedule, works by rules or with the model, and proposes changes that people approve.",
758
+ "rights": "It has no rights of its own: in runs without a person it uses what the account it answers to may use, within its tools.",
759
+ "add": "Add run settings",
760
+ "edit": "Change run settings",
761
+ "remove": "Remove run settings",
762
+ "remove-explain": "The agent then only chats. Remove its skills and triggers first.",
763
+ "saved": "The run settings are saved.",
764
+ "removed": "The agent only chats again.",
765
+ "accountability-label": "Answers to",
766
+ "accountability": {
767
+ "agent": "The agent itself",
768
+ "subject-responsible": "The person responsible for the subject",
769
+ "service-account": "A technical account"
770
+ },
771
+ "accountability-hint": "The agent acts with this account's rights. An agent that answers to itself has none and can only propose.",
772
+ "service-account": "Technical account",
773
+ "triage": "Triage profile",
774
+ "triage-hint": "A cheap model that chooses the skill of a run that no trigger or rule routed.",
775
+ "retries": "Retries after a failure",
776
+ "max-concurrent": "Runs at the same time",
777
+ "max-per-subject": "Runs per subject per day",
778
+ "elevated-reads": "Reads with the account's rights",
779
+ "elevated": {
780
+ "restricted": "Shield from readers without the right",
781
+ "deny": "Refuse"
782
+ },
783
+ "gateway-reads": "Read through the application's data gateway with the account's rights",
784
+ "delegate": "Also use what the person who starts a run may use",
785
+ "add-title": "Run settings",
786
+ "edit-title": "Change the run settings",
787
+ "who": {
788
+ "title": "On whose behalf does the agent work?",
789
+ "short": "On behalf of",
790
+ "explain": "The agent has no rights of its own. In runs without a person it uses what this account may use, within its own tools."
791
+ },
792
+ "accountability-explain": {
793
+ "service-account": "A technical account, for example an operations account. The usual choice.",
794
+ "subject-responsible": "The person responsible for the project or customer the run is about.",
795
+ "agent": "The agent itself: it has no rights and can only propose."
796
+ },
797
+ "how": {
798
+ "title": "How does it work?",
799
+ "hint": "Fixed rules decide without a model and hand doubtful cases to the model. This applies to runs that no skill handles."
800
+ },
801
+ "approval": {
802
+ "title": "Who approves its proposals?",
803
+ "default": "The application's default",
804
+ "hint": "Proposals that change data wait for this approval; nothing executes before it."
805
+ },
806
+ "no-triage": "No triage",
807
+ "retries-hint": "How often a failed run is tried again.",
808
+ "max-concurrent-hint": "Runs of this agent that work at the same time.",
809
+ "max-per-subject-hint": "Protects a project or customer from too many runs in one day.",
810
+ "elevated-reads-hint": "What happens when the agent reads data that the reader of its thread may not see.",
811
+ "gateway-reads-hint": "Lets the agent read through the application's data gateway, such as its API, as the account.",
812
+ "delegate-hint": "When a person starts a run by hand, the agent may also use that person's rights."
813
+ },
814
+ "rule-handler": "Rules",
815
+ "rule-handler-value": "Rules: {{name}}",
816
+ "policy-value": "Approval: {{name}}",
817
+ "profile-value": "Model: {{name}}",
818
+ "approval-policy": "Approval policy",
819
+ "model": "The model decides (no fixed rules)",
820
+ "none": "None",
821
+ "choose": "Choose…",
822
+ "max-tokens": "Tokens per run",
823
+ "daily-tool-calls": "Tool calls per day",
824
+ "daily-tokens": "Tokens per day",
825
+ "budget-hint": "Leave empty for no limit. A daily budget needs both tool calls and tokens.",
826
+ "out-of-effect": "Out of effect",
827
+ "changed": "Changed by {{user}} on {{date}}.",
828
+ "needs-settings": "Give the agent run settings before you add skills and triggers.",
829
+ "skills": {
830
+ "description": "Skills in code come from the application. Skills added here have versions; a change goes live at once or runs in shadow next to the live version first.",
831
+ "add": "Add skill",
832
+ "added": "The skill is added. It starts in shadow; put it live from the agent's list.",
833
+ "saved": "The new version of the skill is live.",
834
+ "saved-candidate": "The new version runs in shadow next to the live version.",
835
+ "removed": "The skill is removed; its versions stay as history.",
836
+ "empty": "The agent has no skills yet.",
837
+ "new-title": "New skill",
838
+ "edit-title": "Change skill {{skill}} (version {{version}})",
839
+ "id": "Skill id",
840
+ "id-hint": "Lowercase letters, digits and dashes, such as progress-note.",
841
+ "description-label": "What the skill is for",
842
+ "description-hint": "Triage and the model choose the skill by this description.",
843
+ "instructions": "Instructions",
844
+ "instructions-hint": "Read after the agent's own instructions while it works in the skill.",
845
+ "tools": "Tools",
846
+ "tools-hint": "The tools the agent offers; select some to narrow them for this skill. None selected: all of the agent's tools. Add tools to the agent with Edit.",
847
+ "profile": "Model profile",
848
+ "agent-profile": "The agent's profile",
849
+ "agent-policy": "The agent's policy",
850
+ "apply": "How the change takes effect",
851
+ "apply-shadow": "Evaluate in shadow next to the live version first",
852
+ "apply-live": "Put live at once",
853
+ "starts-in-shadow": "A new skill starts in shadow.",
854
+ "switch-on-now": "Switch on now",
855
+ "switch-on-now-hint": "Otherwise the skill starts off: triggers that name it are ignored and rules and triage do not route to it until you switch it on in the agent list.",
856
+ "versions": "Versions",
857
+ "remove-explain": "Its versions stay as history. A trigger that starts it must go first.",
858
+ "what": {
859
+ "title": "What is the skill for?"
860
+ },
861
+ "how": {
862
+ "title": "How does it work?"
863
+ },
864
+ "rules-hint": "The rules decide without a model; a doubtful case goes to the model with the instructions below.",
865
+ "model-hint": "The model decides with the instructions below and the chosen tools.",
866
+ "profile-hint": "The model profile it uses; by default the agent's.",
867
+ "classification": {
868
+ "label": "Data classification",
869
+ "agent": "The agent's classification",
870
+ "hint": "How sensitive the data is that the skill sends to its model. Its model profile must permit it; otherwise its model calls are refused.",
871
+ "public": "Public",
872
+ "public-hint": "Data anyone may see.",
873
+ "internal": "Internal",
874
+ "internal-hint": "Data of the organization; the default.",
875
+ "confidential": "Confidential",
876
+ "confidential-hint": "Data only some people may see, such as personal or financial data.",
877
+ "restricted": "Restricted",
878
+ "restricted-hint": "The most sensitive data, for which only specially approved models may be used."
879
+ },
880
+ "warnings": {
881
+ "classification-not-permitted": "Neither the skill's model profile nor the profile's fallbacks permit its data classification. The skill is saved, but its model calls are refused until a profile permits the classification."
882
+ },
883
+ "apply-shadow-hint": "The new version runs next to the live one; compare them, then promote or discard it.",
884
+ "apply-live-hint": "For a small correction: the new version replaces the live one at once.",
885
+ "tools-pattern": "All tools that match: {{count}} now.",
886
+ "background-hint": "Started by a trigger the agent works without a chat: what it writes is kept with its run in the thread of what it works on, and changes become proposals."
887
+ },
888
+ "candidate": {
889
+ "badge": "Candidate v{{version}}",
890
+ "explain": "Version {{version}} runs in shadow next to the live version on the same events: {{description}}",
891
+ "compare": "Compare",
892
+ "promote": "Promote",
893
+ "confirm-promote": "Confirm promote",
894
+ "discard": "Discard",
895
+ "confirm-discard": "Confirm discard",
896
+ "promoted": "The candidate is the live version now.",
897
+ "discarded": "The candidate is discarded; it stays as history.",
898
+ "comparison": "Live version and candidate of {{skill}}",
899
+ "live-column": "Live (v{{version}})",
900
+ "candidate-column": "Candidate (v{{version}})",
901
+ "runs": "Runs",
902
+ "completed": "Completed",
903
+ "failed": "Failed",
904
+ "proposals": "Proposals",
905
+ "tokens": "Tokens",
906
+ "paired": "Both handled {{count}} of the same events since {{date}}."
907
+ },
908
+ "status": {
909
+ "live": "Live",
910
+ "candidate": "Candidate",
911
+ "superseded": "Earlier",
912
+ "discarded": "Discarded"
913
+ },
914
+ "triggers": {
915
+ "title": "Triggers",
916
+ "description": "Triggers in code come from the application. Triggers added here start the agent on the application's events or on a schedule.",
917
+ "add": "Add trigger",
918
+ "added": "The trigger is added. It starts in shadow.",
919
+ "saved": "The trigger is saved.",
920
+ "removed": "The trigger is removed.",
921
+ "live": "The trigger works live.",
922
+ "in-shadow": "The trigger works in shadow.",
923
+ "empty": "No triggers start the agent yet.",
924
+ "new-title": "New trigger",
925
+ "edit-title": "Change trigger {{trigger}}",
926
+ "id": "Trigger id",
927
+ "source": "Starts on",
928
+ "source-event": "An event of the application",
929
+ "source-schedule": "A schedule",
930
+ "event": "Event",
931
+ "debounce": "Wait for more events (seconds)",
932
+ "cron": "Schedule (cron)",
933
+ "cron-hint": "Five fields, such as 0 7 * * 1 for Mondays at seven.",
934
+ "time-zone": "Time zone",
935
+ "subject-set": "Subjects",
936
+ "message": "Message to every run",
937
+ "skill": "Skill",
938
+ "agent-routes": "The agent chooses the skill",
939
+ "skill-value": "Skill: {{skill}}",
940
+ "conflict": "While a run is busy",
941
+ "conflicts": {
942
+ "coalesce": "Merge into the waiting run",
943
+ "queue": "Wait for the run",
944
+ "supersede": "Replace the run",
945
+ "ignore": "Skip"
946
+ },
947
+ "sources": {
948
+ "event": "Event",
949
+ "schedule": "Schedule",
950
+ "webhook": "Webhook"
951
+ },
952
+ "starts-in-shadow": "A new trigger starts in shadow.",
953
+ "id-hint": "Lowercase letters, digits and dashes, for example project-created.",
954
+ "when": {
955
+ "title": "When does it start?"
956
+ },
957
+ "then": {
958
+ "title": "Then"
959
+ },
960
+ "source-event-hint": "Something happens in the application, such as a project being created.",
961
+ "source-schedule-hint": "At fixed times, for every subject in a set.",
962
+ "source-schedule-application-hint": "At fixed times, for the whole application or for every object in a set.",
963
+ "debounce-hint": "Waits this long for more events about the same subject and handles them in one run.",
964
+ "filters": {
965
+ "title": "Filters",
966
+ "hint": "Skip events this trigger should not start the agent on, such as changes the agent made itself. Every filter you select must let an event through.",
967
+ "empty": "This event offers no filters.",
968
+ "missing": "The event no longer offers this filter, so the trigger starts nothing. Clear it to save.",
969
+ "applied": "Filters: {{filters}}"
970
+ },
971
+ "subject-set-hint": "The projects or customers the schedule handles each time.",
972
+ "message-hint": "What the agent reads as its task each time.",
973
+ "examples": "Examples",
974
+ "example": {
975
+ "weekdays-8": "Weekdays at 8:00",
976
+ "daily-7": "Daily at 7:00",
977
+ "monday-9": "Mondays at 9:00",
978
+ "hourly": "Every hour"
979
+ },
980
+ "conflict-explain": {
981
+ "coalesce": "Adds the event to the waiting run.",
982
+ "queue": "Runs again after the busy run.",
983
+ "supersede": "Replaces the waiting run with this event.",
984
+ "ignore": "Skips this event or tick."
985
+ },
986
+ "live-badge": "Live",
987
+ "target": {
988
+ "title": "What does it run for each time?",
989
+ "application": "The whole application",
990
+ "application-hint": "One run each time, about the application as a whole.",
991
+ "application-per-division-hint": "One run each time for every division, each in its own thread.",
992
+ "set": "Every object in a set",
993
+ "set-hint": "One run each time for every object in a set, such as the active projects.",
994
+ "every-division": "Every division",
995
+ "dropped": "This schedule ran for the whole application, which the agent no longer works on. Choose a set of objects."
996
+ },
997
+ "saved-candidate": "The new version fires in shadow next to the live version, which keeps working.",
998
+ "apply": "How the change takes effect",
999
+ "apply-live": "Apply at once",
1000
+ "apply-live-hint": "The new version replaces the live one at once, in the mode the trigger has.",
1001
+ "apply-shadow": "Evaluate in shadow next to the live version first",
1002
+ "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.",
1003
+ "versions": "Versions",
1004
+ "candidate": {
1005
+ "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.",
1006
+ "out-of-effect": "The candidate does not fire: it no longer fits the code ({{problem}}). The live version keeps working.",
1007
+ "changes": "What the candidate changes",
1008
+ "no-changes": "The candidate has the same definition as the live version.",
1009
+ "change": "{{candidate}} (live: {{live}})",
1010
+ "comparison": "Live version and candidate of trigger {{trigger}}",
1011
+ "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}}.",
1012
+ "promoted": "The candidate is the live version of the trigger now.",
1013
+ "none": "none"
1014
+ }
1015
+ },
1016
+ "way-of-working": "Way of working",
1017
+ "check-fields": "Check the marked fields.",
1018
+ "limits": {
1019
+ "title": "Limits"
1020
+ },
1021
+ "advanced": {
1022
+ "title": "Advanced",
1023
+ "explain": "These options have sensible defaults; change them only when you need to."
1024
+ },
1025
+ "account": {
1026
+ "search-placeholder": "Search by name or e-mail address",
1027
+ "id-placeholder": "The account's id",
1028
+ "search-hint": "Choose the account by name or e-mail address. It must be able to sign in.",
1029
+ "id-hint": "The application offers no account search; enter the account's id. It must be able to sign in.",
1030
+ "known": "Account: {{name}}",
1031
+ "unknown": "The application does not know this account.",
1032
+ "lookup-again": "Look up again"
1033
+ },
1034
+ "policy-summary": {
1035
+ "who": "Approved by {{approvers}}.",
1036
+ "nobody": "Nobody is named to approve.",
1037
+ "or": "or",
1038
+ "wait": "A proposal waits {{duration}}.",
1039
+ "mode": {
1040
+ "inline": "The run waits for the decision.",
1041
+ "deferred": "The run ends; people decide later."
1042
+ },
1043
+ "four-eyes": "Whoever caused the proposal may not approve it.",
1044
+ "approver": {
1045
+ "initiator": "the person who caused it",
1046
+ "named-role": "someone with the role {{role}} on the subject",
1047
+ "subject-role": {
1048
+ "reader": "a reader of the subject",
1049
+ "participant": "a participant of the subject",
1050
+ "approver": "an approver of the subject"
1051
+ },
1052
+ "policy": "someone with the right {{policy}}"
1053
+ },
1054
+ "duration": {
1055
+ "minute": "1 minute",
1056
+ "minutes": "{{count}} minutes",
1057
+ "hour": "1 hour",
1058
+ "hours": "{{count}} hours",
1059
+ "day": "1 day",
1060
+ "days": "{{count}} days"
1061
+ }
1062
+ },
1063
+ "setup": {
1064
+ "start": "Let this agent work on its own",
1065
+ "title": "Let {{name}} work on its own",
1066
+ "explain": "Four short questions. Everything starts in shadow: the agent works, but nobody is notified and nothing executes until you put it live.",
1067
+ "progress": "Steps",
1068
+ "step": {
1069
+ "when": "When",
1070
+ "what": "What",
1071
+ "who": "On whose behalf",
1072
+ "limits": "Approval and limits",
1073
+ "review": "Review"
1074
+ },
1075
+ "when": {
1076
+ "title": "When does the agent start?"
1077
+ },
1078
+ "what": {
1079
+ "title": "What does it do?",
1080
+ "name": "Name of the task",
1081
+ "name-hint": "A short name, for example \"Start new projects\".",
1082
+ "name-id": "Its id becomes {{id}}."
1083
+ },
1084
+ "limits": {
1085
+ "title": "Who approves, and what are its limits?"
1086
+ },
1087
+ "review": {
1088
+ "title": "Review",
1089
+ "event": "When {{event}} happens",
1090
+ "schedule": "On the schedule {{cron}} ({{zone}}), for {{set}}",
1091
+ "schedule-application": "On the schedule {{cron}} ({{zone}}), for the whole application",
1092
+ "schedule-divisions": "On the schedule {{cron}} ({{zone}}), for the whole application in every division",
1093
+ "shadow": "The task and its trigger start in shadow. Put them live now, or later from the run configuration."
1094
+ },
1095
+ "no-events": "The application registers no events yet; choose a schedule.",
1096
+ "next": "Next",
1097
+ "back": "Back",
1098
+ "save-shadow": "Save in shadow",
1099
+ "save-live": "Save and put live",
1100
+ "done": "Saved.",
1101
+ "saved-shadow": "The agent works in shadow now: it runs, but nobody is notified and nothing executes. Put the task and its trigger live when the results are right.",
1102
+ "saved-live": "The agent works live now."
1103
+ },
1104
+ "note-hint": "Kept with this version in its history, with your name and the time. The agent does not read it.",
1105
+ "flow": {
1106
+ "title": "At a glance",
1107
+ "description": "How the agent works, from what it works on to its results. Each step opens the form that changes it.",
1108
+ "problems": "Some settings no longer fit the application and are out of effect. Each shows at its step below, with what fixes it.",
1109
+ "attention-one": "1 to fix",
1110
+ "attention": "{{count}} to fix",
1111
+ "warnings": "To fix",
1112
+ "steps": {
1113
+ "works-on": "What it works on",
1114
+ "when": "When it runs",
1115
+ "skills": "How it works",
1116
+ "account": "Who it answers to",
1117
+ "approval": "Who approves its proposals",
1118
+ "results": "Its results"
1119
+ },
1120
+ "works-on": {
1121
+ "undeclared": "Its code does not say, so it works on all objects and not on the whole application.",
1122
+ "in-code": "Set in the application's code."
1123
+ },
1124
+ "target": {
1125
+ "application": "For the whole application",
1126
+ "every-division": "For every division",
1127
+ "type": "For the object it names: {{value}}",
1128
+ "set": "For every object in {{value}}",
1129
+ "code-set": "For every object of a set in code",
1130
+ "when-fired": "For the object the event names"
1131
+ },
1132
+ "when": {
1133
+ "none": "No trigger starts it: it runs only when someone runs it now.",
1134
+ "scope": {
1135
+ "objects": "Run now: for one of the objects it works on.",
1136
+ "application": "Run now: for the whole application.",
1137
+ "application-and-objects": "Run now: for the whole application or one of the objects it works on.",
1138
+ "division": "Run now: for one division at a time.",
1139
+ "division-and-objects": "Run now: for one division at a time or one of the objects it works on."
1140
+ },
1141
+ "run-policy": "For the whole application only by: {{policy}}.",
1142
+ "run-policy-default": "the assistant's administrators",
1143
+ "paused": "It is paused: a run started now waits until it is resumed.",
1144
+ "run-now-unavailable": {
1145
+ "stopped": "Run now: not while the agent is stopped.",
1146
+ "configured-off": "Run now: not while the application's code switches the agent off.",
1147
+ "no-settings": "Run now: only once the agent has run settings.",
1148
+ "no-catalog": "Run now: not until the run catalog can be read."
1149
+ },
1150
+ "consultations": "When another assistant consults it",
1151
+ "no-consultations": "No other assistant can consult it yet.",
1152
+ "consultation-proposes": "Answers and proposes",
1153
+ "consultation-answers": "Only answers",
1154
+ "asked-by-none": "No agent asks it yet",
1155
+ "asked-by-one": "Asked by 1 agent",
1156
+ "asked-by": "Asked by {{count}} agents"
1157
+ },
1158
+ "skills": {
1159
+ "code-rules": "Fixed rules in the application's code",
1160
+ "none": "No skills: every run works by its way of working and instructions.",
1161
+ "tools": "Its tools",
1162
+ "no-tools": "No tools: it can only answer.",
1163
+ "more-tools": "And {{count}} more.",
1164
+ "places-at": "A run's proposal waits at the object it names ({{type}}), where that object's approvers decide.",
1165
+ "places-in-run": "A run's proposal waits in the run's own thread.",
1166
+ "servers": "Its MCP servers",
1167
+ "tool-not-offered": "{{selector}} is no longer offered: no tool of the application matches it."
1168
+ },
1169
+ "effect": {
1170
+ "read-only": "Reads",
1171
+ "idempotent-mutation": "Changes",
1172
+ "mutation": "Changes",
1173
+ "destructive": "Removes"
1174
+ },
1175
+ "servers": {
1176
+ "headless": {
1177
+ "never": "Not in runs on their own",
1178
+ "organization": "The organization's account",
1179
+ "personal": "Personal accounts"
1180
+ },
1181
+ "use": {
1182
+ "unknown": "Whether it is used in runs that start on their own is not known here.",
1183
+ "missing": "This server no longer exists.",
1184
+ "disabled": "The server is switched off.",
1185
+ "never": "Its tools are left out of runs that start on their own, such as trigger runs.",
1186
+ "organization": "Its tools are used in runs that start on their own, with the organization's credential.",
1187
+ "organization-grant": "Its tools are used in runs that start on their own with the organization's credential once the agent's code grants them, because the agent answers to itself.",
1188
+ "personal": "Its tools are used in runs that start on their own only with the consent of the person a run acts for.",
1189
+ "personal-responsible": "Its tools are used with the account of the person responsible for the object, once that person allows background use.",
1190
+ "personal-initiator": "Its tools are used only in runs a person started, with that person's account and consent.",
1191
+ "personal-never-account": "Its tools are not used: a technical account has no personal connection.",
1192
+ "personal-never-agent": "Its tools are not used: an agent that answers to itself has no personal connection."
1193
+ },
1194
+ "warning": {
1195
+ "missing": "MCP server {{server}} no longer exists.",
1196
+ "disabled": "MCP server {{server}} is switched off.",
1197
+ "never": "MCP server {{server}} is not used in runs that start on their own: its background use is off.",
1198
+ "personal-never-account": "MCP server {{server}} is not used: it works with personal accounts and the agent answers to a technical account.",
1199
+ "personal-never-agent": "MCP server {{server}} is not used: it works with personal accounts and the agent answers to itself."
1200
+ }
1201
+ },
1202
+ "account": {
1203
+ "no-settings": "It has no run settings yet, so it cannot run on its own.",
1204
+ "rights": {
1205
+ "agent": "It has no rights of its own and can only propose.",
1206
+ "subject-responsible": "Runs use what the person responsible for the object may use, within its tools.",
1207
+ "service-account": "Runs use what this account may use, within its tools."
1208
+ },
1209
+ "delegates": "It also uses what the person who starts a run may use.",
1210
+ "overridden": "An administrator replaced the account in code.",
1211
+ "in-code": "Set in the application's code."
1212
+ },
1213
+ "approval": {
1214
+ "autonomy": "What it may do:",
1215
+ "skill": "Skill {{skill}}:",
1216
+ "no-settings": "Chosen with the run settings.",
1217
+ "in-code": "Set in the application's code."
1218
+ },
1219
+ "results": {
1220
+ "groups": "Groups:",
1221
+ "no-groups": "In no group, so no board shows it.",
1222
+ "view-policy": "Its results for the whole application are seen by: {{policy}}.",
1223
+ "view-policy-default": "everyone who may use the agent",
1224
+ "shadow": "It works in shadow: its runs go to shadow threads that only administrators see.",
1225
+ "latest": "Latest runs",
1226
+ "more-runs": "And {{count}} earlier runs in its runs."
1227
+ },
1228
+ "entry": {
1229
+ "works-on": "Change what it works on",
1230
+ "tools": "Change its tools and MCP servers",
1231
+ "settings": "Change the run settings",
1232
+ "approval": "Change the approval",
1233
+ "runs": "All runs",
1234
+ "groups": "Change its groups",
1235
+ "mcp-servers": "Open the MCP servers",
1236
+ "edit-trigger": "Change the trigger",
1237
+ "edit-skill": "Change the skill",
1238
+ "edit-trigger-named": "Edit trigger {{trigger}}",
1239
+ "edit-skill-named": "Edit skill {{skill}}",
1240
+ "edit-consultation": "Change the consultation",
1241
+ "edit-consultation-named": "Edit the consultation about {{type}}"
1242
+ }
1243
+ },
1244
+ "consultations": {
1245
+ "title": "Consultations",
1246
+ "description": "Other assistants may consult this agent about an object. It answers with the rights of the person who asked and, where allowed, proposes changes. A consultation works only once an agent that asks selects its tool.",
1247
+ "add": "Add consultation",
1248
+ "empty": "Nobody can consult this agent yet.",
1249
+ "closed": {
1250
+ "application": "The application does not let administrators add consultations; they come from its code.",
1251
+ "agent": "This agent is defined in code and does not let administrators add consultations to it.",
1252
+ "needs-settings": "Give the agent run settings before you add consultations.",
1253
+ "limit": "This agent has as many consultations as allowed ({{max}}).",
1254
+ "no-types": "Every kind of object this agent works on already has a consultation."
1255
+ },
1256
+ "requests": "Takes requests",
1257
+ "mcp": "Offered to MCP clients",
1258
+ "no-description": "No description.",
1259
+ "askers": "Asked by:",
1260
+ "open-asker": "Open the editor of {{agent}}",
1261
+ "no-askers": "No agent asks it yet. Select its tool in the tools of an agent that should ask it.",
1262
+ "code-hint": "Allowed in code; here only the route switches below change it.",
1263
+ "limits-value": "At most {{calls}} tool calls, {{seconds}} seconds, {{chars}} characters and {{history}} thread messages",
1264
+ "tools-label": "Tools:",
1265
+ "tools-all": "every tool of the agent",
1266
+ "tools-none": "none, because no chosen tool is among the agent's own tools any more",
1267
+ "edit-named": "Edit the consultation about {{type}}",
1268
+ "remove-named": "Delete the consultation about {{type}}",
1269
+ "remove-explain": "Its tools disappear; proposals it made can still be decided.",
1270
+ "added": "The consultation was added. It answers once an agent that asks selects its tool.",
1271
+ "saved": "The consultation was saved.",
1272
+ "removed": "The consultation was removed.",
1273
+ "roles": {
1274
+ "reader": "Reader",
1275
+ "participant": "Participant",
1276
+ "approver": "Approver"
1277
+ },
1278
+ "roles-lower": {
1279
+ "reader": "reader",
1280
+ "participant": "participant",
1281
+ "approver": "approver"
1282
+ },
1283
+ "summary": {
1284
+ "ask": "People who are at least {{role}} of the object may ask.",
1285
+ "asker-policy": "They also need {{policy}}.",
1286
+ "asker-policy-agent": "They also need the policy the agent requires, or else access to the assistant.",
1287
+ "read-only": "The agent only answers and proposes nothing.",
1288
+ "proposes": "The agent may propose changes when the person who asked is at least {{role}}: {{routes}}.",
1289
+ "proposes-code": "The agent may propose changes: {{routes}}."
1290
+ },
1291
+ "routes": {
1292
+ "asker-decides": "The person who asked decides in their chat",
1293
+ "subject-asker-rights": "The object's approvers decide, with the rights of the person who asked",
1294
+ "subject-agent-rights": "The object's approvers decide, with this agent's technical account"
1295
+ },
1296
+ "routes-hint": {
1297
+ "asker-decides": "Approving runs it at once with that person's own rights.",
1298
+ "subject-asker-rights": "It waits at the object and runs later with the rights of the person who asked.",
1299
+ "subject-agent-rights": "It waits at the object for an approver other than the person who asked and runs with the agent's own rights."
1300
+ },
1301
+ "route-blocks": {
1302
+ "not-in-ceiling": "The application does not allow this route.",
1303
+ "system": "Not for the whole application.",
1304
+ "agent-answers-to-person": "Not for an agent that answers to the object's responsible person.",
1305
+ "agent-has-no-rights": "Not for an agent that answers for itself: it has no rights of its own to lend."
1306
+ },
1307
+ "limits": {
1308
+ "tool-calls": "Tool calls",
1309
+ "timeout-seconds": "Time limit in seconds",
1310
+ "answer-chars": "Longest answer in characters",
1311
+ "history-messages": "Thread messages it reads"
1312
+ },
1313
+ "form": {
1314
+ "new-title": "New consultation",
1315
+ "edit-title": "Consultation about {{type}}, version {{version}}",
1316
+ "what": "What may other assistants consult it about?",
1317
+ "subject-type": "Kind of object",
1318
+ "subject-type-hint": "Only kinds of objects the agent works on and has no consultation about yet.",
1319
+ "description": "When to consult it",
1320
+ "description-hint": "The assistant that asks reads this to decide when to consult this agent.",
1321
+ "instructions": "Instructions when consulted",
1322
+ "instructions-hint": "Optional. What the agent keeps in mind when it answers, after the platform's own rules for consultations.",
1323
+ "who": "Who may ask?",
1324
+ "minimum-role": "The person who asks is at least",
1325
+ "role-hint": {
1326
+ "reader": "Anyone who may read the object.",
1327
+ "participant": "People who work on the object.",
1328
+ "approver": "People who approve changes to the object."
1329
+ },
1330
+ "asker-policy": "Policy the person needs",
1331
+ "asker-policy-agent": "The policy the agent requires",
1332
+ "asker-policy-hint": "One of the policies the application lists. Without one, the agent's own policy applies, or else access to the assistant.",
1333
+ "do": "What may it do?",
1334
+ "answer": "Only answer",
1335
+ "answer-hint": "It answers with the rights of the person who asked and proposes nothing.",
1336
+ "propose": "Answer and propose changes",
1337
+ "propose-hint": "It may also propose changes; the routes below decide who decides them.",
1338
+ "answers-only": "The application lets consultations only answer.",
1339
+ "routes": "Who decides its proposals?",
1340
+ "routes-hint": "Choose at least one. Of the two routes at the object, choose one at most.",
1341
+ "proposal-role": "Role needed for proposals",
1342
+ "proposal-role-hint": "The person who asked needs at least this role on the object before the agent may propose; with a lower role they get the answer without proposals.",
1343
+ "agent-policy": "The agent's approval policy",
1344
+ "policy-warning": {
1345
+ "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.",
1346
+ "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."
1347
+ },
1348
+ "advanced": "Advanced: tools, limits, requests and classification",
1349
+ "limits": "Limits of one consultation",
1350
+ "limits-hint": "Empty starts at the default within what the application allows.",
1351
+ "limit-range": "From {{min}} to {{max}}.",
1352
+ "requests": "Also take requests",
1353
+ "requests-hint": "The assistant that asks may also ask this agent to start a run, with the person as its initiator.",
1354
+ "requests-closed": "The application does not allow requests.",
1355
+ "mcp": "Offer to MCP clients",
1356
+ "mcp-hint": "External MCP clients may consult it too, with the rights of their person.",
1357
+ "mcp-closed": "The application does not offer consultations to MCP clients.",
1358
+ "classification-hint": "How sensitive its answers are in the conversation that asked. Without one, the agent's classification applies.",
1359
+ "tools": "Tools it may use",
1360
+ "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.",
1361
+ "tool-not-covered": "No longer among the agent's own tools.",
1362
+ "in-effect": "A consultation is in effect once saved; it answers once an agent that asks selects its tool.",
1363
+ "starts-off": "Start off",
1364
+ "starts-off-hint": "It is not offered until you switch it on in the list, for example after a review.",
1365
+ "starts-off-ceiling": "A new consultation starts off: the application wants every one reviewed before it is offered. Switch it on in the list."
1366
+ },
1367
+ "off-badge": "Off",
1368
+ "off-explain": "Off: asking agents get none of its tools until you switch it on.",
1369
+ "switch-on": "Switch on",
1370
+ "switch-off": "Switch off",
1371
+ "switch-on-named": "Switch on the consultation about {{type}}",
1372
+ "switch-off-named": "Switch off the consultation about {{type}}",
1373
+ "switched-on": "The consultation is on: agents that ask get its tools.",
1374
+ "switched-off": "The consultation is off: agents that ask get none of its tools."
1375
+ }
1376
+ },
1377
+ "hand-offs": {
1378
+ "title": "Hand-offs",
1379
+ "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.",
1380
+ "loading": "Loading hand-offs…",
1381
+ "load-failed": "The hand-offs could not be loaded.",
1382
+ "add": "Add hand-off",
1383
+ "empty": "No agent can hand work to this agent yet.",
1384
+ "closed": {
1385
+ "application": "The application does not let administrators connect agents to this one; its hand-offs come from its code.",
1386
+ "needs-settings": "Give the agent run settings before you connect agents to it.",
1387
+ "limit": "This agent accepts as many hand-offs as allowed ({{max}}).",
1388
+ "no-types": "Every kind of object the application lets you connect this agent about already has a hand-off."
1389
+ },
1390
+ "notifies": "Tells the source how it ended",
1391
+ "no-description": "No description.",
1392
+ "from": "From:",
1393
+ "limit-value": "At most {{max}} per source and object per day",
1394
+ "code-hint": "Accepted in code; it cannot change here.",
1395
+ "changed": "Changed by {{user}} on {{date}}",
1396
+ "edit-named": "Edit the hand-off about {{type}}",
1397
+ "remove-named": "Delete the hand-off about {{type}}",
1398
+ "remove-explain": "Its tool disappears from the sources' next runs; runs it started finish.",
1399
+ "added": "The hand-off was added. A source uses it once its tools select its tool.",
1400
+ "saved": "The hand-off was saved.",
1401
+ "removed": "The hand-off was removed.",
1402
+ "problems": {
1403
+ "invalid": "Out of effect: a stored value is not valid.",
1404
+ "outside-ceiling": "Out of effect: the application no longer lets these agents be connected about this kind of object.",
1405
+ "unknown-agent": "Out of effect: this agent can no longer run on its own.",
1406
+ "unknown-source": "Out of effect: an agent that may hand off can no longer run on its own.",
1407
+ "not-worked-on": "Out of effect: this agent does not work on this kind of object.",
1408
+ "conflicts-with-code": "Out of effect: the application now accepts hand-offs about this kind of object in code.",
1409
+ "limit-above-ceiling": "Out of effect: the daily limit is above what the application allows."
1410
+ },
1411
+ "form": {
1412
+ "new-title": "New hand-off",
1413
+ "edit-title": "Hand-off about {{type}}, version {{version}}",
1414
+ "subject-type": "Kind of object",
1415
+ "subject-type-hint": "The kinds of object the application lets you connect this agent about.",
1416
+ "sources": "Agents that may hand off",
1417
+ "no-sources": "The application allows no agent that can run on its own to hand off about this kind of object yet.",
1418
+ "source-not-allowed": "No longer allowed; clear it.",
1419
+ "sources-hint": "Only the agents the application allows; an agent created here counts once it has run settings.",
1420
+ "sources-admin": "The application also allows agents created in the administration.",
1421
+ "description": "Description for the sources",
1422
+ "description-hint": "When a source should hand work off, in a sentence or two.",
1423
+ "notify": "Give the source a follow-up when this agent's run ends",
1424
+ "notify-hint": "The source hears the outcome and the number of proposals, and the run's summary when both work on the same object.",
1425
+ "limit": "Hand-offs per source and object per day",
1426
+ "limit-hint": "1 to {{max}}; 5 when left empty.",
1427
+ "in-effect": "It is in effect once saved. A source's model gets its tool when the source's tools select it."
1428
+ }
1429
+ },
1430
+ "shadow-variants": {
1431
+ "title": "Shadow variants",
1432
+ "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.",
1433
+ "loading": "Loading shadow variants…",
1434
+ "load-failed": "The shadow variants could not be loaded.",
1435
+ "add": "New shadow variant",
1436
+ "empty": "This agent has no shadow variants.",
1437
+ "closed": {
1438
+ "not-allowed": "The application does not let administrators create shadow variants of this agent.",
1439
+ "limit": "This agent has as many shadow variants as allowed ({{max}})."
1440
+ },
1441
+ "source": {
1442
+ "code": "In code",
1443
+ "data": "Created here"
1444
+ },
1445
+ "needs-settings": "Needs run settings",
1446
+ "package": "Package {{package}} version {{version}}",
1447
+ "in-effect": "Receives this agent's events",
1448
+ "open": "Run configuration",
1449
+ "set-up": "Set up runs",
1450
+ "open-named": "Open the run configuration of {{name}}",
1451
+ "promote": "Promote onto {{name}}",
1452
+ "promote-named": "Promote {{variant}} onto {{name}}",
1453
+ "promote-confirm": {
1454
+ "title": "Promote {{variant}} onto {{name}}?",
1455
+ "code": "Its description, instructions, tools, required policy and autonomy become the next version of {{name}}, an agent in code, as an override until it is reset. {{name}} keeps its name, MCP servers, run settings, triggers, state and shadow mode.",
1456
+ "admin": "Its description, instructions, tools, required policy, autonomy, profile, classification and what it works on become the next version of {{name}}. {{name}} keeps its name, MCP servers, metadata, run settings, triggers, state and shadow mode.",
1457
+ "removed": "The variant is removed afterwards; it never goes live itself.",
1458
+ "move-skills": "Move its skills too",
1459
+ "move-skills-hint": "Each skill becomes the next live version of the skill with the same id, or a new skill that starts in shadow.",
1460
+ "as-package-version": "As the package's next version",
1461
+ "as-package-version-hint": "All its parts from package {{package}} version {{version}} replace those of {{name}} as an import does, with the package's locks, run settings, skills, triggers and metadata. {{name}} keeps its name and is linked to that package version; its skills come along.",
1462
+ "confirm": "Promote",
1463
+ "promoting": "Promoting…"
1464
+ },
1465
+ "promoted": "{{variant}} was promoted onto {{name}}, which is at version {{version}} now.",
1466
+ "problems": {
1467
+ "invalid": "Out of effect: a stored value is not valid.",
1468
+ "outside-ceiling": "Out of effect: the application no longer lets administrators create shadow variants of this agent.",
1469
+ "unknown-live-agent": "Out of effect: the agent it follows can no longer run on its own.",
1470
+ "live-agent-not-live": "Out of effect: the agent it follows is no live agent.",
1471
+ "too-many-variants": "Out of effect: the agent it follows has more shadow variants than the application allows."
1472
+ },
1473
+ "form": {
1474
+ "title": "New shadow variant",
1475
+ "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.",
1476
+ "id": "Id",
1477
+ "id-hint": "Lowercase letters, digits and dashes; it cannot change later.",
1478
+ "name": "Name",
1479
+ "default-name": "{{name}} (variant)",
1480
+ "description": "Description",
1481
+ "instructions": "Instructions",
1482
+ "instructions-hint": "They start as this agent's instructions; change what the variant should try.",
1483
+ "create": "Create variant"
1484
+ }
1485
+ },
1486
+ "runs": {
1487
+ "title": "Runs",
1488
+ "description": "Every run of this agent, newest first, with what it worked on, its result, proposals, usage and duration. Shadow runs are marked.",
1489
+ "back": "Back to agents",
1490
+ "back-to-run-config": "Back to the run configuration",
1491
+ "back-to-runs": "Back to the runs",
1492
+ "filters": "Filter the runs",
1493
+ "subject-type": "Works on",
1494
+ "any-subject": "Everything",
1495
+ "whole-application": "The whole application",
1496
+ "subject-id": "Object",
1497
+ "subject-id-hint": "The object's id, as a run shows it; leave it empty for every object of this kind.",
1498
+ "status": "Status",
1499
+ "any-status": "Every status",
1500
+ "from": "From",
1501
+ "to": "Until (inclusive)",
1502
+ "period-invalid": "The end of the period comes before its start.",
1503
+ "apply": "Show runs",
1504
+ "clear": "Clear filters",
1505
+ "empty": "No runs match.",
1506
+ "count": "{{shown}} of {{total}} runs",
1507
+ "more": "Show more runs",
1508
+ "only-object": "Runs on this object",
1509
+ "only-application": "Runs for the whole application"
1510
+ },
1511
+ "account-names-failed": "The names of accounts could not be read; their account IDs are shown instead.",
1512
+ "account": {
1513
+ "id": "Account ID {{id}}",
1514
+ "copy-id": "Copy the account ID of {{name}}",
1515
+ "id-copied": "Account ID copied"
1516
+ },
1517
+ "instruction-assets": {
1518
+ "source": "Where do the instructions come from?",
1519
+ "source-inline": "Written here",
1520
+ "source-inline-hint": "Type the instructions in this form.",
1521
+ "source-asset": "The application's text",
1522
+ "source-asset-hint": "Instructions the application ships or keeps, in an exact version. A new version is used only when you save it.",
1523
+ "not-offered": "The application no longer offers its text assets; write the instructions here to keep this working.",
1524
+ "loading": "Loading the application's texts…",
1525
+ "asset": "Text",
1526
+ "asset-hint": "The application lists the texts you can choose, each in an exact version.",
1527
+ "choose": "Choose a text",
1528
+ "option": "{{asset}}, version {{version}}",
1529
+ "deprecated": "Replaced by the application",
1530
+ "deprecated-by": "Replaced by {{asset}}",
1531
+ "none-listed": "The application lists no texts; enter the id and version it gave you.",
1532
+ "asset-id": "Text id",
1533
+ "version": "Version",
1534
+ "read": "Read the text",
1535
+ "reading": "Reading the text…",
1536
+ "reference": "Uses {{asset}}, version {{version}}.",
1537
+ "hash": "Hash {{hash}}",
1538
+ "newer": "Version {{version}} of this text is available. Choose it and save to use it; the version in use stays until then.",
1539
+ "text": "Text of the instructions",
1540
+ "text-hint": "Read-only: the application owns this text. Saving stores which text and version, never a copy.",
1541
+ "agent-problem": "The agent does not work:",
1542
+ "problems": {
1543
+ "no-asset-source": "The application no longer offers its texts; the instructions are not available.",
1544
+ "asset-missing": "The application no longer has this text in this version.",
1545
+ "asset-changed": "The text changed since it was saved, so it is not used. Read it again and save to use the new text.",
1546
+ "asset-invalid": "This text cannot be used as instructions.",
1547
+ "asset-unavailable": "The application's texts could not be read; they are read again shortly."
1548
+ },
1549
+ "errors": {
1550
+ "required": "Choose a text and read it first.",
1551
+ "not-found": "The application has no such text in this version.",
1552
+ "changed": "The text changed since you read it. Read it again before you save.",
1553
+ "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.",
1554
+ "not-allowed": "The application does not offer its texts here."
1555
+ }
1556
+ },
1557
+ "packages": {
1558
+ "export": "Export as package",
1559
+ "export-named": "Export {{name}} as a package",
1560
+ "import": "Import package",
1561
+ "linked-badge": "Package {{package}} {{version}}",
1562
+ "delete-locked": "The agent belongs to package {{package}}. Unlink the agent first to delete it.",
1563
+ "remove-locked": "Package {{package}} locks this part. Unlink it first to remove it.",
1564
+ "lock": {
1565
+ "linked": "Linked to package {{package}}, version {{version}}.",
1566
+ "agent-linked": "This agent comes from package {{package}}, version {{version}}.",
1567
+ "whole": "The package locks it as a whole: it changes with the package's next version.",
1568
+ "fields": "Locked: {{fields}}.",
1569
+ "nothing-locked": "Nothing of it is locked; the package's next version overwrites a change made here.",
1570
+ "field": "Locked by package {{package}}, version {{version}}",
1571
+ "unlink": "Unlink",
1572
+ "unlink-agent": "Unlink the agent",
1573
+ "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.",
1574
+ "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.",
1575
+ "confirm-unlink": "Unlink"
1576
+ },
1577
+ "parts": {
1578
+ "agent": "Agent",
1579
+ "run-settings": "Run settings",
1580
+ "skill": "Skill {{name}}",
1581
+ "trigger": "Trigger {{name}}",
1582
+ "consultation": "Consultation about {{name}}",
1583
+ "hand-off": "Hand-off about {{name}}",
1584
+ "metadata": "Field {{name}}"
1585
+ },
1586
+ "outcomes": {
1587
+ "created": "New",
1588
+ "changed": "Changed",
1589
+ "unchanged": "Unchanged",
1590
+ "kept-local": "Kept local",
1591
+ "left-behind": "Left behind",
1592
+ "refused": "Refused"
1593
+ },
1594
+ "outcome-explain": {
1595
+ "created": "The import adds it.",
1596
+ "changed": "The import replaces it with the package's version.",
1597
+ "unchanged": "It is the same as the package's version.",
1598
+ "kept-local": "It was unlinked here, so the import leaves it as it is unless you take the package's version.",
1599
+ "left-behind": "The package no longer holds this agent: it stays here, unlinked.",
1600
+ "refused": "The import refuses it, and with it the whole package."
1601
+ },
1602
+ "changed-locally": "Changed locally",
1603
+ "changed-locally-hint": "Someone changed it here since it was imported; the import overwrites that change.",
1604
+ "export-dialog": {
1605
+ "title": "Export agents as a package",
1606
+ "close": "Close",
1607
+ "agents": "Agents in the package",
1608
+ "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.",
1609
+ "agents-required": "Choose at least one agent.",
1610
+ "too-many": "A package holds at most {{max}} agents.",
1611
+ "package-id": "Package id",
1612
+ "package-id-hint": "Lowercase letters, digits and dashes. A host upgrades the agents it imported from the same package id.",
1613
+ "package-id-default": "Empty: {{id}}",
1614
+ "version": "Version",
1615
+ "version-hint": "A whole number from 1. Empty: the next version after the one this host imported, otherwise 1.",
1616
+ "description": "Description",
1617
+ "description-hint": "Optional: what the package is for, for whoever imports it.",
1618
+ "locks": "Locks",
1619
+ "locks-hint": "Where the package is imported, a locked part shows read-only and saving refuses to change it until an administrator unlinks it.",
1620
+ "lock-none": "Not locked",
1621
+ "lock-whole": "All of it",
1622
+ "lock-fields": "Chosen fields",
1623
+ "lock-choice": "Lock {{part}}",
1624
+ "lock-fields-of": "Fields of {{part}} to lock",
1625
+ "loading-parts": "Reading the parts of the agents…",
1626
+ "parts-failed": "The parts of the agents could not be read.",
1627
+ "no-parts": "Nothing of this agent travels as data.",
1628
+ "references": "References outside the package",
1629
+ "references-hint": "These agents are not in the package, so they must exist where it is imported.",
1630
+ "add": "Add {{agent}}",
1631
+ "download": "Download package",
1632
+ "downloading": "Exporting…",
1633
+ "downloaded": "The package was downloaded as {{file}}.",
1634
+ "reference": {
1635
+ "hand-off-source": "{{referenced}} hands work to {{agent}} ({{part}}).",
1636
+ "shadow-of": "{{agent}} is a shadow variant of {{referenced}}.",
1637
+ "consultation-asker": "{{referenced}} consults {{agent}} ({{part}}).",
1638
+ "shadow-variant": "{{referenced}} is a shadow variant of {{agent}} and receives its triggers."
1639
+ }
1640
+ },
1641
+ "import-dialog": {
1642
+ "title": "Import an agent package",
1643
+ "close": "Close",
1644
+ "file": "Package file",
1645
+ "file-hint": "A JSON file of at most 1 MB, as an export writes it.",
1646
+ "file-chosen": "Read from {{name}}.",
1647
+ "paste": "Or paste the package",
1648
+ "paste-hint": "The JSON of the package.",
1649
+ "invalid-json": "This is no package: its JSON cannot be read.",
1650
+ "too-large": "A package is at most 1 MB.",
1651
+ "no-package": "Choose a package file or paste a package first.",
1652
+ "preview": "Check the package",
1653
+ "previewing": "Checking…",
1654
+ "preview-again": "Check again",
1655
+ "preview-title": "What the import does",
1656
+ "summary": "Package {{package}}, version {{version}}",
1657
+ "agent-heading": "Agent {{agent}}",
1658
+ "column-part": "Part",
1659
+ "column-outcome": "Outcome",
1660
+ "column-details": "Details",
1661
+ "column-relink": "Package's version",
1662
+ "relink": "Take the package's version of {{part}}",
1663
+ "relink-hint": "Relinks the part: the import overwrites the local version and links it to the package again.",
1664
+ "account": "Technical account of {{agent}}",
1665
+ "account-hint": "Accounts never travel: choose the account on this host that the agent answers to.",
1666
+ "apply": "Changed skills and triggers",
1667
+ "apply-live": "Take effect at once",
1668
+ "apply-live-hint": "Each change becomes the live version, as a save does.",
1669
+ "apply-shadow": "Run in shadow first",
1670
+ "apply-shadow-hint": "Each change becomes a candidate next to the live version, to compare and promote.",
1671
+ "apply-new-hint": "New skills and triggers start in shadow either way.",
1672
+ "refused": "The import refuses {{count}} parts. Fix the package or the host, then check again.",
1673
+ "options-changed": "The choices changed since the check; check again before importing.",
1674
+ "import": "Import",
1675
+ "importing": "Importing…",
1676
+ "imported": "The package was imported.",
1677
+ "result-title": "What the import did",
1678
+ "done": "Done",
1679
+ "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.",
1680
+ "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.",
1681
+ "agent-exists-in-code": "An agent in code has this id on this host; the package's agent cannot replace it.",
1682
+ "take-over": "Take over the existing agent",
1683
+ "take-over-hint": "The package replaces its configuration and links it.",
1684
+ "refused-one": "The import refuses {{count}} part. Fix the package or the host, then check again."
1685
+ },
1686
+ "fields": {
1687
+ "display-name": "Name",
1688
+ "description": "Description",
1689
+ "instructions": "Instructions",
1690
+ "tool-selectors": "Tools",
1691
+ "required-policy": "Required policy",
1692
+ "autonomy": "Autonomy",
1693
+ "offered-in-chat": "Use in the chat",
1694
+ "works-on": "What it works on",
1695
+ "profile": "Model profile",
1696
+ "data-classification": "Data classification",
1697
+ "accountability": "Answers to",
1698
+ "delegate-from-initiator": "Rights of the person who starts a run",
1699
+ "allow-gateway-reads": "Reads through the data gateway",
1700
+ "elevated-reads": "Reads with the account's rights",
1701
+ "approval-policy": "Approval policy",
1702
+ "retry-count": "Retries after a failure",
1703
+ "daily-budget": "Daily limits",
1704
+ "max-concurrent-runs": "Runs at the same time",
1705
+ "max-runs-per-subject-per-day": "Runs per subject per day",
1706
+ "max-tokens-per-run": "Tokens per run",
1707
+ "triage-profile": "Triage profile",
1708
+ "rule-handler": "Way of working",
1709
+ "files": "Files",
1710
+ "tools": "Tools",
1711
+ "skill": "Skill",
1712
+ "source": "When it starts",
1713
+ "event": "Event",
1714
+ "filters": "Filters",
1715
+ "cron": "Schedule",
1716
+ "time-zone": "Time zone",
1717
+ "subject-set": "Subjects",
1718
+ "message": "Message to every run",
1719
+ "conflict": "While a run is busy",
1720
+ "debounce-seconds": "Wait for more events",
1721
+ "minimum-role": "Role of the person who asks",
1722
+ "asker-policy": "Policy of the person who asks",
1723
+ "routes": "Routes",
1724
+ "proposal-role": "Role before it proposes",
1725
+ "proposal-policy": "Approval policy of its proposals",
1726
+ "limits": "Limits",
1727
+ "allow-requests": "Requests",
1728
+ "expose-to-mcp": "MCP clients",
1729
+ "sources": "Agents that may hand off",
1730
+ "notify-source": "Tells the source how it ended",
1731
+ "max-per-subject-per-day": "Hand-offs per source and object per day",
1732
+ "value": "Value"
1733
+ },
1734
+ "reset-locked": "Package {{package}} locks fields of the definition. Unlink them first to reset the agent."
1735
+ }
1736
+ }
1737
+ }
1738
+ }