@newheap/platform-ai-chat 0.14.0 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/i18n/en.json CHANGED
@@ -12,6 +12,8 @@
12
12
  "open": "Open proposals: {{open}}.",
13
13
  "working": "An agent is working on this."
14
14
  },
15
+ "account-id": "account ID {{id}}",
16
+ "account-id-title": "Account ID: {{id}}",
15
17
  "panel": {
16
18
  "title": "Assistant",
17
19
  "region-label": "Assistant panel",
@@ -70,7 +72,9 @@
70
72
  "elapsed": "{{seconds}}s",
71
73
  "participant": "Participant",
72
74
  "trigger": "Event",
73
- "rule": "Automatic rule"
75
+ "rule": "Automatic rule",
76
+ "files": "Attached files",
77
+ "file-meta": "{{type}}, {{size}}"
74
78
  },
75
79
  "composer": {
76
80
  "label": "Message",
@@ -85,6 +89,18 @@
85
89
  "waiting-for-approval": "Waiting for approval",
86
90
  "running-by": "{{name}} is working with the assistant…",
87
91
  "waiting-for-approval-by": "Waiting for {{name}} to decide…"
92
+ },
93
+ "attach": "Attach files",
94
+ "attach-hint": "{{types}}, up to {{max}} each, at most {{count}} files per message",
95
+ "attachments": "Attached files",
96
+ "remove-attachment": "Remove {{name}}",
97
+ "uploading": "Uploading {{name}}",
98
+ "uploading-hint": "The message can be sent once the files are uploaded",
99
+ "attachment-errors": {
100
+ "assistant-file-type-not-accepted": "This type of file cannot be attached. Attach {{types}}.",
101
+ "assistant-file-too-large": "The file is larger than {{max}}.",
102
+ "assistant-file-count-limit": "A message can carry at most {{count}} files.",
103
+ "assistant-file-upload-invalid": "The file is empty or its name cannot be used."
88
104
  }
89
105
  },
90
106
  "queue": {
@@ -102,7 +118,8 @@
102
118
  "preparing": "Preparing…",
103
119
  "sending": "Sending…",
104
120
  "failed": "Not sent; resume to retry"
105
- }
121
+ },
122
+ "files": "Files ({{count}}): {{names}}"
106
123
  },
107
124
  "tool-call": {
108
125
  "label": "Tool call: {{name}}",
@@ -236,7 +253,10 @@
236
253
  "assistant-proposal-stale": "Not run: the proposal no longer applied.",
237
254
  "assistant-proposal-execution-failed": "The approved proposal could not be run.",
238
255
  "assistant-proposal-already-open": "Not proposed again: the same proposal already waits.",
239
- "assistant-proposal-recently-rejected": "Not proposed again: people rejected it recently."
256
+ "assistant-proposal-recently-rejected": "Not proposed again: people rejected it recently.",
257
+ "assistant-proposal-placed": "Proposed at its object; waits for that object's approvers",
258
+ "assistant-proposal-not-placed": "Not proposed: the object it concerns does not accept it.",
259
+ "assistant-proposal-not-needed": "Not proposed: the work is already done or no longer applies."
240
260
  },
241
261
  "errors": {
242
262
  "generic": "Something went wrong. Please try again.",
@@ -255,6 +275,16 @@
255
275
  "assistant-mcp-host-blocked": "This host is not allowed for MCP servers or for forwarding the user's token.",
256
276
  "assistant-mcp-schema-changed": "The tool's input changed on the server. Review it and enable it again.",
257
277
  "assistant-mcp-tool-disabled": "This tool is disabled.",
278
+ "assistant-mcp-insufficient-scope": "The MCP server accepted the credentials, but they lack a permission this action needs.",
279
+ "assistant-mcp-headless-not-allowed": "This MCP server may not be used in background runs.",
280
+ "assistant-mcp-credential-mismatch": "The MCP call was not sent because it was authorized for someone other than the person whose token the connection carries.",
281
+ "assistant-mcp-consent-required": "The person this background run acts for has not allowed this MCP server with their own account.",
282
+ "assistant-mcp-initiator-only": "A run someone asked for uses only that person's own connection to this MCP server, and this run acts for someone else.",
283
+ "assistant-mcp-delegated-token-unavailable": "No short-lived token could be issued for the person this background run acts for.",
284
+ "assistant-mcp-secret-reference-invalid": "The secret reference names no available secret. Check the prefix and the name.",
285
+ "assistant-mcp-certificate-reference-invalid": "The client certificate is not configured or has no private key.",
286
+ "assistant-mcp-secret-unreadable": "A stored secret of this server can no longer be read. An administrator enters it again.",
287
+ "assistant-mcp-secret-unavailable": "The secret of this server could not be read just now. Please try again.",
258
288
  "assistant-instructions-too-long": "The text is too long. Shorten it to at most 20,000 characters.",
259
289
  "assistant-context-not-found": "The application context was not found. Reload the page.",
260
290
  "assistant-mcp-server-not-found": "The MCP server no longer exists. Reload the list.",
@@ -280,6 +310,19 @@
280
310
  "assistant-message-invalid": "The message is empty or not valid. Write a question and send it again.",
281
311
  "assistant-message-too-long": "The message is too long. Shorten it and send it again.",
282
312
  "assistant-model-unavailable": "The language model is temporarily unavailable. Try again in a moment.",
313
+ "assistant-classification-not-permitted": "The model this agent uses may not receive data of the agent's classification. Ask an administrator to choose a model profile that permits it.",
314
+ "assistant-files-unavailable": "This application gives the assistant no files.",
315
+ "assistant-files-not-accepted": "This agent does not accept files. An administrator can switch files on for it.",
316
+ "assistant-file-reference-invalid": "A file could not be read because its reference is not valid.",
317
+ "assistant-file-not-found": "The file was not found. It may have been removed.",
318
+ "assistant-file-forbidden": "You may not read this file, so the assistant did not read it either.",
319
+ "assistant-file-unavailable": "The file could not be opened right now. Try again in a moment.",
320
+ "assistant-file-reader-failed": "The reading tool for this type of file could not turn it into text.",
321
+ "assistant-file-too-large": "The file is larger than the assistant may read. Share a smaller file.",
322
+ "assistant-file-too-many-pages": "The file has more pages than the assistant may read. Share a shorter document.",
323
+ "assistant-file-count-limit": "The assistant may read no more files in this answer. Ask about fewer files at a time.",
324
+ "assistant-file-token-limit": "The files are too long for one answer. Ask about fewer or shorter files at a time.",
325
+ "assistant-file-type-not-supported": "The model of this agent cannot read files of this type.",
283
326
  "assistant-proposal-hash-mismatch": "The proposed change was modified in the meantime, so nothing was changed. Reload the conversation and decide again.",
284
327
  "assistant-title-invalid": "The conversation title is not valid. Use a shorter title.",
285
328
  "assistant-tool-call-limit-reached": "The assistant reached the maximum number of steps for one answer. Ask a narrower question.",
@@ -296,8 +339,11 @@
296
339
  "assistant-push-unavailable": "Desktop notifications are not available.",
297
340
  "assistant-push-subscription-invalid": "This browser could not be registered for notifications.",
298
341
  "assistant-conversation-removed": "This conversation is no longer available to you.",
299
- "assistant-subject-not-found": "The subject no longer exists.",
342
+ "assistant-subject-not-found": "This object does not exist, or you may not see it.",
343
+ "assistant-subject-invalid": "This is not a valid reference to an object. Check the kind of object and its id.",
300
344
  "assistant-subject-type-unknown": "This kind of subject is not known to the assistant.",
345
+ "assistant-subject-search-unavailable": "This kind of object cannot be searched; give its id.",
346
+ "assistant-agent-does-not-work-on": "This agent does not work on this kind of object.",
301
347
  "assistant-subject-access-denied": "Your role on this subject does not allow this.",
302
348
  "assistant-no-accountable-owner": "Nobody answers for this agent on this subject.",
303
349
  "assistant-agent-disabled": "This agent has been stopped.",
@@ -307,6 +353,8 @@
307
353
  "assistant-run-token-limit": "This run stopped because it reached its token budget. What it did so far stays; an approver can resume it.",
308
354
  "assistant-skill-stopped": "This skill of the agent has been stopped.",
309
355
  "assistant-skill-paused": "This skill of the agent is paused; its events wait until it resumes.",
356
+ "assistant-agent-off": "This agent is switched off; it takes no work from other agents until it is switched on.",
357
+ "assistant-skill-off": "This skill of the agent is switched off.",
310
358
  "assistant-skill-not-found": "The agent has no such skill.",
311
359
  "assistant-skill-not-available": "That skill is not available now.",
312
360
  "assistant-skill-switch-limit": "The run already switched skills as often as allowed.",
@@ -322,6 +370,12 @@
322
370
  "assistant-agent-not-configured": "This agent cannot run on its own.",
323
371
  "assistant-run-not-found": "The run was not found.",
324
372
  "assistant-run-not-retryable": "This run cannot be retried.",
373
+ "assistant-run-filter-invalid": "The filter of the runs is not valid.",
374
+ "assistant-run-operation-cancelled": "The run was cancelled because its background operation was cancelled.",
375
+ "assistant-run-operation-stalled": "The run failed because no worker started its background operation.",
376
+ "assistant-run-operation-ended": "The run failed because its background operation ended before the run finished.",
377
+ "assistant-board-not-found": "This board does not exist, or you may not see any of its agents.",
378
+ "assistant-board-scope-invalid": "The division of the board is not valid.",
325
379
  "assistant-approval-policy-denied": "You may not decide this proposal.",
326
380
  "assistant-four-eyes-required": "Someone other than the person who started this must decide it.",
327
381
  "assistant-execution-not-uncertain": "This execution is not waiting to be resolved.",
@@ -332,8 +386,11 @@
332
386
  "assistant-proposal-superseded": "A newer proposal replaced this one.",
333
387
  "assistant-proposal-refused": "This action cannot be proposed by an automatic rule.",
334
388
  "assistant-trigger-not-found": "The trigger was not found.",
389
+ "assistant-trigger-rate-limited": "This agent already ran as often as it may today for this object. Try again later.",
390
+ "assistant-trigger-rolled-back": "The run could not be queued. Please try again.",
335
391
  "assistant-webhook-signature-invalid": "The webhook call has no valid signature.",
336
392
  "assistant-webhook-payload-invalid": "The webhook call could not be read.",
393
+ "assistant-webhook-payload-too-large": "The webhook call is larger than allowed.",
337
394
  "assistant-memory-not-configured": "This agent keeps no working memory.",
338
395
  "assistant-memory-invalid": "The working memory change does not fit its schema.",
339
396
  "assistant-memory-conflict": "The working memory changed at the same time.",
@@ -361,11 +418,39 @@
361
418
  "assistant-run-settings-in-code": "This agent is part of the code; its runs are configured there.",
362
419
  "assistant-run-settings-in-use": "Skills or triggers still belong to this agent. Remove them first.",
363
420
  "assistant-skill-candidate-not-found": "This skill has no version being evaluated in shadow.",
364
- "assistant-skill-version-gone": "The skill version this run was for is no longer evaluated."
421
+ "assistant-skill-version-gone": "The skill version this run was for is no longer evaluated.",
422
+ "assistant-account-search-unavailable": "The application offers no account search; enter the account's id.",
423
+ "assistant-mcp-connection-required": "This server needs a connection first. Connect it and try again.",
424
+ "assistant-mcp-reauthorization-required": "The connection to this server ended. Connect again to continue.",
425
+ "assistant-mcp-scope-not-allowed": "The server asks for permissions that the administrator did not allow.",
426
+ "assistant-mcp-authorization-failed": "The authorization was not given. Try again, or ask the server's administrator.",
427
+ "assistant-mcp-authorization-expired": "The authorization took too long or was already used. Start again.",
428
+ "assistant-mcp-authorization-invalid": "The authorization could not be verified. Start again.",
429
+ "assistant-mcp-discovery-failed": "The server's authorization details could not be read or do not match the server.",
430
+ "assistant-mcp-pkce-unsupported": "The authorization server does not support the required protection (PKCE with S256).",
431
+ "assistant-mcp-client-registration-required": "The host is not registered at the authorization server. Enter a client id from the server's administrator.",
432
+ "assistant-mcp-token-request-failed": "The authorization server did not answer as expected. Try again later.",
433
+ "assistant-mcp-issuer-changed": "The server now uses another authorization server. An administrator has to confirm it before it is used.",
434
+ "assistant-mcp-authorization-not-confirmed": "An administrator has to confirm the server's authorization server first.",
435
+ "assistant-mcp-oauth-not-configured": "The application has no OAuth redirect address for MCP servers. Ask the developers to configure it.",
436
+ "assistant-mcp-too-many-authorizations": "Too many authorizations are still open. Finish or wait for them, then try again.",
437
+ "assistant-mcp-connection-not-supported": "This server has no connection of this kind.",
438
+ "assistant-mcp-authorization-cancelled": "The authorization window was closed before it finished.",
439
+ "assistant-mcp-popup-blocked": "The browser blocked the authorization window. Allow pop-ups for this site and try again.",
440
+ "assistant-proposal-placed": "The proposal waits at the object it concerns, for that object's approvers.",
441
+ "assistant-proposal-not-placed": "The proposal was not placed at the object it concerns.",
442
+ "assistant-proposal-not-needed": "Not proposed: the work is already done or no longer applies.",
443
+ "assistant-file-upload-invalid": "The file could not be uploaded. Choose one file and try again.",
444
+ "assistant-file-type-not-accepted": "This type of file cannot be attached.",
445
+ "assistant-file-upload-refused": "The application refused this file.",
446
+ "assistant-file-upload-failed": "The file could not be stored right now. Try again in a moment.",
447
+ "assistant-file-scan-refused": "The file did not pass the scan for harmful content and was not stored."
365
448
  },
366
449
  "notices": {
367
450
  "no-answer": "The assistant finished without an answer. Try again or rephrase your question.",
368
- "conversation-removed": "This conversation is no longer available to you."
451
+ "conversation-removed": "This conversation is no longer available to you.",
452
+ "message-queued": "The agent is working in this conversation. Your message waits for its next run, which adds it here.",
453
+ "message-queued-with-files": "The agent is working in this conversation. Your message and its files wait for its next run, which adds them here."
369
454
  },
370
455
  "preferences": {
371
456
  "title": "Your preferences",
@@ -411,6 +496,33 @@
411
496
  "blocked": "Your browser blocks notifications for this site. Allow them in the browser settings.",
412
497
  "off": "Notifications are off for all your devices.",
413
498
  "unavailable": "Notifications are not available."
499
+ },
500
+ "mcp": {
501
+ "title": "Background use with your account",
502
+ "description": "Agents may use these services in runs without you, with your own account. Allow it per service; you can withdraw it at any time. A changed service asks for your permission again.",
503
+ "allow": "Allow {{name}} in background runs",
504
+ "allowed-since": "Allowed since {{date}}",
505
+ "not-allowed": "Not allowed",
506
+ "used-by": "Used by:",
507
+ "load-failed": "The services that ask for your permission could not be loaded.",
508
+ "accounts-title": "Connected services",
509
+ "accounts-description": "Agents use these services with your own account. Connect a service to let them work with it; disconnecting revokes the access at once.",
510
+ "status": {
511
+ "not-connected": "Not connected",
512
+ "active": "Connected",
513
+ "reauthorization-required": "Connect again",
514
+ "issuer-changed": "Paused by the administrator"
515
+ },
516
+ "connected-since": "Connected since {{date}}",
517
+ "more-permissions": "The service asked for more permissions: {{scopes}}. Connect again to grant them.",
518
+ "issuer-changed": "The service changed how it signs in. An administrator confirms it first.",
519
+ "connect": "Connect",
520
+ "connect-again": "Connect again",
521
+ "disconnect": "Disconnect",
522
+ "confirm-disconnect": "Disconnect and revoke",
523
+ "cancel": "Cancel",
524
+ "connect-done": "{{name}} is connected.",
525
+ "disconnect-done": "{{name}} is disconnected and its access revoked."
414
526
  }
415
527
  },
416
528
  "admin": {
@@ -434,7 +546,6 @@
434
546
  "edit": "Edit",
435
547
  "delete": "Delete",
436
548
  "confirm-delete": "Confirm delete",
437
- "keep": "Keep",
438
549
  "enabled": "Enabled",
439
550
  "disabled": "Disabled",
440
551
  "enable": "Enable",
@@ -485,25 +596,35 @@
485
596
  "stopped": "Stopped",
486
597
  "configured-off": "Off in configuration",
487
598
  "configured-off-hint": "Disabled in the application's code until the next deployment; it cannot be resumed here.",
599
+ "off": "Off",
600
+ "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.",
601
+ "starts-off": "It started off, as its code says.",
488
602
  "changed": "Changed by {{user}} on {{date}}.",
489
- "reason": "Reason: {{reason}}",
603
+ "reason": "Note: {{reason}}",
490
604
  "waiting": "{{count}} events wait for the resume.",
491
- "reason-label": "Reason (optional)",
492
605
  "action": {
493
606
  "active": "Resume",
494
607
  "paused": "Pause",
608
+ "off": "Switch off",
609
+ "switch-on": "Switch on",
495
610
  "stopped": "Stop"
496
611
  },
497
612
  "explain": {
498
613
  "active": "The agent works again. Every subject with waiting events gets one run.",
499
614
  "paused": "No new runs start. Events wait and run after the resume; running work finishes and approved proposals execute.",
615
+ "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.",
616
+ "switch-on": "The agent takes its events, schedules and other triggers again. Nothing that happened while it was off runs.",
500
617
  "stopped": "Active runs are cancelled, their open proposals withdrawn and waiting events dropped. Approved proposals wait until the agent works again."
501
618
  },
502
619
  "confirm": {
503
620
  "active": "Confirm resume",
504
621
  "paused": "Confirm pause",
622
+ "off": "Confirm switch off",
623
+ "switch-on": "Confirm switch on",
505
624
  "stopped": "Confirm stop"
506
- }
625
+ },
626
+ "note-label": "Note for other administrators (optional)",
627
+ "note-hint": "Shown on this agent with your name and the time until the next change. The agent does not read it."
507
628
  },
508
629
  "skills": {
509
630
  "title": "Skills",
@@ -512,6 +633,8 @@
512
633
  "explain": {
513
634
  "active": "The skill {{skill}} works again. Every subject with events waiting for it gets one run.",
514
635
  "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.",
636
+ "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.",
637
+ "switch-on": "The skill {{skill}} takes work again. Nothing that happened while it was off runs.",
515
638
  "stopped": "The runs of the skill {{skill}} are cancelled and its waiting events dropped; its triggers are refused. The other skills keep working."
516
639
  }
517
640
  },
@@ -523,22 +646,29 @@
523
646
  "action": {
524
647
  "shadow": "Put in shadow",
525
648
  "live": "Put live",
526
- "code": "Follow the code"
649
+ "code": "Follow the code",
650
+ "own": "Back to its own setting"
527
651
  },
528
652
  "explain": {
529
653
  "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.",
530
654
  "live": "New runs work live: people see them, are notified and decide their proposals.",
531
- "code": "The mode in code decides again."
655
+ "code": "The mode in code decides again.",
656
+ "own": "The agent's own setting decides again: {{mode}}."
532
657
  },
533
658
  "skill-explain": {
534
659
  "shadow": "Work that reaches the skill {{skill}} goes to the shadow threads; the other skills keep their mode.",
535
660
  "live": "The skill {{skill}} works live again, unless its agent works in shadow.",
536
- "code": "The mode in code decides again for the skill {{skill}}."
661
+ "code": "The mode in code decides again for the skill {{skill}}.",
662
+ "own": "The own setting of the skill {{skill}} decides again: {{mode}}."
537
663
  },
538
664
  "confirm": {
539
665
  "shadow": "Confirm shadow",
540
666
  "live": "Confirm live",
541
667
  "code": "Confirm"
668
+ },
669
+ "mode": {
670
+ "shadow": "in shadow",
671
+ "live": "live"
542
672
  }
543
673
  },
544
674
  "service-account": {
@@ -556,9 +686,35 @@
556
686
  "confirm": {
557
687
  "set": "Confirm account",
558
688
  "code": "Confirm"
559
- }
689
+ },
690
+ "input-label-search": "Account"
560
691
  },
561
- "run-config": "Run configuration"
692
+ "run-config": "Run configuration",
693
+ "run-now": "Run now",
694
+ "runs": "Runs",
695
+ "chat": {
696
+ "hidden": "Not in the chat"
697
+ },
698
+ "version-label": "Version",
699
+ "tool-count-one": "{{count}} tool selector",
700
+ "server-count-one": "{{count}} MCP server",
701
+ "required-policy": "Requires:",
702
+ "works-on": {
703
+ "label": "Works on:",
704
+ "all": "All objects",
705
+ "application": "The whole application",
706
+ "and-application": "and the whole application",
707
+ "per-division": "per division",
708
+ "undeclared": "(not stated in code)",
709
+ "known": "Known to work on: {{types}}.",
710
+ "run-policy": "Run for the whole application by: {{policy}}.",
711
+ "view-policy": "Results for the whole application seen by: {{policy}}."
712
+ },
713
+ "groups": "Groups: {{groups}}",
714
+ "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.",
715
+ "warnings": {
716
+ "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."
717
+ }
562
718
  },
563
719
  "agent-editor": {
564
720
  "new-title": "New agent",
@@ -573,7 +729,14 @@
573
729
  "autonomy-hint": "Only Execute allows changes, and every change still needs approval.",
574
730
  "required-policy": "Required policy",
575
731
  "required-policy-hint": "Optional. Only users who pass this policy see the agent.",
732
+ "profile": "Model profile",
733
+ "profile-default": "The application's chat profile",
734
+ "profile-hint": "The model the agent works with, from the profiles the application offers for agents created here.",
735
+ "classification": "Data classification",
736
+ "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.",
576
737
  "state-hint": "Pause, stop and resume the agent from the agent list. Saving never changes its state.",
738
+ "switch-on-now": "Switch on now",
739
+ "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.",
577
740
  "tool-selectors": "Tool selectors",
578
741
  "tool-selectors-hint": "Choose tools from the catalog or add a pattern such as sample-api.project.*. MCP tools come from the assigned servers.",
579
742
  "add-selector": "Add pattern",
@@ -586,7 +749,46 @@
586
749
  "matches": "{{count}} catalog tools match the selectors.",
587
750
  "mcp-servers": "MCP servers",
588
751
  "mcp-servers-hint": "Enabled tools of these servers become available to this agent.",
589
- "mcp-servers-empty": "No MCP servers are configured."
752
+ "mcp-servers-empty": "No MCP servers are configured.",
753
+ "use": {
754
+ "title": "How is this agent used?",
755
+ "chat": "In the chat",
756
+ "chat-hint": "People choose it in the assistant to ask questions and get work done.",
757
+ "background": "On its own",
758
+ "background-hint": "It starts on events or a schedule and proposes work; it is not offered in the chat.",
759
+ "both": "Both",
760
+ "both-hint": "Offered in the chat, and it also starts on events or a schedule.",
761
+ "next": "After saving, a short setup asks when the agent starts, what it does and on whose behalf."
762
+ },
763
+ "works-on": {
764
+ "title": "What does this agent work on?",
765
+ "hint": "Events, schedules, people and other agents start it only on what it works on.",
766
+ "all": "All objects",
767
+ "all-hint": "Every kind of object the application has, now and later.",
768
+ "types": "Chosen kinds of objects",
769
+ "types-hint": "Only the kinds of objects you tick below.",
770
+ "no-types": "The application has no kinds of objects to choose from.",
771
+ "too-many": "Choose at most 20 kinds of objects, or All objects.",
772
+ "known": "Known to work on: {{types}}.",
773
+ "application": "The whole application",
774
+ "application-hint": "Work that concerns no single object, such as a weekly overview.",
775
+ "per-division": "Per division",
776
+ "per-division-hint": "Its work for the whole application, such as its schedules, runs separately for every division.",
777
+ "missing": "Choose at least one kind of object, or the whole application.",
778
+ "run-policy": "Who may run it for the whole application",
779
+ "run-policy-default": "Administrators (default)",
780
+ "run-policy-hint": "People who pass this may start the agent for the whole application.",
781
+ "view-policy": "Who sees its results for the whole application",
782
+ "view-policy-default": "Everyone who may use the agent (default)",
783
+ "view-policy-hint": "Results on an object follow who may read that object."
784
+ },
785
+ "groups": {
786
+ "title": "Groups",
787
+ "hint": "Pages of the application show the agents of a group on a board, with their latest results. Your choice wins over the code.",
788
+ "in-code": "In this group in code",
789
+ "shadow-variant": "A shadow variant works for administrators only and joins no group."
790
+ },
791
+ "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."
590
792
  },
591
793
  "effect": {
592
794
  "read-only": "Read only",
@@ -619,12 +821,59 @@
619
821
  "unassigned": "Not assigned to an agent",
620
822
  "secret-set": "Secret set",
621
823
  "no-secret": "No secret",
824
+ "secret-reference": "Secret from {{reference}}",
825
+ "client-certificate": "Client certificate {{name}}",
826
+ "transport-fallback": "HTTP+SSE fallback",
827
+ "connected": "Last connection {{date}}",
828
+ "connect-failed": "Last connection failed {{date}}",
829
+ "never-connected": "Not connected yet",
830
+ "headless": {
831
+ "never": "Not in background runs",
832
+ "organization": "Background runs with this credential",
833
+ "personal": "Background runs with the person's own account, after consent"
834
+ },
622
835
  "auth": {
623
836
  "none": "No authentication",
624
837
  "bearer": "Bearer token",
625
838
  "api-key": "API key",
626
- "forward-user-token": "Forward the user's token"
627
- }
839
+ "basic": "User name and password",
840
+ "forward-user-token": "Forward the user's token",
841
+ "oauth": "OAuth (authorization)",
842
+ "oauth-client-credentials": "OAuth client credentials"
843
+ },
844
+ "transport": {
845
+ "streamable-http": "Streamable HTTP",
846
+ "auto": "Streamable HTTP with fallback to HTTP+SSE (deprecated)"
847
+ },
848
+ "connection-scope": {
849
+ "organization": "One connection for everyone",
850
+ "user": "Each person connects"
851
+ },
852
+ "connection-status": {
853
+ "not-connected": "Not connected",
854
+ "active": "Connected",
855
+ "reauthorization-required": "Connect again",
856
+ "issuer-changed": "Waiting for confirmation"
857
+ },
858
+ "organization-account": "Everyone acts as {{account}}",
859
+ "connected-by": "Connected by {{actor}} on {{date}}",
860
+ "connect": "Connect",
861
+ "reconnect": "Connect again",
862
+ "disconnect": "Disconnect",
863
+ "confirm-disconnect": "Disconnect and revoke",
864
+ "connecting": "Waiting for the authorization…",
865
+ "connect-done": "The organization's account is connected.",
866
+ "disconnect-done": "The connection was removed and its tokens revoked.",
867
+ "personal-connections": "Personal connections: {{active}}",
868
+ "revoke-all": "Revoke all personal connections",
869
+ "confirm-revoke-all": "Revoke for everyone",
870
+ "revoke-all-done": "Every personal connection was revoked.",
871
+ "issuer-changed": "The server named another authorization server. Edit the server and confirm it.",
872
+ "required-scopes": "The server asked for: {{scopes}}",
873
+ "connect-own": "Connect my account",
874
+ "connect-own-done": "Your own account is connected; tests and syncs use it.",
875
+ "personal-attention": "{{count}} need to connect again",
876
+ "personal-connections-failed": "The personal connections could not be counted."
628
877
  },
629
878
  "server-editor": {
630
879
  "new-title": "New MCP server",
@@ -638,6 +887,10 @@
638
887
  "auth-mode": "Authentication",
639
888
  "header-name": "Header name",
640
889
  "header-name-hint": "Default X-Api-Key.",
890
+ "header-name-invalid": "Use 1 to 128 letters, digits and dashes.",
891
+ "user-name": "User name",
892
+ "user-name-hint": "Sent with the secret as basic authentication.",
893
+ "user-name-invalid": "Enter a user name without a colon, at most 256 characters.",
641
894
  "secret": "Secret",
642
895
  "secret-hint": "Stored encrypted and never shown again.",
643
896
  "secret-set": "A secret is set.",
@@ -647,10 +900,84 @@
647
900
  "secret-will-clear": "The secret will be cleared when you save.",
648
901
  "secret-undo": "Keep the current secret",
649
902
  "secret-new": "New secret",
903
+ "secret-source": "Where the secret is",
904
+ "secret-source-stored": "Stored here, encrypted",
905
+ "secret-source-reference": "A secret of the application",
906
+ "secret-reference": "Secret reference",
907
+ "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.",
908
+ "secret-reference-invalid": "Enter a reference such as config:planning-token.",
909
+ "client-certificate": "Client certificate",
910
+ "client-certificate-hint": "Optional. The name of a certificate that the application configured under NewHeap:AI:Assistant:Mcp:ClientCertificates, presented for mutual TLS.",
911
+ "client-certificate-invalid": "Use letters, digits, dots, underscores and dashes.",
912
+ "transport": "Transport",
913
+ "transport-hint": "Choose the fallback only for a server that does not offer Streamable HTTP yet.",
650
914
  "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.",
915
+ "custom-auth": {
916
+ "organization": "The application supplies this credential; every caller shares it. It takes no secret here.",
917
+ "person": "The application supplies each person's own credential. It takes no secret here."
918
+ },
919
+ "headless-use": "Background runs",
920
+ "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>.*).",
921
+ "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.",
651
922
  "required-policy": "Required policy",
652
923
  "required-policy-hint": "Optional. The server's tools are only available to users who pass this policy.",
653
- "enabled": "Server is enabled"
924
+ "enabled": "Server is enabled",
925
+ "connection-scope": "Who connects",
926
+ "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.",
927
+ "oauth-warning": "With one connection for everyone, every user of the server's agents acts as the connected account, with all its rights.",
928
+ "discover": "Read authorization",
929
+ "discovering": "Reading…",
930
+ "discovery-title": "Authorization found",
931
+ "discovery-issuer": "Authorization server",
932
+ "discovery-resource": "Resource",
933
+ "discovery-scopes": "Scopes offered",
934
+ "discovery-registration": "Registration",
935
+ "registration-metadata-document": "By the host's client metadata document",
936
+ "registration-dynamic": "Dynamic registration",
937
+ "registration-manual": "A client id from the server's administrator is needed",
938
+ "pkce-missing": "This authorization server does not support PKCE with S256; it cannot be used.",
939
+ "confirm-authorization": "I confirm this authorization server for the server",
940
+ "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.",
941
+ "confirmed-authorization": "Confirmed: {{issuer}}",
942
+ "confirm-required": "Read the authorization and confirm it.",
943
+ "scopes": "Scopes",
944
+ "scopes-hint": "Space-separated. Only these scopes are requested; empty leaves the choice to the authorization server.",
945
+ "scopes-invalid": "Use scope names without quotes or backslashes, at most 1,024 characters.",
946
+ "client-id": "Client id",
947
+ "client-id-hint": "Optional for authorization: without one the host registers itself when the server allows it. Required for client credentials.",
948
+ "client-id-required": "Enter the client id the authorization server issued.",
949
+ "client-secret": "Client secret",
950
+ "client-secret-hint": "Stored encrypted and never shown again. Client credentials need a secret, a reference or the client certificate (private_key_jwt).",
951
+ "client-secret-reference": "Client secret reference",
952
+ "organization-account-label": "Connected account",
953
+ "organization-account-label-hint": "Which account the organization connects, for example \"Planning service account\". Everyone using the server sees it.",
954
+ "organization-account-label-required": "Name the account that will be connected.",
955
+ "reader": {
956
+ "title": "Reading documents",
957
+ "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.",
958
+ "empty": "This server reads no files.",
959
+ "item": "Reader {{number}}",
960
+ "add": "Add reader",
961
+ "add-hint": "Each reader is one of the server's synced tools; a server has at most {{max}}.",
962
+ "limit": "This server has the most readers it can have ({{max}}).",
963
+ "remove": "Remove",
964
+ "remove-label": "Remove reader {{number}}",
965
+ "media-types": "Media types",
966
+ "media-types-hint": "Comma-separated, at most 16, such as application/vnd.openxmlformats-officedocument.wordprocessingml.document.",
967
+ "media-types-invalid": "Enter 1 to 16 media types of the form type/subtype, separated by commas.",
968
+ "tool": "Reading tool",
969
+ "tool-choose": "Choose a tool",
970
+ "tool-hint": "A tool synced from this server that turns a file into text. It does not have to be enabled for agents.",
971
+ "tool-duplicate": "Another reader of this server already uses this tool.",
972
+ "tool-sync": "Sync the server's tools first, then add a reader.",
973
+ "priority": "Priority",
974
+ "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.",
975
+ "priority-invalid": "Enter a whole number from {{min}} to {{max}}.",
976
+ "max-classification": "Highest classification",
977
+ "max-classification-choose": "Choose a classification",
978
+ "max-classification-hint": "A file that is more sensitive is never sent to this server.",
979
+ "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."
980
+ }
654
981
  },
655
982
  "tools": {
656
983
  "title": "Tools of {{name}}",
@@ -798,11 +1125,23 @@
798
1125
  "replay-progress": "{{replayed}} of at most {{max}} runs replayed, {{skipped}} skipped"
799
1126
  },
800
1127
  "run-config": {
1128
+ "files": {
1129
+ "label": "Accepts files",
1130
+ "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.",
1131
+ "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.",
1132
+ "limits-title": "Lower file limits",
1133
+ "agent-limits-hint": "Leave a field empty to keep the application's limit. A value can only lower it.",
1134
+ "skill-limits-hint": "Leave a field empty to keep the agent's limit. A value can only lower the application's.",
1135
+ "max-file-megabytes": "Largest file (MB)",
1136
+ "max-file-pages": "Most pages per file",
1137
+ "max-files-per-turn": "Most files per turn",
1138
+ "max-file-tokens-per-turn": "Most file tokens per turn",
1139
+ "application-limit": "The application allows at most {{value}}."
1140
+ },
801
1141
  "back": "Back to agents",
802
1142
  "title": "Run configuration of {{name}}",
803
1143
  "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.",
804
1144
  "problems": {
805
- "title": "Some settings no longer fit the application and are out of effect:",
806
1145
  "kind": {
807
1146
  "agent": "Run settings:",
808
1147
  "skill": "Skill {{id}}:",
@@ -821,18 +1160,29 @@
821
1160
  "unknown-subject-set": "the set of subjects no longer exists.",
822
1161
  "unknown-skill": "the skill no longer exists.",
823
1162
  "invalid-schedule": "the schedule or its time zone is not valid.",
824
- "invalid": "a value is not valid."
1163
+ "invalid": "a value is not valid.",
1164
+ "not-worked-on": "it concerns a kind of object, or the whole application, that the agent does not work on."
825
1165
  }
826
1166
  },
827
1167
  "field-errors": {
828
1168
  "required": "Required.",
829
1169
  "invalid": "Not valid here.",
830
1170
  "too-long": "Too long.",
831
- "not-found": "The application does not know this name."
1171
+ "not-found": "The application does not know this name.",
1172
+ "at-least": "Enter a whole number of at least {{min}}.",
1173
+ "between": "Enter a whole number from {{min}} to {{max}}.",
1174
+ "budget-pair": "Fill in both daily limits, or neither.",
1175
+ "dash-case": "Use lowercase letters, digits and dashes, starting with a letter.",
1176
+ "taken": "This id is already in use.",
1177
+ "name-letters": "Use at least one letter in the name.",
1178
+ "instructions-for-model": "Without fixed rules the model works from these instructions; describe what it should do.",
1179
+ "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.",
1180
+ "megabytes-up-to": "Enter a size above 0 and at most {{max}} MB.",
1181
+ "megabytes-positive": "Enter a size above 0 MB."
832
1182
  },
833
1183
  "settings": {
834
1184
  "title": "Run settings",
835
- "empty": "This agent only chats. Give it run settings to let it work on its own, with skills and triggers.",
1185
+ "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.",
836
1186
  "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.",
837
1187
  "add": "Add run settings",
838
1188
  "edit": "Change run settings",
@@ -859,14 +1209,42 @@
859
1209
  "deny": "Refuse"
860
1210
  },
861
1211
  "gateway-reads": "Read through the application's data gateway with the account's rights",
862
- "delegate": "Also use what the person who starts a run may use"
1212
+ "delegate": "Also use what the person who starts a run may use",
1213
+ "add-title": "Run settings",
1214
+ "edit-title": "Change the run settings",
1215
+ "who": {
1216
+ "title": "On whose behalf does the agent work?",
1217
+ "short": "On behalf of",
1218
+ "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."
1219
+ },
1220
+ "accountability-explain": {
1221
+ "service-account": "A technical account, for example an operations account. The usual choice.",
1222
+ "subject-responsible": "The person responsible for the project or customer the run is about.",
1223
+ "agent": "The agent itself: it has no rights and can only propose."
1224
+ },
1225
+ "how": {
1226
+ "title": "How does it work?",
1227
+ "hint": "Fixed rules decide without a model and hand doubtful cases to the model. This applies to runs that no skill handles."
1228
+ },
1229
+ "approval": {
1230
+ "title": "Who approves its proposals?",
1231
+ "default": "The application's default",
1232
+ "hint": "Proposals that change data wait for this approval; nothing executes before it."
1233
+ },
1234
+ "no-triage": "No triage",
1235
+ "retries-hint": "How often a failed run is tried again.",
1236
+ "max-concurrent-hint": "Runs of this agent that work at the same time.",
1237
+ "max-per-subject-hint": "Protects a project or customer from too many runs in one day.",
1238
+ "elevated-reads-hint": "What happens when the agent reads data that the reader of its thread may not see.",
1239
+ "gateway-reads-hint": "Lets the agent read through the application's data gateway, such as its API, as the account.",
1240
+ "delegate-hint": "When a person starts a run by hand, the agent may also use that person's rights."
863
1241
  },
864
1242
  "rule-handler": "Rules",
865
1243
  "rule-handler-value": "Rules: {{name}}",
866
1244
  "policy-value": "Approval: {{name}}",
867
1245
  "profile-value": "Model: {{name}}",
868
1246
  "approval-policy": "Approval policy",
869
- "model": "The model, no rules",
1247
+ "model": "The model decides (no fixed rules)",
870
1248
  "none": "None",
871
1249
  "choose": "Choose…",
872
1250
  "max-tokens": "Tokens per run",
@@ -893,7 +1271,7 @@
893
1271
  "instructions": "Instructions",
894
1272
  "instructions-hint": "Read after the agent's own instructions while it works in the skill.",
895
1273
  "tools": "Tools",
896
- "tools-hint": "Narrow the agent's tools for this skill. None selected: the agent's tools.",
1274
+ "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.",
897
1275
  "profile": "Model profile",
898
1276
  "agent-profile": "The agent's profile",
899
1277
  "agent-policy": "The agent's policy",
@@ -901,8 +1279,39 @@
901
1279
  "apply-shadow": "Evaluate in shadow next to the live version first",
902
1280
  "apply-live": "Put live at once",
903
1281
  "starts-in-shadow": "A new skill starts in shadow.",
1282
+ "switch-on-now": "Switch on now",
1283
+ "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.",
904
1284
  "versions": "Versions",
905
- "remove-explain": "Its versions stay as history. A trigger that starts it must go first."
1285
+ "remove-explain": "Its versions stay as history. A trigger that starts it must go first.",
1286
+ "what": {
1287
+ "title": "What is the skill for?"
1288
+ },
1289
+ "how": {
1290
+ "title": "How does it work?"
1291
+ },
1292
+ "rules-hint": "The rules decide without a model; a doubtful case goes to the model with the instructions below.",
1293
+ "model-hint": "The model decides with the instructions below and the chosen tools.",
1294
+ "profile-hint": "The model profile it uses; by default the agent's.",
1295
+ "classification": {
1296
+ "label": "Data classification",
1297
+ "agent": "The agent's classification",
1298
+ "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.",
1299
+ "public": "Public",
1300
+ "public-hint": "Data anyone may see.",
1301
+ "internal": "Internal",
1302
+ "internal-hint": "Data of the organization; the default.",
1303
+ "confidential": "Confidential",
1304
+ "confidential-hint": "Data only some people may see, such as personal or financial data.",
1305
+ "restricted": "Restricted",
1306
+ "restricted-hint": "The most sensitive data, for which only specially approved models may be used."
1307
+ },
1308
+ "warnings": {
1309
+ "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."
1310
+ },
1311
+ "apply-shadow-hint": "The new version runs next to the live one; compare them, then promote or discard it.",
1312
+ "apply-live-hint": "For a small correction: the new version replaces the live one at once.",
1313
+ "tools-pattern": "All tools that match: {{count}} now.",
1314
+ "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."
906
1315
  },
907
1316
  "candidate": {
908
1317
  "badge": "Candidate v{{version}}",
@@ -968,8 +1377,295 @@
968
1377
  "schedule": "Schedule",
969
1378
  "webhook": "Webhook"
970
1379
  },
971
- "starts-in-shadow": "A new trigger starts in shadow."
1380
+ "starts-in-shadow": "A new trigger starts in shadow.",
1381
+ "id-hint": "Lowercase letters, digits and dashes, for example project-created.",
1382
+ "when": {
1383
+ "title": "When does it start?"
1384
+ },
1385
+ "then": {
1386
+ "title": "Then"
1387
+ },
1388
+ "source-event-hint": "Something happens in the application, such as a project being created.",
1389
+ "source-schedule-hint": "At fixed times, for every subject in a set.",
1390
+ "source-schedule-application-hint": "At fixed times, for the whole application or for every object in a set.",
1391
+ "debounce-hint": "Waits this long for more events about the same subject and handles them in one run.",
1392
+ "subject-set-hint": "The projects or customers the schedule handles each time.",
1393
+ "message-hint": "What the agent reads as its task each time.",
1394
+ "examples": "Examples",
1395
+ "example": {
1396
+ "weekdays-8": "Weekdays at 8:00",
1397
+ "daily-7": "Daily at 7:00",
1398
+ "monday-9": "Mondays at 9:00",
1399
+ "hourly": "Every hour"
1400
+ },
1401
+ "conflict-explain": {
1402
+ "coalesce": "Adds the event to the waiting run.",
1403
+ "queue": "Runs again after the busy run.",
1404
+ "supersede": "Replaces the waiting run with this event.",
1405
+ "ignore": "Skips this event or tick."
1406
+ },
1407
+ "live-badge": "Live",
1408
+ "target": {
1409
+ "title": "What does it run for each time?",
1410
+ "application": "The whole application",
1411
+ "application-hint": "One run each time, about the application as a whole.",
1412
+ "application-per-division-hint": "One run each time for every division, each in its own thread.",
1413
+ "set": "Every object in a set",
1414
+ "set-hint": "One run each time for every object in a set, such as the active projects.",
1415
+ "every-division": "Every division",
1416
+ "dropped": "This schedule ran for the whole application, which the agent no longer works on. Choose a set of objects."
1417
+ }
1418
+ },
1419
+ "way-of-working": "Way of working",
1420
+ "check-fields": "Check the marked fields.",
1421
+ "limits": {
1422
+ "title": "Limits"
1423
+ },
1424
+ "advanced": {
1425
+ "title": "Advanced",
1426
+ "explain": "These options have sensible defaults; change them only when you need to."
1427
+ },
1428
+ "account": {
1429
+ "search-placeholder": "Search by name or e-mail address",
1430
+ "id-placeholder": "The account's id",
1431
+ "search-hint": "Choose the account by name or e-mail address. It must be able to sign in.",
1432
+ "id-hint": "The application offers no account search; enter the account's id. It must be able to sign in.",
1433
+ "known": "Account: {{name}}",
1434
+ "unknown": "The application does not know this account.",
1435
+ "lookup-again": "Look up again"
1436
+ },
1437
+ "policy-summary": {
1438
+ "who": "Approved by {{approvers}}.",
1439
+ "nobody": "Nobody is named to approve.",
1440
+ "or": "or",
1441
+ "wait": "A proposal waits {{duration}}.",
1442
+ "mode": {
1443
+ "inline": "The run waits for the decision.",
1444
+ "deferred": "The run ends; people decide later."
1445
+ },
1446
+ "four-eyes": "Whoever caused the proposal may not approve it.",
1447
+ "approver": {
1448
+ "initiator": "the person who caused it",
1449
+ "named-role": "someone with the role {{role}} on the subject",
1450
+ "subject-role": {
1451
+ "reader": "a reader of the subject",
1452
+ "participant": "a participant of the subject",
1453
+ "approver": "an approver of the subject"
1454
+ },
1455
+ "policy": "someone with the right {{policy}}"
1456
+ },
1457
+ "duration": {
1458
+ "minute": "1 minute",
1459
+ "minutes": "{{count}} minutes",
1460
+ "hour": "1 hour",
1461
+ "hours": "{{count}} hours",
1462
+ "day": "1 day",
1463
+ "days": "{{count}} days"
1464
+ }
1465
+ },
1466
+ "setup": {
1467
+ "start": "Let this agent work on its own",
1468
+ "title": "Let {{name}} work on its own",
1469
+ "explain": "Four short questions. Everything starts in shadow: the agent works, but nobody is notified and nothing executes until you put it live.",
1470
+ "progress": "Steps",
1471
+ "step": {
1472
+ "when": "When",
1473
+ "what": "What",
1474
+ "who": "On whose behalf",
1475
+ "limits": "Approval and limits",
1476
+ "review": "Review"
1477
+ },
1478
+ "when": {
1479
+ "title": "When does the agent start?"
1480
+ },
1481
+ "what": {
1482
+ "title": "What does it do?",
1483
+ "name": "Name of the task",
1484
+ "name-hint": "A short name, for example \"Start new projects\".",
1485
+ "name-id": "Its id becomes {{id}}."
1486
+ },
1487
+ "limits": {
1488
+ "title": "Who approves, and what are its limits?"
1489
+ },
1490
+ "review": {
1491
+ "title": "Review",
1492
+ "event": "When {{event}} happens",
1493
+ "schedule": "On the schedule {{cron}} ({{zone}}), for {{set}}",
1494
+ "schedule-application": "On the schedule {{cron}} ({{zone}}), for the whole application",
1495
+ "schedule-divisions": "On the schedule {{cron}} ({{zone}}), for the whole application in every division",
1496
+ "shadow": "The task and its trigger start in shadow. Put them live now, or later from the run configuration."
1497
+ },
1498
+ "no-events": "The application registers no events yet; choose a schedule.",
1499
+ "next": "Next",
1500
+ "back": "Back",
1501
+ "save-shadow": "Save in shadow",
1502
+ "save-live": "Save and put live",
1503
+ "done": "Saved.",
1504
+ "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.",
1505
+ "saved-live": "The agent works live now."
1506
+ },
1507
+ "note-hint": "Kept with this version in its history, with your name and the time. The agent does not read it.",
1508
+ "flow": {
1509
+ "title": "At a glance",
1510
+ "description": "How the agent works, from what it works on to its results. Each step opens the form that changes it.",
1511
+ "problems": "Some settings no longer fit the application and are out of effect. Each shows at its step below, with what fixes it.",
1512
+ "attention-one": "1 to fix",
1513
+ "attention": "{{count}} to fix",
1514
+ "warnings": "To fix",
1515
+ "steps": {
1516
+ "works-on": "What it works on",
1517
+ "when": "When it runs",
1518
+ "skills": "How it works",
1519
+ "account": "Who it answers to",
1520
+ "approval": "Who approves its proposals",
1521
+ "results": "Its results"
1522
+ },
1523
+ "works-on": {
1524
+ "undeclared": "Its code does not say, so it works on all objects and not on the whole application.",
1525
+ "in-code": "Set in the application's code."
1526
+ },
1527
+ "target": {
1528
+ "application": "For the whole application",
1529
+ "every-division": "For every division",
1530
+ "type": "For the object it names: {{value}}",
1531
+ "set": "For every object in {{value}}",
1532
+ "code-set": "For every object of a set in code",
1533
+ "when-fired": "For the object the event names"
1534
+ },
1535
+ "when": {
1536
+ "none": "No trigger starts it: it runs only when someone runs it now.",
1537
+ "scope": {
1538
+ "objects": "Run now: for one of the objects it works on.",
1539
+ "application": "Run now: for the whole application.",
1540
+ "application-and-objects": "Run now: for the whole application or one of the objects it works on.",
1541
+ "division": "Run now: for one division at a time.",
1542
+ "division-and-objects": "Run now: for one division at a time or one of the objects it works on."
1543
+ },
1544
+ "run-policy": "For the whole application only by: {{policy}}.",
1545
+ "run-policy-default": "the assistant's administrators",
1546
+ "paused": "It is paused: a run started now waits until it is resumed.",
1547
+ "run-now-unavailable": {
1548
+ "stopped": "Run now: not while the agent is stopped.",
1549
+ "configured-off": "Run now: not while the application's code switches the agent off.",
1550
+ "no-settings": "Run now: only once the agent has run settings.",
1551
+ "no-catalog": "Run now: not until the run catalog can be read."
1552
+ }
1553
+ },
1554
+ "skills": {
1555
+ "code-rules": "Fixed rules in the application's code",
1556
+ "none": "No skills: every run works by its way of working and instructions.",
1557
+ "tools": "Its tools",
1558
+ "no-tools": "No tools: it can only answer.",
1559
+ "more-tools": "And {{count}} more.",
1560
+ "places-at": "A run's proposal waits at the object it names ({{type}}), where that object's approvers decide.",
1561
+ "places-in-run": "A run's proposal waits in the run's own thread.",
1562
+ "servers": "Its MCP servers",
1563
+ "tool-not-offered": "{{selector}} is no longer offered: no tool of the application matches it."
1564
+ },
1565
+ "effect": {
1566
+ "read-only": "Reads",
1567
+ "idempotent-mutation": "Changes",
1568
+ "mutation": "Changes",
1569
+ "destructive": "Removes"
1570
+ },
1571
+ "servers": {
1572
+ "headless": {
1573
+ "never": "Not in runs on their own",
1574
+ "organization": "The organization's account",
1575
+ "personal": "Personal accounts"
1576
+ },
1577
+ "use": {
1578
+ "unknown": "Whether it is used in runs that start on their own is not known here.",
1579
+ "missing": "This server no longer exists.",
1580
+ "disabled": "The server is switched off.",
1581
+ "never": "Its tools are left out of runs that start on their own, such as trigger runs.",
1582
+ "organization": "Its tools are used in runs that start on their own, with the organization's credential.",
1583
+ "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.",
1584
+ "personal": "Its tools are used in runs that start on their own only with the consent of the person a run acts for.",
1585
+ "personal-responsible": "Its tools are used with the account of the person responsible for the object, once that person allows background use.",
1586
+ "personal-initiator": "Its tools are used only in runs a person started, with that person's account and consent.",
1587
+ "personal-never-account": "Its tools are not used: a technical account has no personal connection.",
1588
+ "personal-never-agent": "Its tools are not used: an agent that answers to itself has no personal connection."
1589
+ },
1590
+ "warning": {
1591
+ "missing": "MCP server {{server}} no longer exists.",
1592
+ "disabled": "MCP server {{server}} is switched off.",
1593
+ "never": "MCP server {{server}} is not used in runs that start on their own: its background use is off.",
1594
+ "personal-never-account": "MCP server {{server}} is not used: it works with personal accounts and the agent answers to a technical account.",
1595
+ "personal-never-agent": "MCP server {{server}} is not used: it works with personal accounts and the agent answers to itself."
1596
+ }
1597
+ },
1598
+ "account": {
1599
+ "no-settings": "It has no run settings yet, so it cannot run on its own.",
1600
+ "rights": {
1601
+ "agent": "It has no rights of its own and can only propose.",
1602
+ "subject-responsible": "Runs use what the person responsible for the object may use, within its tools.",
1603
+ "service-account": "Runs use what this account may use, within its tools."
1604
+ },
1605
+ "delegates": "It also uses what the person who starts a run may use.",
1606
+ "overridden": "An administrator replaced the account in code.",
1607
+ "in-code": "Set in the application's code."
1608
+ },
1609
+ "approval": {
1610
+ "autonomy": "What it may do:",
1611
+ "skill": "Skill {{skill}}:",
1612
+ "no-settings": "Chosen with the run settings.",
1613
+ "in-code": "Set in the application's code."
1614
+ },
1615
+ "results": {
1616
+ "groups": "Groups:",
1617
+ "no-groups": "In no group, so no board shows it.",
1618
+ "view-policy": "Its results for the whole application are seen by: {{policy}}.",
1619
+ "view-policy-default": "everyone who may use the agent",
1620
+ "shadow": "It works in shadow: its runs go to shadow threads that only administrators see.",
1621
+ "latest": "Latest runs",
1622
+ "more-runs": "And {{count}} earlier runs in its runs."
1623
+ },
1624
+ "entry": {
1625
+ "works-on": "Change what it works on",
1626
+ "tools": "Change its tools and MCP servers",
1627
+ "settings": "Change the run settings",
1628
+ "approval": "Change the approval",
1629
+ "runs": "All runs",
1630
+ "groups": "Change its groups",
1631
+ "mcp-servers": "Open the MCP servers",
1632
+ "edit-trigger": "Change the trigger",
1633
+ "edit-skill": "Change the skill",
1634
+ "edit-trigger-named": "Edit trigger {{trigger}}",
1635
+ "edit-skill-named": "Edit skill {{skill}}"
1636
+ }
972
1637
  }
1638
+ },
1639
+ "runs": {
1640
+ "title": "Runs",
1641
+ "description": "Every run of this agent, newest first, with what it worked on, its result, proposals, usage and duration. Shadow runs are marked.",
1642
+ "back": "Back to agents",
1643
+ "back-to-run-config": "Back to the run configuration",
1644
+ "back-to-runs": "Back to the runs",
1645
+ "filters": "Filter the runs",
1646
+ "subject-type": "Works on",
1647
+ "any-subject": "Everything",
1648
+ "whole-application": "The whole application",
1649
+ "subject-id": "Object",
1650
+ "subject-id-hint": "The object's id, as a run shows it; leave it empty for every object of this kind.",
1651
+ "status": "Status",
1652
+ "any-status": "Every status",
1653
+ "from": "From",
1654
+ "to": "Until (inclusive)",
1655
+ "period-invalid": "The end of the period comes before its start.",
1656
+ "apply": "Show runs",
1657
+ "clear": "Clear filters",
1658
+ "empty": "No runs match.",
1659
+ "count": "{{shown}} of {{total}} runs",
1660
+ "more": "Show more runs",
1661
+ "only-object": "Runs on this object",
1662
+ "only-application": "Runs for the whole application"
1663
+ },
1664
+ "account-names-failed": "The names of accounts could not be read; their account IDs are shown instead.",
1665
+ "account": {
1666
+ "id": "Account ID {{id}}",
1667
+ "copy-id": "Copy the account ID of {{name}}",
1668
+ "id-copied": "Account ID copied"
973
1669
  }
974
1670
  },
975
1671
  "page-context": {
@@ -1051,9 +1747,14 @@
1051
1747
  "superseded": "The current run stops and the agent starts again.",
1052
1748
  "ignored": "The agent is busy; nothing was started.",
1053
1749
  "deduplicated": "This was already started.",
1054
- "rejected": "The agent could not be started."
1750
+ "waiting": "The agent is paused. It starts when it is resumed.",
1751
+ "deferred": "The start is recorded and goes ahead as soon as the change it belongs to is saved."
1055
1752
  },
1056
- "shadow": "Shadow thread: only administrators see it, and nothing proposed here executes."
1753
+ "shadow": "Shadow thread: only administrators see it, and nothing proposed here executes.",
1754
+ "waiting": {
1755
+ "assistant-agent-paused": "The agent is paused. This run starts when an administrator resumes it.",
1756
+ "assistant-skill-paused": "The agent's skill for this is paused. This run starts when an administrator resumes it."
1757
+ }
1057
1758
  },
1058
1759
  "subject": {
1059
1760
  "title": "Agent suggestions",
@@ -1117,7 +1818,15 @@
1117
1818
  "dismiss": "Dismiss",
1118
1819
  "dismiss-label": "Dismiss the closed proposal: {{summary}}",
1119
1820
  "show-successor": "Show the newer proposal",
1120
- "stale-by": "Overtaken by {{actor}}"
1821
+ "stale-by": "Overtaken by {{actor}}",
1822
+ "placed-by": {
1823
+ "application": "Proposed by a run for the whole application",
1824
+ "division": "Proposed by a run for the whole application in {{name}}",
1825
+ "object": "Proposed by a run for another object",
1826
+ "object-named": "Proposed by a run for another object: {{type}}",
1827
+ "open": "Open the run's conversation",
1828
+ "open-label": "Open the conversation of the run that proposed this"
1829
+ }
1121
1830
  },
1122
1831
  "run": {
1123
1832
  "empty": "No runs yet.",
@@ -1148,6 +1857,7 @@
1148
1857
  "tool-calls": "{{count}} tool calls",
1149
1858
  "tokens": "{{count}} tokens",
1150
1859
  "proposals": "{{count}} proposals",
1860
+ "mcp-skipped": "{{count}} connected services left out",
1151
1861
  "attempt": "Attempt {{attempt}}",
1152
1862
  "cancel": "Cancel",
1153
1863
  "resume": "Resume",
@@ -1179,7 +1889,129 @@
1179
1889
  "completed": "Answered",
1180
1890
  "failed": "Not answered"
1181
1891
  }
1892
+ },
1893
+ "object-agents": {
1894
+ "title": "Agents",
1895
+ "description": "The agents that work on this, their latest result and what they propose.",
1896
+ "loading": "Loading the agents…",
1897
+ "empty": "No agent works on this that you may use.",
1898
+ "latest": "Latest run",
1899
+ "never": "Not run here yet.",
1900
+ "no-result": "No result yet.",
1901
+ "result-label": "Result",
1902
+ "shadow": "In shadow",
1903
+ "proposals": "{{count}} open proposals",
1904
+ "proposals-one": "1 open proposal",
1905
+ "proposals-none": "No open proposals",
1906
+ "run-now": "Run now",
1907
+ "show-work": "Show the work",
1908
+ "hide-work": "Hide the work",
1909
+ "failure": "Why: {{reason}}"
1910
+ },
1911
+ "result": {
1912
+ "loading": "Loading the run…",
1913
+ "not-found": "This run does not exist or you may not see it.",
1914
+ "show": "Show the result",
1915
+ "hide": "Hide the result",
1916
+ "started": "Started",
1917
+ "duration": "Duration",
1918
+ "duration-seconds": "{{count}} s",
1919
+ "duration-minutes": "{{count}} min",
1920
+ "usage": "Usage",
1921
+ "failure": "Why it stopped",
1922
+ "answer": "Result",
1923
+ "truncated": "The answer was longer; this is its beginning.",
1924
+ "no-answer": "This run kept no answer.",
1925
+ "proposals": "Proposals",
1926
+ "no-proposals": "This run proposed nothing.",
1927
+ "hidden-proposals": "{{count}} more proposals wait at objects you may not see.",
1928
+ "files": "Files",
1929
+ "mcp-skipped": "Connected services left out"
1930
+ },
1931
+ "board": {
1932
+ "title": "Agents",
1933
+ "loading": "Loading the board…",
1934
+ "not-found": "This board does not exist, or you may not see any of its agents.",
1935
+ "last-visit": "You last looked here on {{date}}. What came since is marked new.",
1936
+ "first-visit": "Everything here is new for you.",
1937
+ "new": "New",
1938
+ "new-label": "New since your last visit",
1939
+ "works-on": "Works on {{list}}",
1940
+ "works-on-all": "all kinds of objects",
1941
+ "works-on-application": "the whole application",
1942
+ "works-on-application-per-division": "the whole application, per division",
1943
+ "per-division": "Works per division: its results show on the board of a division.",
1944
+ "objects-only": "Works on objects only: its results show with each object.",
1945
+ "latest": "Latest result",
1946
+ "never": "Not run for the whole application yet.",
1947
+ "run-now": "Run now",
1948
+ "show-proposals": "Show the proposals",
1949
+ "hide-proposals": "Hide the proposals",
1950
+ "show-history": "Show the history",
1951
+ "hide-history": "Hide the history",
1952
+ "history-title": "Runs for the whole application",
1953
+ "history-loading": "Loading the runs…",
1954
+ "history-empty": "No runs yet.",
1955
+ "history-more": "Show more runs",
1956
+ "history-limited": "Older runs are not shown here."
1957
+ }
1958
+ },
1959
+ "subject-picker": {
1960
+ "search-placeholder": "Search by name",
1961
+ "id-placeholder": "Id",
1962
+ "id-hint": "This kind of object is chosen by its id.",
1963
+ "looking-up": "Looking up…",
1964
+ "found": "Found: {{name}}",
1965
+ "not-found": "No object with this id was found, or you may not see it.",
1966
+ "whole-application-hint": "The agent runs once, for the application as a whole.",
1967
+ "division-placeholder": "Search a division by name",
1968
+ "look-up-again": "Look up again"
1969
+ },
1970
+ "run-now": {
1971
+ "title": "Run {{agent}} now",
1972
+ "close": "Close",
1973
+ "whole-application": "The whole application",
1974
+ "target": "What should the agent work on this time?",
1975
+ "per-division": "In one division",
1976
+ "application": "The whole application",
1977
+ "division": "Division",
1978
+ "object": "{{type}}",
1979
+ "subject-required": "Choose what the agent works on.",
1980
+ "no-target": "This agent works on nothing it can be run on here.",
1981
+ "no-divisions": "The application lists no divisions, so this agent cannot be run now.",
1982
+ "on": "Runs on",
1983
+ "message": "Instruction for the agent (optional)",
1984
+ "message-hint": "The agent reads it at the start of this run.",
1985
+ "cancel": "Cancel",
1986
+ "submit": "Run now",
1987
+ "starting": "Starting…",
1988
+ "receipt-subject": "On",
1989
+ "open-conversation": "Open the conversation",
1990
+ "done": "Done",
1991
+ "errors": {
1992
+ "assistant-agent-forbidden": "You may not run this agent here.",
1993
+ "assistant-subject-access-denied": "Your role on this does not allow running the agent.",
1994
+ "assistant-agent-does-not-work-on": "The agent does not work on this. Choose something it works on."
1182
1995
  }
1996
+ },
1997
+ "picker": {
1998
+ "toggle": "Show the choices",
1999
+ "searching": "Searching…",
2000
+ "type-more": "Type at least two characters.",
2001
+ "no-results": "Nothing found.",
2002
+ "search-failed": "The search failed.",
2003
+ "search-again": "Search again"
2004
+ },
2005
+ "connection": {
2006
+ "title": "Connect {{name}}",
2007
+ "not-connected": "The assistant could not use {{name}}, because your account is not connected. Connect it to let the assistant work with it on your behalf.",
2008
+ "reauthorization-required": "Your connection to {{name}} has ended. Connect again to let the assistant use it.",
2009
+ "insufficient-scope": "{{name}} needs more permissions than your connection grants. Connect again to grant them.",
2010
+ "connect": "Connect",
2011
+ "connect-again": "Connect again",
2012
+ "connecting": "Waiting for the authorization…",
2013
+ "connected": "{{name}} is connected.",
2014
+ "retry": "Ask again"
1183
2015
  }
1184
2016
  }
1185
2017
  }