@cat-factory/app 0.206.0 → 0.208.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.
@@ -127,6 +127,24 @@ export interface TutorialTour {
127
127
  icon?: string
128
128
  /** Sort key in the tour list; ties break on `id` so the order is deterministic. */
129
129
  order: number
130
+ /**
131
+ * Whether the LAUNCH PROMPT offers this tour. Absent = offered, so a consumer deployment's
132
+ * own tour appears beside the built-ins with nothing to declare.
133
+ *
134
+ * The prompt is one question a new user is trying to answer in a glance; the catalogue is the
135
+ * library. That split only holds while the prompt stays short, and the catalog does not: the
136
+ * built-ins now cover the platform (the engine, the pipeline builder, the standards library,
137
+ * the integrations) alongside the delivery loop, and every platform tour is startable on a
138
+ * brand-new board, because all it needs is a permission. Offered unfiltered they would put
139
+ * six walkthroughs in front of someone whose board has neither a repository nor a task,
140
+ * burying the two they can act on under four they have no reason to care about yet.
141
+ *
142
+ * This thins an OFFER, never the library — the distinction {@link resolveTourCatalogue} exists
143
+ * to keep. An un-offered tour is listed, startable, counted in the progress line and reachable
144
+ * from the prompt's own "See all tutorials" footer button, so nothing here can make a
145
+ * walkthrough disappear; only `requires` can hold one back, and that is always reported.
146
+ */
147
+ offeredAtLaunch?: boolean
130
148
  /**
131
149
  * What this board/user must have before the tour can run, over the same reactive
132
150
  * {@link NavGates} the nav catalog uses — so a tour about a surface the caller can't reach
@@ -246,7 +264,7 @@ export function resolveTourCatalogue(
246
264
  })
247
265
  }
248
266
 
249
- /** The tours that can be started right now, resolved — the launch prompt's offer list. */
267
+ /** The tours that can be started right now, resolved — what the overlay may run. */
250
268
  export function resolveTours(
251
269
  tours: readonly TutorialTour[],
252
270
  gates: NavGates | null,
@@ -256,6 +274,18 @@ export function resolveTours(
256
274
  .map((entry) => entry.tour)
257
275
  }
258
276
 
277
+ /**
278
+ * Does the launch prompt offer this tour? See {@link TutorialTour.offeredAtLaunch} for why the
279
+ * prompt shows a subset while the catalogue shows everything.
280
+ *
281
+ * One function rather than an inline `!== false` at each site, because the DEFAULT is the whole
282
+ * subtlety: a tour that declares nothing is offered, so a reader spelling the check out
283
+ * themselves has to get the polarity of an absent field right.
284
+ */
285
+ export function isLaunchOffer(tour: TutorialTour): boolean {
286
+ return tour.offeredAtLaunch !== false
287
+ }
288
+
259
289
  /**
260
290
  * Where a tour stands for this user: the state the catalogue badges and the action label
261
291
  * derive from. Camel-cased because the values ARE the i18n leaf keys
@@ -3748,13 +3748,21 @@
3748
3748
  "binaryOutputGeneratorsPlaceholder": "Keine Integration ausgewählt",
3749
3749
  "binaryOutputModalities": "Muss liefern",
3750
3750
  "binaryOutputModalitiesPlaceholder": "Keine Anforderung",
3751
+ "binaryOutputMediaTypes": "Exakte Formate",
3752
+ "binaryOutputMediaTypesPlaceholder": "Keine Formatanforderung",
3753
+ "binaryOutputDeclaredFormats": "Ausgewählte Integrationen geben an: {formats}",
3754
+ "binaryOutputMediaTypeUncovered": "Keine ausgewählte Integration erzeugt {formats}, was dieser Schritt liefern soll. Wähle eine, die das kann, oder entferne die Anforderung.",
3755
+ "binaryOutputMediaTypeUnverifiable": "Keine ausgewählte Integration gibt {formats} an, aber eine von ihnen gibt überhaupt keine Formate an, daher konnte das nicht geprüft werden. Der Schritt startet trotzdem; prüfe in der API der Integration, ob sie das erzeugen kann.",
3756
+ "binaryOutputMediaTypeUnusable": "Nicht gespeichert, denn dies sind keine Medientypen: {entries}. Schreibe jeden als type/subtype.",
3751
3757
  "binaryOutputGeneratorMissing": "Diese Installation registriert diese generativen Integrationen nicht: {ids}. Sie werden im Code der Installation registriert, nicht in diesem Workspace.",
3752
3758
  "binaryOutputModalityUncovered": "Keine ausgewählte Integration erzeugt {modalities}, was dieser Schritt liefern soll.",
3759
+ "binaryOutputModalityRetired": "{modality} (nicht mehr verfügbar — wähle die Inhaltstypen dieses Schritts neu)",
3753
3760
  "binaryOutputModality": {
3754
3761
  "image": "Bilder",
3755
3762
  "audio": "Audio",
3756
3763
  "video": "Video",
3757
- "3d": "3D-Modelle",
3764
+ "3d-model": "3D-Modelle",
3765
+ "3d-scene": "3D-Szenen",
3758
3766
  "document": "Dokumente"
3759
3767
  }
3760
3768
  },
@@ -4412,6 +4420,7 @@
4412
4420
  "target": "Speicherdienst",
4413
4421
  "targetNone": "Für diesen Schritt nicht erfasst",
4414
4422
  "contextServices": "Kontext der Erzeugung",
4423
+ "mediaTypes": "Geforderte Formate",
4415
4424
  "misdirectedBadge": "Anderer Dienst",
4416
4425
  "unknownBadge": "Nicht im Katalog",
4417
4426
  "storedCount": "{outcome}, 1 Artefakt | {outcome}, {count} Artefakte",
@@ -4443,6 +4452,7 @@
4443
4452
  "warning": {
4444
4453
  "unknownServices": "Nennt einen Dienst, den der Katalog nicht enthält: {ids}. Der Eintrag bleibt wie angegeben erhalten; prüfe die Kennung gegen den Katalog des Boards. | Nennt Dienste, die der Katalog nicht enthält: {ids}. Die Einträge bleiben wie angegeben erhalten; prüfe die Kennungen gegen den Katalog des Boards.",
4445
4454
  "targetUnknown": "Der Katalog enthält den eigenen Speicherdienst dieses Schritts nicht mehr ({id}), deshalb konnte nichts unten dagegen geprüft werden. Registriere ihn erneut, oder verweise den Schritt auf einen anderen Dienst.",
4455
+ "undeliveredMediaTypes": "Dieser Schritt sollte {formats} liefern, und kein Artefakt unten meldet dieses Format. | Dieser Schritt sollte {formats} liefern, und kein Artefakt unten meldet diese Formate.",
4446
4456
  "misdirected": "1 Artefakt ging an einen anderen Dienst als {target}. | {count} Artefakte gingen an einen anderen Dienst als {target}.",
4447
4457
  "invalidEntries": "1 angegebener Eintrag wurde verworfen: er nannte weder Dienst noch Ablageort. | {count} angegebene Einträge wurden verworfen: sie nannten weder Dienst noch Ablageort.",
4448
4458
  "omitted": "1 weiteres Artefakt wurde jenseits der Berichtsgrenze angegeben und ist nicht aufgeführt. | {count} weitere Artefakte wurden jenseits der Berichtsgrenze angegeben und sind nicht aufgeführt.",
@@ -6204,7 +6214,7 @@
6204
6214
  "intro": "Geführte Touren zeigen dir die App direkt auf diesem Bildschirm: Sie heben die echten Bedienelemente hervor und sagen dir, was du anklicken sollst.",
6205
6215
  "decline": "Nein danke",
6206
6216
  "later": "Vielleicht später",
6207
- "empty": "Für deine Rolle auf diesem Board sind noch keine Touren verfügbar.",
6217
+ "empty": "Für deine Rolle auf diesem Board sind noch keine Einstiegstouren verfügbar, im vollständigen Katalog kann aber trotzdem eine für dich liegen.",
6208
6218
  "browse": "Alle Tutorials anzeigen"
6209
6219
  },
6210
6220
  "catalogue": {
@@ -6236,7 +6246,10 @@
6236
6246
  "service": "Ein Service auf dem Board",
6237
6247
  "task": "Eine Aufgabe auf dem Board",
6238
6248
  "waitingAnswer": "Ein Lauf, der auf deine Antwort wartet",
6239
- "finishedRun": "Ein erfolgreich abgeschlossener Lauf"
6249
+ "finishedRun": "Ein erfolgreich abgeschlossener Lauf",
6250
+ "integrationsManage": "Berechtigung, Integrationen zu verwalten",
6251
+ "settingsManage": "Berechtigung, Workspace-Einstellungen zu verwalten",
6252
+ "library": "Eine in diesem Deployment aktivierte Kontextfragment-Bibliothek"
6240
6253
  },
6241
6254
  "overlay": {
6242
6255
  "next": "Weiter",
@@ -6430,6 +6443,102 @@
6430
6443
  "body": "Gemergte Arbeit markiert die Aufgabe auf dem Board als erledigt. Das ist der ganze Kreislauf: planen, ausführen, antworten, prüfen, mergen."
6431
6444
  }
6432
6445
  }
6446
+ },
6447
+ "wireModels": {
6448
+ "title": "Einen Modellanbieter verbinden",
6449
+ "description": "Richte den Workspace auf die Engines aus, mit denen deine Agenten laufen.",
6450
+ "steps": {
6451
+ "intro": {
6452
+ "title": "Agenten brauchen eine Engine",
6453
+ "body": "Jeder Schritt jeder Pipeline ist ein Modellaufruf, also läuft nichts, solange dieser Workspace keinen Anbieter erreicht. Diese Tour zeigt, wo diese Verbindung liegt."
6454
+ },
6455
+ "open": {
6456
+ "title": "Modellanbieter",
6457
+ "body": "Das öffnet den Anbieter-Hub: jede Engine, die dieses Deployment verbinden kann, wobei die bereits eingerichteten als verbunden markiert sind."
6458
+ },
6459
+ "hub": {
6460
+ "title": "Wähle, wie du verbindest",
6461
+ "body": "Ein Gateway-Schlüssel schaltet auf einmal einen großen Katalog frei. Ein Anbieterschlüssel, ein persönlicher Plan oder ein Modell-Runner auf deinem eigenen Rechner funktionieren genauso gut, und du kannst mehrere gleichzeitig haben."
6462
+ },
6463
+ "finish": {
6464
+ "title": "Danach pro Agent wählen",
6465
+ "body": "Die Modellkonfiguration im selben Bereich der Seitenleiste legt fest, welches Modell jede Agentenart nutzt. Günstige Schritte können auf günstigen Modellen laufen und die schweren auf deinem besten, ohne eine einzige Pipeline zu ändern."
6466
+ }
6467
+ }
6468
+ },
6469
+ "designPipeline": {
6470
+ "title": "Eine Pipeline entwerfen",
6471
+ "description": "Stelle die Agenten zusammen, die eine Aufgabe liefern, und speichere sie für jede Aufgabe.",
6472
+ "steps": {
6473
+ "intro": {
6474
+ "title": "Die Abfolge liegt bei dir",
6475
+ "body": "Eine Pipeline ist die geordnete Reihe von Agenten, die aus einer Aufgabe einen gemergten Pull Request macht. Die eingebauten decken die meiste Arbeit ab, und diese Tour öffnet den Builder, in dem du deine eigene formen kannst."
6476
+ },
6477
+ "open": {
6478
+ "title": "Eine Pipeline erstellen",
6479
+ "body": "Der Builder öffnet sich neben dem Board, damit die Arbeit im Blick bleibt, während du den Ablauf formst."
6480
+ },
6481
+ "palette": {
6482
+ "title": "Die Agentenpalette",
6483
+ "body": "Hier stehen alle Agentenarten, die dieses Deployment mitbringt, von denen, die die Arbeit planen, bis zu denen, die sie prüfen, testen und mergen. Klicke eine an, um sie als Schritt anzuhängen."
6484
+ },
6485
+ "chain": {
6486
+ "title": "Die Kette, die du baust",
6487
+ "body": "Schritte laufen von oben nach unten, und jede Zeile hat ihre eigenen Schalter: den Reviewer anhängen, der einen Schritt bei zu niedriger Bewertung zurückschickt, deine Freigabe verlangen, bevor der nächste startet, oder einen Schritt als Panel aus mehreren Modellen laufen lassen."
6488
+ },
6489
+ "save": {
6490
+ "title": "Die Pipeline speichern",
6491
+ "body": "Speichern wird verfügbar, sobald der Entwurf mindestens einen Schritt enthält. Eine gespeicherte Pipeline landet in der Bibliothek in diesem Fenster und wird überall angeboten, wo eine Aufgabe eine auswählt; benenne sie nach der Arbeit, die sie erledigt, nicht nach den Agenten darin, denn dieser Name ist alles, was du später siehst."
6492
+ },
6493
+ "finish": {
6494
+ "title": "Bereit zum Ausführen",
6495
+ "body": "Eine eingebaute zu klonen ist der schnellste Start: kopiere die passendste, ändere einen Schritt, speichere sie unter eigenem Namen. Nichts, was du speicherst, wird wirksam, bevor eine Aufgabe damit gestartet wird."
6496
+ }
6497
+ }
6498
+ },
6499
+ "agentStandards": {
6500
+ "title": "Die Standards festlegen, denen Agenten folgen",
6501
+ "description": "Pflege die Richtlinien, die jeder Agent liest, bevor er deinen Code anfasst.",
6502
+ "steps": {
6503
+ "intro": {
6504
+ "title": "Standards, keine Anweisungen",
6505
+ "body": "Kontextfragmente sind die Hausregeln: Konventionen, Review-Kriterien und Best Practices, die bei jedem Lauf in den Prompt eines Agenten eingefügt werden. Sie hier zu pflegen ist der Weg, das Ergebnis zu steuern, statt dieselben Regeln in jeder Aufgabe zu wiederholen."
6506
+ },
6507
+ "open": {
6508
+ "title": "Kontextfragmente",
6509
+ "body": "Das öffnet die Bibliothek für dieses Board."
6510
+ },
6511
+ "library": {
6512
+ "title": "Ein zusammengeführter Katalog",
6513
+ "body": "Der eingebaute Katalog, die Fragmente deines Accounts und die dieses Boards werden zu einer Liste zusammengeführt, wobei die nähere Ebene gewinnt. Du kannst hier eines schreiben, ein Dokument importieren oder einen Repository-Ordner verknüpfen, damit Dateien, die du schon pflegst, die Quelle der Wahrheit bleiben."
6514
+ },
6515
+ "finish": {
6516
+ "title": "Wo sie landen",
6517
+ "body": "Ein Service oder eine Aufgabe kann einschränken, welche Fragmente ihre Agenten bekommen, und die boardweiten Vorgaben stehen in den Workspace-Einstellungen. Agenten, die Code schreiben, erhalten eine verdichtete Kurzfassung jedes Fragments, damit ein langer Standard die Aufgabe selbst nicht verdrängt."
6518
+ }
6519
+ }
6520
+ },
6521
+ "connectSystems": {
6522
+ "title": "Die Systeme verbinden, die du schon nutzt",
6523
+ "description": "Tracker, Dokumente, Chat und Monitoring, und was jedes davon einem Lauf hinzufügt.",
6524
+ "steps": {
6525
+ "intro": {
6526
+ "title": "Läufe können weiter reichen",
6527
+ "body": "Tickets können aus deinem Tracker kommen, Anforderungen aus deinen Dokumenten, Benachrichtigungen in den Chat deines Teams und Release-Gesundheit aus deinem Monitoring. Jede Verbindung ist optional, und jede verändert, was ein Lauf sehen oder sagen kann."
6528
+ },
6529
+ "open": {
6530
+ "title": "Der Integrations-Hub",
6531
+ "body": "Eine Liste aller externen Systeme, die dieser Workspace anbinden kann, wobei alles Verbundene markiert ist."
6532
+ },
6533
+ "hub": {
6534
+ "title": "Verbinde, was du brauchst",
6535
+ "body": "Die Quellcodeverwaltung kommt zuerst, denn Pipelines brauchen Code, an dem sie arbeiten. Der Rest kann warten, bis die Frage aufkommt: ein Tracker, aus dem Tickets geholt werden, eine Dokumentquelle für Anforderungskontext, Chat für Benachrichtigungen, Monitoring, um ein Release nach dem Ausliefern zu beobachten."
6536
+ },
6537
+ "finish": {
6538
+ "title": "Deins oder das des Workspace",
6539
+ "body": "Manche Einträge gehören dir und nicht dem Board, etwa ein persönliches Zugriffstoken oder ein persönlicher Plan, und werden nur für Läufe genutzt, die du startest. Der Hub markiert, was was ist, und Meine Einrichtung sammelt das, was dir gehört."
6540
+ }
6541
+ }
6433
6542
  }
6434
6543
  }
6435
6544
  },
@@ -4233,13 +4233,22 @@
4233
4233
  "binaryOutputGeneratorsPlaceholder": "No integration selected",
4234
4234
  "binaryOutputModalities": "Must deliver",
4235
4235
  "binaryOutputModalitiesPlaceholder": "No requirement",
4236
+ "binaryOutputMediaTypes": "Exact formats",
4237
+ "binaryOutputMediaTypesPlaceholder": "No format requirement",
4238
+ "binaryOutputDeclaredFormats": "Selected integrations declare: {formats}",
4239
+ "binaryOutputMediaTypeUncovered": "No selected integration emits {formats}, which this step is set to deliver. Pick one that does, or drop the requirement.",
4240
+ "binaryOutputMediaTypeUnverifiable": "No selected integration declares {formats}, but one of them declares no formats at all, so this could not be checked. The step still starts; confirm from the integration's API that it can emit this.",
4241
+ "binaryOutputMediaTypeUnusable": "Not saved, because these are not media types: {entries}. Write each one as type/subtype.",
4236
4242
  "binaryOutputGeneratorMissing": "This deployment does not register these generative integrations: {ids}. They are registered in the deployment's code, not in this workspace.",
4237
4243
  "binaryOutputModalityUncovered": "No selected integration produces {modalities}, which this step is set to deliver.",
4244
+ "binaryOutputModalityRetired": "{modality} (no longer offered — re-pick this step's content types)",
4245
+ "@binaryOutputModalityRetired": "A content type saved on a step that this build no longer defines. {modality} is a raw machine value (e.g. 3d) and must not be translated. Appears inside the binaryOutputModalityUncovered sentence, so keep it a short noun phrase, not a sentence.",
4238
4246
  "binaryOutputModality": {
4239
4247
  "image": "Images",
4240
4248
  "audio": "Audio",
4241
4249
  "video": "Video",
4242
- "3d": "3D models",
4250
+ "3d-model": "3D models",
4251
+ "3d-scene": "3D scenes",
4243
4252
  "document": "Documents"
4244
4253
  }
4245
4254
  },
@@ -5630,6 +5639,7 @@
5630
5639
  "target": "Storage service",
5631
5640
  "targetNone": "None recorded on this step",
5632
5641
  "contextServices": "Generation context",
5642
+ "mediaTypes": "Required formats",
5633
5643
  "misdirectedBadge": "Other service",
5634
5644
  "unknownBadge": "Not in catalog",
5635
5645
  "storedCount": "{outcome}, 1 artifact | {outcome}, {count} artifacts",
@@ -5661,6 +5671,7 @@
5661
5671
  "warning": {
5662
5672
  "unknownServices": "Named a service the catalog does not contain: {ids}. The entry is kept as claimed; check the id against the workspace catalog. | Named services the catalog does not contain: {ids}. Their entries are kept as claimed; check the ids against the workspace catalog.",
5663
5673
  "targetUnknown": "The catalog no longer contains this step's own storage service ({id}), so nothing below could be checked against it. Register it again, or point the step at another service.",
5674
+ "undeliveredMediaTypes": "This step was set to deliver {formats}, and no artifact below reports that format. | This step was set to deliver {formats}, and no artifact below reports those formats.",
5664
5675
  "misdirected": "1 artifact went to a service other than {target}. | {count} artifacts went to a service other than {target}.",
5665
5676
  "invalidEntries": "1 declared entry was dropped: it named no service and location. | {count} declared entries were dropped: they named no service and location.",
5666
5677
  "omitted": "1 more artifact was declared beyond the report's limit and is not listed. | {count} more artifacts were declared beyond the report's limit and are not listed.",
@@ -6408,7 +6419,7 @@
6408
6419
  "intro": "Guided tours walk you through the app right on this screen: they highlight the actual controls and tell you what to click.",
6409
6420
  "decline": "No thanks",
6410
6421
  "later": "Maybe later",
6411
- "empty": "No tours are available for your role on this board yet.",
6422
+ "empty": "No first-run walkthroughs are available for your role on this board yet, but the full catalogue may still hold one you can take.",
6412
6423
  "browse": "See all tutorials"
6413
6424
  },
6414
6425
  "catalogue": {
@@ -6449,7 +6460,10 @@
6449
6460
  "service": "A service on the board",
6450
6461
  "task": "A task on the board",
6451
6462
  "waitingAnswer": "A run waiting for your answer",
6452
- "finishedRun": "A run that finished successfully"
6463
+ "finishedRun": "A run that finished successfully",
6464
+ "integrationsManage": "Permission to manage integrations",
6465
+ "settingsManage": "Permission to manage workspace settings",
6466
+ "library": "The context fragment library enabled on this deployment"
6453
6467
  },
6454
6468
  "overlay": {
6455
6469
  "next": "Next",
@@ -6652,6 +6666,102 @@
6652
6666
  "body": "Merged work marks the task done on the board. That is the whole loop: plan, run, answer, review, merge."
6653
6667
  }
6654
6668
  }
6669
+ },
6670
+ "wireModels": {
6671
+ "title": "Connect a model provider",
6672
+ "description": "Point the workspace at the engines your agents run on.",
6673
+ "steps": {
6674
+ "intro": {
6675
+ "title": "Agents need an engine",
6676
+ "body": "Every step of every pipeline is a model call, so nothing runs until this workspace can reach a provider. This tour shows where that connection lives."
6677
+ },
6678
+ "open": {
6679
+ "title": "Model providers",
6680
+ "body": "This opens the providers hub: every engine this deployment can connect, with the ones already wired marked as connected."
6681
+ },
6682
+ "hub": {
6683
+ "title": "Pick how you connect",
6684
+ "body": "One gateway key unlocks a wide catalogue at once. A vendor key, a personal plan or a model runner on your own machine work just as well, and you can hold several at the same time."
6685
+ },
6686
+ "finish": {
6687
+ "title": "Then choose per agent",
6688
+ "body": "Model configuration, in the same sidebar section, sets which model each agent kind uses. Cheap steps can run on cheap models and the hard ones on your best, without editing a single pipeline."
6689
+ }
6690
+ }
6691
+ },
6692
+ "designPipeline": {
6693
+ "title": "Design a pipeline",
6694
+ "description": "Assemble the agents that deliver a task, and save it for any task to run.",
6695
+ "steps": {
6696
+ "intro": {
6697
+ "title": "The sequence is yours",
6698
+ "body": "A pipeline is the ordered set of agents that turns a task into a merged pull request. The built-in ones cover most work, and this tour opens the builder where you can shape your own."
6699
+ },
6700
+ "open": {
6701
+ "title": "Build a pipeline",
6702
+ "body": "The builder opens beside the board, so the work stays in view while you shape the flow."
6703
+ },
6704
+ "palette": {
6705
+ "title": "The agent palette",
6706
+ "body": "Every agent kind this deployment ships is listed here, from the ones that plan the work to the ones that review, test and merge it. Click one to append it as a step."
6707
+ },
6708
+ "chain": {
6709
+ "title": "The chain you are building",
6710
+ "body": "Steps run top to bottom, and each row carries its own switches: attach the reviewer that sends a step back when it scores too low, require your approval before the next one starts, or run a step as a panel of several models."
6711
+ },
6712
+ "save": {
6713
+ "title": "Saving your pipeline",
6714
+ "body": "Save becomes available once the draft holds at least one step. A saved pipeline joins the library in this window and is offered wherever a task picks one; name it for the job it does rather than the agents in it, because that name is all you see when choosing later."
6715
+ },
6716
+ "finish": {
6717
+ "title": "Ready to run",
6718
+ "body": "Cloning a built-in is the quickest start: copy the closest one, change a step, save it under your own name. Nothing you save takes effect until a task is actually started with it."
6719
+ }
6720
+ }
6721
+ },
6722
+ "agentStandards": {
6723
+ "title": "Set the standards agents follow",
6724
+ "description": "Curate the guidelines every agent reads before it touches your code.",
6725
+ "steps": {
6726
+ "intro": {
6727
+ "title": "Standards, not instructions",
6728
+ "body": "Context fragments are the house rules: conventions, review criteria and best practices folded into an agent's prompt on every run. Curating them is how you steer the output instead of restating the same rules in every task."
6729
+ },
6730
+ "open": {
6731
+ "title": "Context fragments",
6732
+ "body": "This opens the library for this board."
6733
+ },
6734
+ "library": {
6735
+ "title": "One merged catalog",
6736
+ "body": "The built-in catalog, your account's fragments and this board's own are merged into a single list, with the closer tier winning. You can write one here, import a document, or link a repository folder so files you already maintain stay the source of truth."
6737
+ },
6738
+ "finish": {
6739
+ "title": "Where they land",
6740
+ "body": "A service or a task can narrow which fragments its agents get, and the board-wide defaults live in Workspace settings. Agents that write code are given a condensed brief of each fragment, so a long standard never crowds out the task itself."
6741
+ }
6742
+ }
6743
+ },
6744
+ "connectSystems": {
6745
+ "title": "Connect the systems you already use",
6746
+ "description": "Trackers, documents, chat and monitors, and what each one adds to a run.",
6747
+ "steps": {
6748
+ "intro": {
6749
+ "title": "Runs can reach further",
6750
+ "body": "Issues can arrive from your tracker, requirements from your documents, notifications in your team chat, and release health from your monitors. Every connection is optional, and each one changes what a run can see or say."
6751
+ },
6752
+ "open": {
6753
+ "title": "The integrations hub",
6754
+ "body": "One list of every external system this workspace can link, with whatever is connected already marked."
6755
+ },
6756
+ "hub": {
6757
+ "title": "Connect what you need",
6758
+ "body": "Source control comes first, because pipelines need code to work on. The rest can wait until the question comes up: a tracker to pull issues from, a document source for requirements context, chat for notifications, monitors to watch a release after it ships."
6759
+ },
6760
+ "finish": {
6761
+ "title": "Yours or the workspace's",
6762
+ "body": "Some entries belong to you rather than to the board, such as a personal access token or plan, and are used only for runs you start. The hub marks which is which, and My setup collects the ones that are yours."
6763
+ }
6764
+ }
6655
6765
  }
6656
6766
  }
6657
6767
  },
@@ -4106,13 +4106,21 @@
4106
4106
  "binaryOutputGeneratorsPlaceholder": "Ninguna integración seleccionada",
4107
4107
  "binaryOutputModalities": "Debe entregar",
4108
4108
  "binaryOutputModalitiesPlaceholder": "Sin requisito",
4109
+ "binaryOutputMediaTypes": "Formatos exactos",
4110
+ "binaryOutputMediaTypesPlaceholder": "Sin requisito de formato",
4111
+ "binaryOutputDeclaredFormats": "Las integraciones seleccionadas declaran: {formats}",
4112
+ "binaryOutputMediaTypeUncovered": "Ninguna integración seleccionada emite {formats}, que este paso debe entregar. Elige una que lo haga o quita el requisito.",
4113
+ "binaryOutputMediaTypeUnverifiable": "Ninguna integración seleccionada declara {formats}, pero una de ellas no declara ningún formato, así que no se pudo comprobar. El paso se inicia igualmente; confirma en la API de la integración que puede emitirlo.",
4114
+ "binaryOutputMediaTypeUnusable": "No se guardó, porque esto no son tipos de medio: {entries}. Escribe cada uno como type/subtype.",
4109
4115
  "binaryOutputGeneratorMissing": "Esta instalación no registra estas integraciones generativas: {ids}. Se registran en el código de la instalación, no en este espacio de trabajo.",
4110
4116
  "binaryOutputModalityUncovered": "Ninguna integración seleccionada produce {modalities}, que este paso debe entregar.",
4117
+ "binaryOutputModalityRetired": "{modality} (ya no disponible: vuelve a elegir los tipos de contenido de este paso)",
4111
4118
  "binaryOutputModality": {
4112
4119
  "image": "Imágenes",
4113
4120
  "audio": "Audio",
4114
4121
  "video": "Vídeo",
4115
- "3d": "Modelos 3D",
4122
+ "3d-model": "Modelos 3D",
4123
+ "3d-scene": "Escenas 3D",
4116
4124
  "document": "Documentos"
4117
4125
  }
4118
4126
  },
@@ -5381,6 +5389,7 @@
5381
5389
  "target": "Servicio de almacenamiento",
5382
5390
  "targetNone": "No registrado en este paso",
5383
5391
  "contextServices": "Contexto de generación",
5392
+ "mediaTypes": "Formatos requeridos",
5384
5393
  "misdirectedBadge": "Otro servicio",
5385
5394
  "unknownBadge": "Fuera del catálogo",
5386
5395
  "storedCount": "{outcome}, 1 artefacto | {outcome}, {count} artefactos",
@@ -5412,6 +5421,7 @@
5412
5421
  "warning": {
5413
5422
  "unknownServices": "Nombró un servicio que el catálogo no contiene: {ids}. La entrada se conserva tal como se declaró; comprueba el identificador con el catálogo del tablero. | Nombró servicios que el catálogo no contiene: {ids}. Sus entradas se conservan tal como se declararon; comprueba los identificadores con el catálogo del tablero.",
5414
5423
  "targetUnknown": "El catálogo ya no contiene el servicio de almacenamiento de este paso ({id}), así que nada de lo de abajo pudo comprobarse contra él. Vuelve a registrarlo, o apunta el paso a otro servicio.",
5424
+ "undeliveredMediaTypes": "Este paso debía entregar {formats} y ningún artefacto de abajo informa ese formato. | Este paso debía entregar {formats} y ningún artefacto de abajo informa esos formatos.",
5415
5425
  "misdirected": "1 artefacto fue a un servicio distinto de {target}. | {count} artefactos fueron a un servicio distinto de {target}.",
5416
5426
  "invalidEntries": "Se descartó 1 entrada declarada: no nombraba servicio ni ubicación. | Se descartaron {count} entradas declaradas: no nombraban servicio ni ubicación.",
5417
5427
  "omitted": "Se declaró 1 artefacto más por encima del límite del informe y no aparece en la lista. | Se declararon {count} artefactos más por encima del límite del informe y no aparecen en la lista.",
@@ -6192,7 +6202,7 @@
6192
6202
  "intro": "Los recorridos guiados te muestran la aplicación directamente en esta pantalla: resaltan los controles reales y te dicen dónde hacer clic.",
6193
6203
  "decline": "No, gracias",
6194
6204
  "later": "Quizás más tarde",
6195
- "empty": "Todavía no hay recorridos disponibles para tu rol en este tablero.",
6205
+ "empty": "Todavía no hay recorridos de primer contacto disponibles para tu rol en este tablero, pero el catálogo completo puede tener alguno que sí puedas hacer.",
6196
6206
  "browse": "Ver todos los tutoriales"
6197
6207
  },
6198
6208
  "catalogue": {
@@ -6224,7 +6234,10 @@
6224
6234
  "service": "Un servicio en el tablero",
6225
6235
  "task": "Una tarea en el tablero",
6226
6236
  "waitingAnswer": "Una ejecución esperando tu respuesta",
6227
- "finishedRun": "Una ejecución terminada correctamente"
6237
+ "finishedRun": "Una ejecución terminada correctamente",
6238
+ "integrationsManage": "Permiso para gestionar integraciones",
6239
+ "settingsManage": "Permiso para gestionar los ajustes del espacio de trabajo",
6240
+ "library": "La biblioteca de fragmentos de contexto habilitada en este despliegue"
6228
6241
  },
6229
6242
  "overlay": {
6230
6243
  "next": "Siguiente",
@@ -6418,6 +6431,102 @@
6418
6431
  "body": "El trabajo fusionado marca la tarea como hecha en el tablero. Ese es el ciclo completo: planificar, ejecutar, responder, revisar y fusionar."
6419
6432
  }
6420
6433
  }
6434
+ },
6435
+ "wireModels": {
6436
+ "title": "Conectar un proveedor de modelos",
6437
+ "description": "Apunta el espacio de trabajo a los motores con los que funcionan tus agentes.",
6438
+ "steps": {
6439
+ "intro": {
6440
+ "title": "Los agentes necesitan un motor",
6441
+ "body": "Cada paso de cada pipeline es una llamada a un modelo, así que nada funciona hasta que este espacio de trabajo alcance un proveedor. Este recorrido te muestra dónde vive esa conexión."
6442
+ },
6443
+ "open": {
6444
+ "title": "Proveedores de modelos",
6445
+ "body": "Esto abre el hub de proveedores: todos los motores que este despliegue puede conectar, con los ya configurados marcados como conectados."
6446
+ },
6447
+ "hub": {
6448
+ "title": "Elige cómo conectarte",
6449
+ "body": "Una clave de pasarela desbloquea un catálogo amplio de una sola vez. Una clave de proveedor, un plan personal o un ejecutor de modelos en tu propia máquina sirven igual de bien, y puedes tener varios a la vez."
6450
+ },
6451
+ "finish": {
6452
+ "title": "Luego elige por agente",
6453
+ "body": "La configuración del modelo, en la misma sección de la barra lateral, decide qué modelo usa cada tipo de agente. Los pasos baratos pueden ir en modelos baratos y los difíciles en tu mejor modelo, sin editar ningún pipeline."
6454
+ }
6455
+ }
6456
+ },
6457
+ "designPipeline": {
6458
+ "title": "Diseñar un pipeline",
6459
+ "description": "Ensambla los agentes que entregan una tarea y guárdalo para cualquier tarea.",
6460
+ "steps": {
6461
+ "intro": {
6462
+ "title": "La secuencia es tuya",
6463
+ "body": "Un pipeline es el conjunto ordenado de agentes que convierte una tarea en una pull request fusionada. Los que vienen incluidos cubren la mayor parte del trabajo, y este recorrido abre el constructor donde puedes dar forma al tuyo."
6464
+ },
6465
+ "open": {
6466
+ "title": "Crear un pipeline",
6467
+ "body": "El constructor se abre junto al tablero, así el trabajo sigue a la vista mientras das forma al flujo."
6468
+ },
6469
+ "palette": {
6470
+ "title": "La paleta de agentes",
6471
+ "body": "Aquí están todos los tipos de agente que trae este despliegue, desde los que planifican el trabajo hasta los que lo revisan, lo prueban y lo fusionan. Haz clic en uno para añadirlo como paso."
6472
+ },
6473
+ "chain": {
6474
+ "title": "La cadena que estás montando",
6475
+ "body": "Los pasos se ejecutan de arriba abajo, y cada fila tiene sus propios interruptores: añadir el revisor que devuelve un paso cuando puntúa demasiado bajo, exigir tu aprobación antes de que arranque el siguiente, o ejecutar un paso como un panel de varios modelos."
6476
+ },
6477
+ "save": {
6478
+ "title": "Guardar tu pipeline",
6479
+ "body": "Guardar se habilita en cuanto el borrador tiene al menos un paso. Un pipeline guardado se suma a la biblioteca de esta ventana y se ofrece allí donde una tarea elige uno; nómbralo por el trabajo que hace y no por los agentes que contiene, porque ese nombre es todo lo que verás al elegir después."
6480
+ },
6481
+ "finish": {
6482
+ "title": "Listo para ejecutar",
6483
+ "body": "Clonar uno incluido es la vía más rápida: copia el más parecido, cambia un paso y guárdalo con tu propio nombre. Nada de lo que guardes surte efecto hasta que una tarea se arranque con él."
6484
+ }
6485
+ }
6486
+ },
6487
+ "agentStandards": {
6488
+ "title": "Fijar los estándares que siguen los agentes",
6489
+ "description": "Cuida las pautas que todo agente lee antes de tocar tu código.",
6490
+ "steps": {
6491
+ "intro": {
6492
+ "title": "Estándares, no instrucciones",
6493
+ "body": "Los fragmentos de contexto son las reglas de la casa: convenciones, criterios de revisión y buenas prácticas que se insertan en el prompt de un agente en cada ejecución. Cuidarlos es la forma de dirigir el resultado en lugar de repetir las mismas reglas en cada tarea."
6494
+ },
6495
+ "open": {
6496
+ "title": "Fragmentos de contexto",
6497
+ "body": "Esto abre la biblioteca de este tablero."
6498
+ },
6499
+ "library": {
6500
+ "title": "Un catálogo unificado",
6501
+ "body": "El catálogo incluido, los fragmentos de tu cuenta y los de este tablero se unen en una sola lista, y gana el nivel más cercano. Puedes escribir uno aquí, importar un documento o enlazar una carpeta de un repositorio para que los archivos que ya mantienes sigan siendo la fuente de verdad."
6502
+ },
6503
+ "finish": {
6504
+ "title": "Dónde acaban",
6505
+ "body": "Un servicio o una tarea puede restringir qué fragmentos reciben sus agentes, y los valores por defecto de todo el tablero están en los ajustes del espacio de trabajo. Los agentes que escriben código reciben un resumen condensado de cada fragmento, para que un estándar largo no desplace a la propia tarea."
6506
+ }
6507
+ }
6508
+ },
6509
+ "connectSystems": {
6510
+ "title": "Conectar los sistemas que ya usas",
6511
+ "description": "Gestores de incidencias, documentos, chat y monitores, y qué aporta cada uno a una ejecución.",
6512
+ "steps": {
6513
+ "intro": {
6514
+ "title": "Las ejecuciones pueden llegar más lejos",
6515
+ "body": "Las incidencias pueden venir de tu gestor de tareas, los requisitos de tus documentos, las notificaciones al chat de tu equipo y la salud de una release de tus monitores. Cada conexión es opcional, y cada una cambia lo que una ejecución puede ver o decir."
6516
+ },
6517
+ "open": {
6518
+ "title": "El hub de integraciones",
6519
+ "body": "Una lista de todos los sistemas externos que este espacio de trabajo puede enlazar, con lo que ya está conectado marcado."
6520
+ },
6521
+ "hub": {
6522
+ "title": "Conecta lo que necesites",
6523
+ "body": "El control de código va primero, porque los pipelines necesitan código sobre el que trabajar. El resto puede esperar a que surja la necesidad: un gestor de incidencias del que importar tareas, una fuente de documentos para el contexto de requisitos, chat para las notificaciones, monitores para vigilar una release después de publicarla."
6524
+ },
6525
+ "finish": {
6526
+ "title": "Tuyo o del espacio de trabajo",
6527
+ "body": "Algunas entradas son tuyas y no del tablero, como un token de acceso personal o un plan, y solo se usan en las ejecuciones que arrancas tú. El hub marca cuál es cuál, y Mi configuración reúne las que son tuyas."
6528
+ }
6529
+ }
6421
6530
  }
6422
6531
  }
6423
6532
  },