@cat-factory/app 0.213.0 → 0.214.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.
Files changed (47) hide show
  1. package/README.md +107 -13
  2. package/app/components/observability/StepMetricsBar.vue +11 -0
  3. package/app/components/panels/AgentStepDetail.vue +14 -0
  4. package/app/components/panels/MergerResultView.vue +20 -2
  5. package/app/components/panels/ObservabilityPanel.vue +57 -0
  6. package/app/components/panels/ResultWindowShell.vue +77 -0
  7. package/app/components/panels/StepReproductionReport.vue +167 -0
  8. package/app/components/tutorial/TutorialCatalogue.vue +14 -1
  9. package/app/components/tutorial/TutorialNudge.vue +107 -0
  10. package/app/components/tutorial/TutorialOverlay.vue +92 -11
  11. package/app/composables/api/execution.ts +5 -2
  12. package/app/composables/api/tutorial.ts +25 -0
  13. package/app/composables/useApi.ts +2 -0
  14. package/app/composables/usePipelineErrorToast.ts +8 -0
  15. package/app/composables/useTutorialNudge.ts +77 -0
  16. package/app/composables/useTutorialSync.ts +141 -0
  17. package/app/modular/external-tools.spec.ts +1 -0
  18. package/app/modular/nav-contributions.spec.ts +2 -0
  19. package/app/modular/nav-contributions.ts +11 -0
  20. package/app/modular/nav-gates.ts +10 -0
  21. package/app/modular/registry.spec.ts +1 -0
  22. package/app/modular/tutorial-tours.spec.ts +55 -4
  23. package/app/modular/tutorial-tours.ts +231 -9
  24. package/app/pages/index.vue +20 -1
  25. package/app/stores/tutorial.prompt.ts +59 -0
  26. package/app/stores/tutorial.record.ts +191 -0
  27. package/app/stores/tutorial.spec.ts +207 -0
  28. package/app/stores/tutorial.ts +78 -91
  29. package/app/stores/workspace/hydrate.ts +5 -0
  30. package/app/types/domain.ts +3 -0
  31. package/app/types/reproduction.ts +11 -0
  32. package/app/utils/observability.spec.ts +44 -1
  33. package/app/utils/observability.ts +50 -0
  34. package/app/utils/reproduction.ts +51 -0
  35. package/app/utils/tutorial.spec.ts +255 -0
  36. package/app/utils/tutorial.ts +173 -0
  37. package/i18n/locales/de.json +149 -6
  38. package/i18n/locales/en.json +153 -6
  39. package/i18n/locales/es.json +149 -6
  40. package/i18n/locales/fr.json +149 -6
  41. package/i18n/locales/he.json +149 -6
  42. package/i18n/locales/it.json +149 -6
  43. package/i18n/locales/ja.json +149 -6
  44. package/i18n/locales/pl.json +149 -6
  45. package/i18n/locales/tr.json +149 -6
  46. package/i18n/locales/uk.json +149 -6
  47. package/package.json +2 -2
@@ -565,7 +565,9 @@
565
565
  "foundational_service_exists": "שירות תשתית כזה כבר קיים",
566
566
  "binary_output_service_invalid": "לא ניתן לזהות את השירות לפלט בינארי",
567
567
  "binary_output_generator_invalid": "לא ניתן לזהות את מחולל הפלט הבינארי",
568
- "foundational_service_not_inherited": "הלוח הזה רשם את השירות"
568
+ "foundational_service_not_inherited": "הלוח הזה רשם את השירות",
569
+ "ticket_already_linked": "לכרטיס הזה כבר יש משימה",
570
+ "dry_run_not_mergeable": "לא ניתן למזג הרצת יבש"
569
571
  },
570
572
  "description": {
571
573
  "dependencies_unmet": "משימה זו תלויה במשימות אחרות שטרם הושלמו. השלם או שחרר אותן, ולאחר מכן הפעל אותה שוב.",
@@ -597,7 +599,9 @@
597
599
  "foundational_service_exists": "שירות תשתית עם מזהה זה כבר רשום בהיקף הזה. פתחו את הרשומה הקיימת וערכו אותה — שני שירותים אינם יכולים לחלוק מזהה, מפני שהמזהה הוא השם שארכיטקט מציין בתכנון שלו.",
598
600
  "binary_output_service_invalid": "שלב שמייצר פלט בינארי בוחר שירות תשתית שהקטלוג של סביבת העבודה אינו יכול לזהות: המזהה אינו מוכר, או ששירות האחסון שנבחר אינו נושא את היכולת asset-storage. תקנו את הבחירה בשלב או רשמו את השירות, ואז התחילו מחדש.",
599
601
  "binary_output_generator_invalid": "שלב שמייצר פלט בינארי בוחר אינטגרציה גנרטיבית שהפריסה הזו אינה רושמת, או שאף אחת מהאינטגרציות שנבחרו אינה מייצרת סוג תוכן שהשלב אמור לספק. אינטגרציות גנרטיביות נרשמות בקוד של הפריסה ולא במרחב העבודה הזה: רשמו אותה או תקנו את הבחירה בשלב, ואז התחילו מחדש.",
600
- "foundational_service_not_inherited": "החרגה חלה על שירות שנורש מהחשבון. המזהה הזה רשום על ידי הלוח הזה, ולכן אין מה להחריג - מחקו במקום זאת את הרשומה של הלוח עצמו."
602
+ "foundational_service_not_inherited": "החרגה חלה על שירות שנורש מהחשבון. המזהה הזה רשום על ידי הלוח הזה, ולכן אין מה להחריג - מחקו במקום זאת את הרשומה של הלוח עצמו.",
603
+ "ticket_already_linked": "כרטיס יכול לגבות משימה אחת בלבד, ולכן קישור נוסף שלו ישלול מהמשימה הקיימת את ההקשר שאיתו נוצרה. פתחו את המשימה הזו במקום זאת, או בטלו קודם את קישור הכרטיס.",
604
+ "dry_run_not_mergeable": "בקשת המשיכה הזו הגיעה מהרצת יבש, ולכן לא ניתן למזג אותה מכאן. הפעילו את המשימה מחדש כהרצה רגילה כדי ליצור בקשת משיכה שסביבת העבודה הזו תמזג."
601
605
  },
602
606
  "action": {
603
607
  "connectGitHub": "חבר את GitHub",
@@ -1241,7 +1245,9 @@
1241
1245
  "merge_failed": "הציונים היו בתוך ספי {preset}, אך המיזוג האוטומטי לא הושלם (למשל הגנת ענף או התנגשות), ולכן ה-PR ממתין למיזוג ידני.",
1242
1246
  "merge_partial": "חלק מבקשות המשיכה של המשימה מוזגו, אך אחת מאוחרת יותר נכשלה, ולכן השינוי ממתין שאדם ישלים או יבטל את המיזוג הרב-מאגרי.",
1243
1247
  "class_auto_merge": "ההגדרה הזאת ממזגת תמיד אוטומטית שינויים מהסוג הזה, ולכן הניקוד לא הושווה.",
1244
- "class_requires_review": "ההגדרה הזאת מעבירה תמיד שינויים מהסוג הזה לאדם, בלי קשר לניקוד."
1248
+ "class_requires_review": "ההגדרה הזאת מעבירה תמיד שינויים מהסוג הזה לאדם, בלי קשר לניקוד.",
1249
+ "role_requires_review": "ההגדרה הזו מעבירה הרצות שהתחיל {role} לבדיקה אנושית עבור סוג השינוי הזה, ללא תלות בציונים. חבר צוות בהרשאה גבוהה יותר יכול למזג את בקשת המשיכה הזו כמו שהיא.",
1250
+ "dry_run": "זו הייתה הרצת יבש, ולכן בקשת המשיכה נשארה פתוחה לבדיקה אנושית והציונים לא הושוו. הפעילו את המשימה מחדש כהרצה רגילה כדי ליצור בקשת משיכה שסביבת העבודה הזו תמזג."
1245
1251
  },
1246
1252
  "scores": "ציונים",
1247
1253
  "axis": {
@@ -1400,6 +1406,33 @@
1400
1406
  "failedSummary": "{failed} מתוך {total} בדיקות עדיין נכשלו אחרי {attempts} מתוך {maxAttempts} ניסיונות, ולכן לא נפתחה בקשת משיכה.",
1401
1407
  "exitCode": "קוד יציאה {code}",
1402
1408
  "timedOut": "חריגת זמן"
1409
+ },
1410
+ "reproduction": {
1411
+ "heading": "הוכחת שחזור",
1412
+ "status": {
1413
+ "reproduced": "שוחזר",
1414
+ "inconclusive": "לא הוכח",
1415
+ "declared_infeasible": "לא ניתן לשחזור"
1416
+ },
1417
+ "verdict": {
1418
+ "reproduced": "הבדיקה שהוצהרה נכשלה בעץ שלפני התיקון ועוברת בעץ הזה.",
1419
+ "inconclusive": "הבדיקה לא הדגימה את התקלה משני צדי התיקון, ולכן התיקון אינו מבוסס בראיות.",
1420
+ "declared_infeasible": "הסוכן הצהיר שלא ניתן לשחזר את התקלה הזו בבדיקה, וציין מה בדק במקום זאת."
1421
+ },
1422
+ "tree": {
1423
+ "base": "העץ שלפני התיקון",
1424
+ "final": "העץ הסופי"
1425
+ },
1426
+ "command": "פקודה",
1427
+ "reason": "מדוע לא ניתן לשחזר",
1428
+ "alternative": "נבדק במקום זאת",
1429
+ "passed": "עבר",
1430
+ "exitCode": "קוד יציאה {code}",
1431
+ "timedOut": "פג הזמן",
1432
+ "setupFailed": "ההכנה נכשלה",
1433
+ "notRun": "לא הורץ",
1434
+ "attempts": "ניסיון {attempts} מתוך {maxAttempts}",
1435
+ "omittedTestPaths": "{count} קובץ בדיקה שהוצהר הושמט לפני הרצת ההוכחה, ולכן העץ שלפני התיקון נבנה משחזור חלקי. | {count} קובצי בדיקה שהוצהרו הושמטו לפני הרצת ההוכחה, ולכן העץ שלפני התיקון נבנה משחזור חלקי."
1403
1436
  }
1404
1437
  },
1405
1438
  "inspector": {
@@ -1476,6 +1509,9 @@
1476
1509
  "contextError": "לא ניתן לטעון את ההקשר שסופק.",
1477
1510
  "summary": {
1478
1511
  "calls": "קריאות",
1512
+ "cost": "עלות משוערת",
1513
+ "costHint": "מחושב לפי מחירון, כל סוג קלט בתעריף שלו: קריאה מהמטמון עולה כעשירית מקלט חדש, וכתיבה למטמון כרבע יותר. הרצה במסגרת מנוי אינה משלמת לפי טוקן, ולכן זהו הסכום שאותם טוקנים היו עולים בתשלום לפי שימוש.",
1514
+ "costIncomplete": "לא מוצג: לפחות שלב אחד רץ על מודל שאין להתקנה הזו תעריף עבורו, ולכן סכום כולל היה חלקי. השלבים שתומחרו מופיעים למטה.",
1479
1515
  "tokensInOut": "טוקנים (נכנס / יוצא)",
1480
1516
  "transportOverhead": "תקורת תעבורה",
1481
1517
  "modelExecution": "הרצת מודל",
@@ -1495,8 +1531,10 @@
1495
1531
  "phase": "שלב",
1496
1532
  "turns": "תורים",
1497
1533
  "tokensInOut": "טוקנים (נכנס / יוצא)",
1534
+ "cost": "עלות",
1498
1535
  "carryCost": "עלות גרירה"
1499
1536
  },
1537
+ "costHint": "עלות משוערת של הטוקנים בשלב זה לפי מחירון. מקף מציין שלהתקנה הזו אין תעריף עבור המודל שרץ.",
1500
1538
  "carryCostHint": "כמה כל שלב העמיס על התורים שבאו אחריו: ההקשר שלו נספר פעם אחת עבור כל תור מאוחר יותר שנאלץ לשלוח אותו שוב. השוו בין שלבי ההרצה זה לזה; בפני עצמו המספר אינו אומר דבר. שלב שרץ בסוף גורר מעט גם אם צרך הרבה, ולכן קראו את העמודה הזאת יחד עם הטוקנים שלצדה.",
1501
1539
  "unattributed": "ללא שיוך",
1502
1540
  "unattributedHint": "נרשם על ידי ערוץ שאינו מדווח על שלב"
@@ -1504,6 +1542,7 @@
1504
1542
  "metricsBar": {
1505
1543
  "calls": "{count} קריאה | {count} קריאות",
1506
1544
  "inputCompletionTokens": "סך טוקני הקלט / הפלט. הקלט סופר גם טוקנים מהמטמון: הם עדיין תופסים את חלון ההקשר, בדיוק כפי שמד ההקשר של Claude Code סופר אותם.",
1545
+ "costHint": "עלות משוערת של הטוקנים בצעד זה לפי מחירון, כל סוג קלט בתעריף שלו. הרצה במסגרת מנוי אינה משלמת לפי טוקן, ולכן זהו הסכום שאותם טוקנים היו עולים בתשלום לפי שימוש.",
1507
1546
  "fresh": "{tokens} חדשים",
1508
1547
  "freshHint": "קלט שעובד מאפס, ללא שום חלק שהוגש מהמטמון",
1509
1548
  "cacheRead": "{tokens} נקראו מהמטמון",
@@ -6288,6 +6327,12 @@
6288
6327
  "minor": "הערות קטנות",
6289
6328
  "major": "עבודה מחדש משמעותית",
6290
6329
  "classHistory": "{merged} מוזגו בקטגוריה הזאת, {autoShare} מוזגו אוטומטית"
6330
+ },
6331
+ "role": {
6332
+ "admin": "מנהל",
6333
+ "member": "חבר",
6334
+ "viewer": "צופה",
6335
+ "unattributed": "הפעלה אוטומטית"
6291
6336
  }
6292
6337
  },
6293
6338
  "vcs": {
@@ -6389,7 +6434,10 @@
6389
6434
  "finishedRun": "ריצה שהסתיימה בהצלחה",
6390
6435
  "integrationsManage": "הרשאה לנהל אינטגרציות",
6391
6436
  "settingsManage": "הרשאה לנהל את הגדרות סביבת העבודה",
6392
- "library": "ספריית מקטעי ההקשר מופעלת בפריסה הזו"
6437
+ "library": "ספריית מקטעי ההקשר מופעלת בפריסה הזו",
6438
+ "failedRun": "ריצה שנכשלה",
6439
+ "infrastructure": "עורף הרצה המחובר למרחב העבודה הזה",
6440
+ "advancedTier": "מצב הממשק המתקדם"
6393
6441
  },
6394
6442
  "overlay": {
6395
6443
  "next": "הבא",
@@ -6401,7 +6449,9 @@
6401
6449
  "announcement": "שלב {current} מתוך {total}. {title}. {body}",
6402
6450
  "abridged": "דילגנו על שלב אחד: הפקד הזה אינו חלק מהלוח הזה. | דילגנו על {count} שלבים: הפקדים האלה אינם חלק מהלוח הזה.",
6403
6451
  "searching": "מחפש את הפקד המודגש...",
6404
- "clickHint": "לחץ על הפקד המודגש כדי להמשיך"
6452
+ "clickHint": "לחץ על הפקד המודגש כדי להמשיך",
6453
+ "nextUp": "הבא בתור",
6454
+ "takeNext": "לעבור על זה"
6405
6455
  },
6406
6456
  "tours": {
6407
6457
  "boardBasics": {
@@ -6524,7 +6574,7 @@
6524
6574
  },
6525
6575
  "finish": {
6526
6576
  "title": "זה המחזור",
6527
- "body": "לתכנן משימה, לבחור צינור, להפעיל ולעקוב. כשהרצה צריכה משהו ממך היא עוצרת ואומרת זאת, וזה מה שהסיור הבא מכסה."
6577
+ "body": "לתכנן משימה, לבחור צינור, להפעיל ולעקוב. הסיורים שאחרי זה קוראים הרצה אמיתית, ולכן הם נפתחים ברגע שהפעלת אחת באמת."
6528
6578
  }
6529
6579
  }
6530
6580
  },
@@ -6679,7 +6729,100 @@
6679
6729
  "body": "חלק מהפריטים שייכים לך ולא ללוח, כמו אסימון גישה אישי או מנוי, והם משמשים רק בהרצות שאתה מתחיל. המרכז מסמן מה שייך למי, וההגדרות שלי מרכזות את מה ששלך."
6680
6730
  }
6681
6731
  }
6732
+ },
6733
+ "diagnoseFailure": {
6734
+ "title": "לקרוא כשל",
6735
+ "description": "הרצה נעצרה בשגיאה. גלה מה נשבר ומה עושים עם זה.",
6736
+ "steps": {
6737
+ "intro": {
6738
+ "title": "הרצות נכשלות, וזה נורמלי",
6739
+ "body": "הרצה שנכשלה אינה מבוי סתום. הלוח שומר את השגיאה, הסיבה היא בדרך כלל שורה אחת, ורוב הסיבות נפתרות בהגדרה ולא בכתיבה מחדש של המשימה."
6740
+ },
6741
+ "banner": {
6742
+ "title": "מה השתבש",
6743
+ "body": "הכרטיס מחליף את סרגל ההתקדמות בהודעה הזאת. היא מציינת את הסיבה, הפרטים מכילים את הפלט הגולמי, וחלק מהסיבות מציעות כפתור ישר להגדרה שמתקנת אותן."
6744
+ },
6745
+ "retry": {
6746
+ "title": "להריץ שוב",
6747
+ "body": "נסה שוב מריץ את העבודה מחדש. שגיאות קודמות נשארות על המשימה, תחת «שגיאות קודמות», כך שאפשר להשוות ניסיונות במקום לאבד את העקבות."
6748
+ },
6749
+ "finish": {
6750
+ "title": "כשל הוא מידע",
6751
+ "body": "תקן את הסיבה, נסה שוב, השווה. אם אותה שגיאה חוזרת שוב ושוב, הפרטים הם מה שכדאי להביא למי שיכול להרחיב הרשאה או לחבר את מה שחסר."
6752
+ }
6753
+ }
6754
+ },
6755
+ "prepareInfrastructure": {
6756
+ "title": "איפה הרצות קורות",
6757
+ "description": "המכונות שעליהן הסוכנים רצים, הסביבות שבהן הם בודקים, והאישורים שהם רשאים להשתמש בהם.",
6758
+ "steps": {
6759
+ "intro": {
6760
+ "title": "לסוכנים צריך איפה לרוץ",
6761
+ "body": "כל שלב מבוסס קונטיינר רץ על עורף הרצה, בדיקות עולות בתוך סביבה, וחלק מהיכולות דורשות אישור. שלושתם מוגדרים בחלון אחד."
6762
+ },
6763
+ "open": {
6764
+ "title": "לפתוח תשתית",
6765
+ "body": "כל מה שקשור לאיפה ואיך הרצות מתבצעות נמצא כאן."
6766
+ },
6767
+ "tabs": {
6768
+ "title": "לשונית לכל נושא",
6769
+ "body": "קונטיינרים של סוכנים הוא המקום שבו העבודה מתבצעת. סביבות בדיקה הוא מה שממנו מועלה שירות. רשימת האישורים מראה אילו מפתחות היכולות שהסוכנים שלך משתמשים בהן יכולות באמת לפענח, ואילו עדיין חסרים."
6770
+ },
6771
+ "finish": {
6772
+ "title": "כשלים מפנים לכאן",
6773
+ "body": "כשהרצה נכשלת בהקצאת המשאבים, זה החלון שההודעה שלה מבקשת שתפתח. שווה לדעת לפני שזה קורה ולא אחרי."
6774
+ }
6775
+ }
6776
+ },
6777
+ "panelReviews": {
6778
+ "title": "סקירה בפאנל",
6779
+ "description": "שכמה מודלים יסקרו את אותה עבודה במקום אחד, במשימות שמצדיקות זאת.",
6780
+ "steps": {
6781
+ "intro": {
6782
+ "title": "סוקר אחד, או כמה",
6783
+ "body": "שלב סקירה מריץ בדרך כלל סוכן אחד. במקום זה הוא יכול להריץ פאנל של כמה מודלים ולהשוות את מה שהם אומרים, וכך לתפוס את מה שסוקר בודד מפספס בעבודה כבדה."
6784
+ },
6785
+ "open": {
6786
+ "title": "לפתוח הגדרת מודלים",
6787
+ "body": "פאנלים בנויים ממודלים, ולכן מגדירים אותם לידם."
6788
+ },
6789
+ "groups": {
6790
+ "title": "להגדיר פאנל",
6791
+ "body": "קבוצה מציינת את המודלים בפאנל וכמה תובענית משימה צריכה להיות כדי שייעשה בו שימוש. שלב בוחר אז קבוצה במקום למנות מודלים אחד אחד."
6792
+ },
6793
+ "finish": {
6794
+ "title": "העלות הולכת אחרי המאמץ",
6795
+ "body": "פאנל עולה כמספר חבריו בקריאות מודל, ולכן אפשר להגביל קבוצה למשימות שהאומדן שלהן עובר את הרף. עבודה קטנה נשארת עם סוקר אחד."
6796
+ }
6797
+ }
6798
+ },
6799
+ "shareServices": {
6800
+ "title": "השירותים שכבר יש לך",
6801
+ "description": "ספר לסוכנים אילו מערכות משותפות קיימות ואיך נראים ה-API שלהן.",
6802
+ "steps": {
6803
+ "intro": {
6804
+ "title": "אל תבנה מחדש את מה שיש",
6805
+ "body": "סוכנים מתכננים באפלה כל עוד אינם יודעים מה הארגון שלך כבר מפעיל. הקטלוג הזה מציין את המערכות האלה ונושא את חוזי ה-API שלהן."
6806
+ },
6807
+ "open": {
6808
+ "title": "לפתוח שירותי יסוד",
6809
+ "body": "קטלוג היכולות המשותפות הזמין לכל לוח במרחב העבודה הזה."
6810
+ },
6811
+ "catalog": {
6812
+ "title": "לרשום, להעלות או לסנכרן",
6813
+ "body": "הוסף שירות ביד, העלה את מסמכי ה-API שלו, או קשר מאגר ותן להם להסתנכרן. תכנונים מפנים אז למה שרשום כאן במקום להמציא ממשק."
6814
+ },
6815
+ "finish": {
6816
+ "title": "שלבי תכנון קוראים את זה",
6817
+ "body": "תכנון שמצהיר באילו מהם הוא משתמש מקבל את החוזים המלאים שלהם בשלב הבא. אחד שאינו מצהיר על דבר אינו מקבל דבר, ולכן שמירה על עדכניות כאן היא מה שמאפשר לזה לעבוד."
6818
+ }
6819
+ }
6682
6820
  }
6821
+ },
6822
+ "nudge": {
6823
+ "label": "סיור חדש זמין",
6824
+ "start": "הראה לי",
6825
+ "dismiss": "לסגור"
6683
6826
  }
6684
6827
  },
6685
6828
  "externalTools": {
@@ -1703,7 +1703,9 @@
1703
1703
  "merge_failed": "I punteggi rientravano nelle soglie {preset}, ma l'unione automatica non e' riuscita a completarsi (ad esempio protezione del branch o un conflitto), quindi la PR e' in attesa che un umano la unisca.",
1704
1704
  "merge_partial": "Alcune delle pull request dell'attivita' sono state unite, ma una successiva non e' riuscita, quindi la modifica e' in attesa che un umano completi o annulli l'unione multi-repository.",
1705
1705
  "class_auto_merge": "Questo preset unisce sempre automaticamente questa categoria di modifica, quindi i punteggi non sono stati confrontati.",
1706
- "class_requires_review": "Questo preset invia sempre questa categoria di modifica a una persona, indipendentemente dai punteggi."
1706
+ "class_requires_review": "Questo preset invia sempre questa categoria di modifica a una persona, indipendentemente dai punteggi.",
1707
+ "role_requires_review": "Questa impostazione sottopone a revisione umana le esecuzioni avviate da un {role} per questo tipo di modifica, qualunque siano i punteggi. Un collega di livello superiore può unire questa PR così com’è.",
1708
+ "dry_run": "Questa era una prova, quindi la pull request è rimasta aperta per una persona e i punteggi non sono stati confrontati. Riavvia l’attività come esecuzione reale per produrre una pull request che questo spazio di lavoro unirà."
1707
1709
  },
1708
1710
  "scores": "Punteggi",
1709
1711
  "axis": {
@@ -1862,6 +1864,33 @@
1862
1864
  "failedSummary": "{failed} controlli su {total} fallivano ancora dopo {attempts} tentativi su {maxAttempts}, quindi non è stata aperta alcuna richiesta di modifica.",
1863
1865
  "exitCode": "codice di uscita {code}",
1864
1866
  "timedOut": "tempo scaduto"
1867
+ },
1868
+ "reproduction": {
1869
+ "heading": "Prova di riproduzione",
1870
+ "status": {
1871
+ "reproduced": "Riprodotto",
1872
+ "inconclusive": "Non dimostrato",
1873
+ "declared_infeasible": "Non riproducibile"
1874
+ },
1875
+ "verdict": {
1876
+ "reproduced": "Il controllo dichiarato è fallito sull’albero precedente alla correzione e passa su questo.",
1877
+ "inconclusive": "Il controllo non ha dimostrato il difetto ai due lati della correzione, quindi la correzione non è comprovata.",
1878
+ "declared_infeasible": "L’agente ha dichiarato che questo bug non è riproducibile in un test e ha indicato che cosa ha verificato al suo posto."
1879
+ },
1880
+ "tree": {
1881
+ "base": "Albero precedente alla correzione",
1882
+ "final": "Albero finale"
1883
+ },
1884
+ "command": "Comando",
1885
+ "reason": "Perché non è riproducibile",
1886
+ "alternative": "Verificato al suo posto",
1887
+ "passed": "superato",
1888
+ "exitCode": "codice di uscita {code}",
1889
+ "timedOut": "tempo scaduto",
1890
+ "setupFailed": "preparazione fallita",
1891
+ "notRun": "non eseguito",
1892
+ "attempts": "Tentativo {attempts} di {maxAttempts}",
1893
+ "omittedTestPaths": "{count} file di test dichiarato è stato scartato prima dell’esecuzione della prova, quindi l’albero precedente alla correzione è stato ricostruito da una riproduzione incompleta. | {count} file di test dichiarati sono stati scartati prima dell’esecuzione della prova, quindi l’albero precedente alla correzione è stato ricostruito da una riproduzione incompleta."
1865
1894
  }
1866
1895
  },
1867
1896
  "inspector": {
@@ -3232,6 +3261,9 @@
3232
3261
  "contextError": "Impossibile caricare il contesto fornito.",
3233
3262
  "summary": {
3234
3263
  "calls": "Chiamate",
3264
+ "cost": "Costo stimato",
3265
+ "costHint": "Calcolato ai prezzi di listino, ogni classe di input alla propria tariffa: una lettura dalla cache costa circa un decimo dell'input nuovo, una scrittura in cache circa un quarto in più. Un'esecuzione in abbonamento non paga nulla per token, quindi questo è quanto sarebbero costati gli stessi token a consumo.",
3266
+ "costIncomplete": "Non mostrato: almeno una fase ha usato un modello per cui questa installazione non ha una tariffa, quindi un totale sarebbe incompleto. Le fasi con prezzo sono elencate sotto.",
3235
3267
  "tokensInOut": "Token (in / out)",
3236
3268
  "transportOverhead": "Overhead di trasporto",
3237
3269
  "modelExecution": "Esecuzione del modello",
@@ -3251,8 +3283,10 @@
3251
3283
  "phase": "Fase",
3252
3284
  "turns": "Turni",
3253
3285
  "tokensInOut": "Token (in / out)",
3286
+ "cost": "Costo",
3254
3287
  "carryCost": "Costo di trascinamento"
3255
3288
  },
3289
+ "costHint": "Costo stimato dei token di questa fase ai prezzi di listino. Un trattino indica che questa installazione non ha una tariffa per il modello eseguito.",
3256
3290
  "carryCostHint": "Quanto ogni fase ha gravato sui turni successivi: il suo contesto contato una volta per ogni turno che ha dovuto rinviarlo. Confronta tra loro le fasi di un'esecuzione; da solo il numero non significa nulla. Una fase che viene eseguita per ultima trascina poco per quanto abbia speso, quindi leggi questa colonna insieme ai token accanto.",
3257
3291
  "unattributed": "Non attribuito",
3258
3292
  "unattributedHint": "registrato da un canale che non riporta la fase"
@@ -3260,6 +3294,7 @@
3260
3294
  "metricsBar": {
3261
3295
  "calls": "{count} chiamata | {count} chiamate",
3262
3296
  "inputCompletionTokens": "Token totali di input / output. L'input conta anche i token in cache: occupano comunque la finestra di contesto, esattamente come li conta l'indicatore di contesto di Claude Code.",
3297
+ "costHint": "Costo stimato dei token di questo passo ai prezzi di listino, ogni classe di input alla propria tariffa. Un'esecuzione in abbonamento non paga nulla per token, quindi questo è quanto sarebbero costati gli stessi token a consumo.",
3263
3298
  "fresh": "{tokens} freschi",
3264
3299
  "freshHint": "Input elaborato da zero, senza nulla servito dalla cache",
3265
3300
  "cacheRead": "{tokens} letti dalla cache",
@@ -5121,7 +5156,9 @@
5121
5156
  "foundational_service_exists": "Il servizio fondamentale esiste già",
5122
5157
  "binary_output_service_invalid": "Impossibile risolvere il servizio per gli output binari",
5123
5158
  "binary_output_generator_invalid": "Impossibile risolvere il generatore per gli output binari",
5124
- "foundational_service_not_inherited": "Questa bacheca ha registrato quel servizio"
5159
+ "foundational_service_not_inherited": "Questa bacheca ha registrato quel servizio",
5160
+ "ticket_already_linked": "Questo ticket ha già un'attività",
5161
+ "dry_run_not_mergeable": "Una prova non può essere unita"
5125
5162
  },
5126
5163
  "description": {
5127
5164
  "dependencies_unmet": "Questa attività dipende da altre non ancora completate. Completale o sbloccale, poi avviala di nuovo.",
@@ -5153,7 +5190,9 @@
5153
5190
  "foundational_service_exists": "Un servizio fondamentale con questo identificatore è già registrato in questo ambito. Apri la voce esistente e modificala: due servizi non possono condividere un identificatore, perché è il nome che un architetto indica nella sua progettazione.",
5154
5191
  "binary_output_service_invalid": "Un passaggio che genera output binari seleziona un servizio fondamentale che il catalogo di questo workspace non riesce a risolvere: l'identificatore è sconosciuto, oppure il servizio di archiviazione scelto non ha la capacità asset-storage. Correggi la selezione del passaggio o registra il servizio, poi riavvia.",
5155
5192
  "binary_output_generator_invalid": "Un passaggio che genera output binari seleziona un'integrazione generativa che questa installazione non registra, oppure nessuna delle integrazioni selezionate produce un tipo di contenuto che il passaggio deve consegnare. Le integrazioni generative si registrano nel codice dell'installazione, non in questo workspace: registrala o correggi la selezione del passaggio, poi riavvia.",
5156
- "foundational_service_not_inherited": "L'esclusione vale per un servizio ereditato dall'account. Questo id è registrato da questa bacheca, quindi non c'è nulla da escludere: elimina invece la voce propria della bacheca."
5193
+ "foundational_service_not_inherited": "L'esclusione vale per un servizio ereditato dall'account. Questo id è registrato da questa bacheca, quindi non c'è nulla da escludere: elimina invece la voce propria della bacheca.",
5194
+ "ticket_already_linked": "Un ticket può sostenere una sola attività, quindi ricollegarlo toglierebbe all'attività esistente il contesto con cui è stata creata. Apri invece quell'attività, oppure scollega prima il ticket.",
5195
+ "dry_run_not_mergeable": "Questa pull request proviene da una prova, quindi non può essere unita da qui. Riavvia l’attività come esecuzione reale per produrre una pull request che questo spazio di lavoro unirà."
5157
5196
  },
5158
5197
  "action": {
5159
5198
  "connectGitHub": "Collega GitHub",
@@ -6289,6 +6328,12 @@
6289
6328
  "minor": "Note minori",
6290
6329
  "major": "Rilavorazione sostanziale",
6291
6330
  "classHistory": "{merged} uniti in questa categoria, {autoShare} in automatico"
6331
+ },
6332
+ "role": {
6333
+ "admin": "amministratore",
6334
+ "member": "membro",
6335
+ "viewer": "osservatore",
6336
+ "unattributed": "un avvio automatico"
6292
6337
  }
6293
6338
  },
6294
6339
  "vcs": {
@@ -6390,7 +6435,10 @@
6390
6435
  "finishedRun": "Un'esecuzione conclusa con successo",
6391
6436
  "integrationsManage": "L'autorizzazione a gestire le integrazioni",
6392
6437
  "settingsManage": "L'autorizzazione a gestire le impostazioni dello workspace",
6393
- "library": "La libreria dei frammenti di contesto abilitata su questo deployment"
6438
+ "library": "La libreria dei frammenti di contesto abilitata su questo deployment",
6439
+ "failedRun": "Un’esecuzione fallita",
6440
+ "infrastructure": "Un backend di esecuzione collegato a questo workspace",
6441
+ "advancedTier": "La modalità interfaccia avanzata"
6394
6442
  },
6395
6443
  "overlay": {
6396
6444
  "next": "Avanti",
@@ -6402,7 +6450,9 @@
6402
6450
  "announcement": "Passaggio {current} di {total}. {title}. {body}",
6403
6451
  "abridged": "1 passaggio è stato saltato: quel controllo non fa parte di questa board. | {count} passaggi sono stati saltati: quei controlli non fanno parte di questa board.",
6404
6452
  "searching": "Ricerca del controllo evidenziato...",
6405
- "clickHint": "Clicca sul controllo evidenziato per continuare"
6453
+ "clickHint": "Clicca sul controllo evidenziato per continuare",
6454
+ "nextUp": "Prossimo",
6455
+ "takeNext": "Fai questo"
6406
6456
  },
6407
6457
  "tours": {
6408
6458
  "boardBasics": {
@@ -6525,7 +6575,7 @@
6525
6575
  },
6526
6576
  "finish": {
6527
6577
  "title": "Questo è il ciclo",
6528
- "body": "Pianifica un'attività, scegli una pipeline, avviala, seguila. Quando un'esecuzione ha bisogno di te si ferma e lo dice, ed è quello che copre il tour successivo."
6578
+ "body": "Pianifica unattività, scegli una pipeline, avviala, seguila. I tour successivi a questo leggono un’esecuzione reale, quindi si sbloccano appena ne avvii davvero una."
6529
6579
  }
6530
6580
  }
6531
6581
  },
@@ -6680,7 +6730,100 @@
6680
6730
  "body": "Alcune voci appartengono a te e non alla board, come un token di accesso personale o un piano, e servono solo per le esecuzioni che avvii tu. L'hub segnala quale è quale, e La mia configurazione raccoglie quelle tue."
6681
6731
  }
6682
6732
  }
6733
+ },
6734
+ "diagnoseFailure": {
6735
+ "title": "Leggere un errore",
6736
+ "description": "Un’esecuzione si è fermata con un errore. Scopri cosa si è rotto e cosa farci.",
6737
+ "steps": {
6738
+ "intro": {
6739
+ "title": "Le esecuzioni falliscono, ed è normale",
6740
+ "body": "Un’esecuzione fallita non è un vicolo cieco. La board conserva l’errore, la causa è spesso una riga, e la maggior parte delle cause si risolve con un’impostazione, non riscrivendo l’attività."
6741
+ },
6742
+ "banner": {
6743
+ "title": "Cosa è andato storto",
6744
+ "body": "La card sostituisce la barra di avanzamento con questo avviso. Nomina la causa, i dettagli contengono l’output grezzo, e alcune cause offrono un pulsante diretto all’impostazione che le risolve."
6745
+ },
6746
+ "retry": {
6747
+ "title": "Eseguirla di nuovo",
6748
+ "body": "Riprova rilancia il lavoro. Gli errori precedenti restano sull’attività, sotto «Errori precedenti», così puoi confrontare i tentativi invece di perdere la traccia."
6749
+ },
6750
+ "finish": {
6751
+ "title": "Un errore è informazione",
6752
+ "body": "Correggi la causa, riprova, confronta. Se lo stesso errore continua a tornare, i dettagli sono ciò da portare a chi può ampliare un permesso o collegare quello che manca."
6753
+ }
6754
+ }
6755
+ },
6756
+ "prepareInfrastructure": {
6757
+ "title": "Dove avvengono le esecuzioni",
6758
+ "description": "Le macchine su cui girano gli agenti, gli ambienti in cui testano e le credenziali che possono usare.",
6759
+ "steps": {
6760
+ "intro": {
6761
+ "title": "Gli agenti hanno bisogno di un posto dove girare",
6762
+ "body": "Ogni passo in container gira su un backend di esecuzione, i test si avviano in un ambiente e alcune capacità richiedono una credenziale. Tutti e tre si configurano in un’unica finestra."
6763
+ },
6764
+ "open": {
6765
+ "title": "Apri Infrastruttura",
6766
+ "body": "Tutto ciò che riguarda dove e come vengono eseguite le esecuzioni sta qui."
6767
+ },
6768
+ "tabs": {
6769
+ "title": "Una scheda per argomento",
6770
+ "body": "Container degli agenti è dove il lavoro viene eseguito. Ambienti di test è ciò da cui un servizio viene avviato. L’elenco delle credenziali mostra quali chiavi le capacità usate dai tuoi agenti riescono davvero a risolvere, e quali mancano ancora."
6771
+ },
6772
+ "finish": {
6773
+ "title": "Gli errori riportano qui",
6774
+ "body": "Quando un’esecuzione fallisce durante il provisioning, questa è la finestra che il suo avviso ti chiede di aprire. Meglio saperlo prima che dopo."
6775
+ }
6776
+ }
6777
+ },
6778
+ "panelReviews": {
6779
+ "title": "Revisione a più voci",
6780
+ "description": "Fai revisionare lo stesso lavoro da più modelli invece di uno, sulle attività che lo meritano.",
6781
+ "steps": {
6782
+ "intro": {
6783
+ "title": "Un revisore, o più di uno",
6784
+ "body": "Un passo di revisione normalmente esegue un agente. Può invece eseguire un panel di più modelli e confrontare quello che dicono, cosa che intercetta quello che un revisore solo si perde sul lavoro più pesante."
6785
+ },
6786
+ "open": {
6787
+ "title": "Apri Configurazione modelli",
6788
+ "body": "I panel sono fatti di modelli, quindi si configurano accanto a loro."
6789
+ },
6790
+ "groups": {
6791
+ "title": "Definire un panel",
6792
+ "body": "Un gruppo nomina i modelli del panel e quanto impegnativa deve essere un’attività perché venga usato. Un passo poi seleziona un gruppo invece di nominare i modelli uno per uno."
6793
+ },
6794
+ "finish": {
6795
+ "title": "Il costo segue lo sforzo",
6796
+ "body": "Un panel costa tante chiamate al modello quanti sono i suoi membri, ed è per questo che un gruppo può essere limitato alle attività la cui stima supera la sua soglia. Il lavoro piccolo mantiene un solo revisore."
6797
+ }
6798
+ }
6799
+ },
6800
+ "shareServices": {
6801
+ "title": "I servizi che hai già",
6802
+ "description": "Di’ agli agenti quali sistemi condivisi esistono e come sono le loro API.",
6803
+ "steps": {
6804
+ "intro": {
6805
+ "title": "Non ricostruire quello che hai",
6806
+ "body": "Gli agenti progettano alla cieca se non sanno cosa la tua organizzazione ha già in funzione. Questo catalogo nomina quei sistemi e porta i loro contratti API."
6807
+ },
6808
+ "open": {
6809
+ "title": "Apri Servizi fondamentali",
6810
+ "body": "Il catalogo delle capacità condivise disponibile per ogni board di questo workspace."
6811
+ },
6812
+ "catalog": {
6813
+ "title": "Registra, carica o sincronizza",
6814
+ "body": "Aggiungi un servizio a mano, carica i suoi documenti API, oppure collega un repository e lascia che si sincronizzino. I progetti fanno poi riferimento a ciò che è registrato qui invece di inventarsi un’interfaccia."
6815
+ },
6816
+ "finish": {
6817
+ "title": "I passi di progettazione leggono questo",
6818
+ "body": "Un progetto che dichiara quali di questi usa riceve i loro contratti completi al passo successivo. Uno che non dichiara nulla non riceve nulla: tenere questo aggiornato è ciò che lo fa funzionare."
6819
+ }
6820
+ }
6683
6821
  }
6822
+ },
6823
+ "nudge": {
6824
+ "label": "Nuovo tour disponibile",
6825
+ "start": "Mostrami",
6826
+ "dismiss": "Chiudi"
6684
6827
  }
6685
6828
  },
6686
6829
  "externalTools": {