@agent-native/core 0.183.0 → 0.184.0-nightly-20260921210811

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 (63) hide show
  1. package/corpus/templates/content/app/components/editor/DocumentToolbar.tsx +26 -1
  2. package/corpus/templates/design/.generated/bridge/editor-chrome.generated.ts +41 -17
  3. package/corpus/templates/design/app/components/design/MultiScreenCanvas.tsx +22 -15
  4. package/corpus/templates/design/app/components/design/bridge/editor-chrome.bridge.ts +62 -30
  5. package/corpus/templates/design/app/components/design/multi-screen/primitive-drop-target.ts +10 -1
  6. package/corpus/templates/design/app/pages/design-editor/commands/commit-visual-styles.ts +3 -12
  7. package/corpus/templates/design/app/pages/design-editor/commands/nudge-selection.ts +37 -3
  8. package/corpus/templates/design/app/pages/design-editor/commands/redo.ts +5 -2
  9. package/dist/chat-threads/store.d.ts +1 -0
  10. package/dist/chat-threads/store.js +19 -0
  11. package/dist/client/observability/ObservabilityDashboard.js +113 -3
  12. package/dist/client/observability/useObservability.d.ts +9 -0
  13. package/dist/client/observability/useObservability.js +12 -0
  14. package/dist/collab/awareness.d.ts +2 -2
  15. package/dist/collab/struct-routes.d.ts +1 -1
  16. package/dist/file-upload/actions/upload-image.d.ts +2 -2
  17. package/dist/identity/rekey.js +5 -0
  18. package/dist/localization/default-messages.d.ts +24 -0
  19. package/dist/localization/default-messages.js +24 -0
  20. package/dist/notifications/routes.d.ts +1 -1
  21. package/dist/observability/actions/list-observability-reviews.d.ts +5 -0
  22. package/dist/observability/actions/list-observability-reviews.js +23 -0
  23. package/dist/observability/actions/save-observability-instruction-update.d.ts +9 -0
  24. package/dist/observability/actions/save-observability-instruction-update.js +38 -0
  25. package/dist/observability/index.d.ts +2 -2
  26. package/dist/observability/index.js +1 -1
  27. package/dist/observability/reviews.d.ts +6 -0
  28. package/dist/observability/reviews.js +155 -0
  29. package/dist/observability/routes.d.ts +8 -8
  30. package/dist/observability/store.d.ts +8 -1
  31. package/dist/observability/store.js +77 -0
  32. package/dist/observability/types.d.ts +23 -0
  33. package/dist/org/handlers.d.ts +1 -1
  34. package/dist/provider-api/actions/custom-provider-registration.d.ts +17 -17
  35. package/dist/provider-api/actions/provider-api.d.ts +11 -11
  36. package/dist/provider-api/corpus-jobs.d.ts +2 -2
  37. package/dist/server/agent-engine-api-key-route.d.ts +2 -2
  38. package/dist/server/core-routes-plugin.d.ts +1 -1
  39. package/dist/server/realtime-token.d.ts +1 -1
  40. package/dist/templates/default/app/i18n/ar-SA.ts +25 -0
  41. package/dist/templates/default/app/i18n/de-DE.ts +25 -0
  42. package/dist/templates/default/app/i18n/en-US.ts +26 -0
  43. package/dist/templates/default/app/i18n/es-ES.ts +26 -0
  44. package/dist/templates/default/app/i18n/fr-FR.ts +26 -0
  45. package/dist/templates/default/app/i18n/hi-IN.ts +25 -0
  46. package/dist/templates/default/app/i18n/ja-JP.ts +25 -0
  47. package/dist/templates/default/app/i18n/ko-KR.ts +25 -0
  48. package/dist/templates/default/app/i18n/pt-BR.ts +25 -0
  49. package/dist/templates/default/app/i18n/zh-CN.ts +24 -0
  50. package/dist/templates/default/app/i18n/zh-TW.ts +24 -0
  51. package/dist/vite/action-types-plugin.js +8 -0
  52. package/package.json +5 -3
  53. package/src/templates/default/app/i18n/ar-SA.ts +25 -0
  54. package/src/templates/default/app/i18n/de-DE.ts +25 -0
  55. package/src/templates/default/app/i18n/en-US.ts +26 -0
  56. package/src/templates/default/app/i18n/es-ES.ts +26 -0
  57. package/src/templates/default/app/i18n/fr-FR.ts +26 -0
  58. package/src/templates/default/app/i18n/hi-IN.ts +25 -0
  59. package/src/templates/default/app/i18n/ja-JP.ts +25 -0
  60. package/src/templates/default/app/i18n/ko-KR.ts +25 -0
  61. package/src/templates/default/app/i18n/pt-BR.ts +25 -0
  62. package/src/templates/default/app/i18n/zh-CN.ts +24 -0
  63. package/src/templates/default/app/i18n/zh-TW.ts +24 -0
@@ -1,4 +1,4 @@
1
- import type { TraceSpan, TraceSummary, FeedbackEntry, SatisfactionScore, EvalResult, EvalDataset, Experiment, ExperimentAssignment, ExperimentMetricResult } from "./types.js";
1
+ import type { TraceSpan, TraceSummary, FeedbackEntry, SatisfactionScore, EvalResult, EvalDataset, Experiment, ExperimentAssignment, ExperimentMetricResult, InstructionUpdate } from "./types.js";
2
2
  export declare function ensureObservabilityTables(): Promise<void>;
3
3
  export declare function insertTraceSpan(span: TraceSpan): Promise<void>;
4
4
  export declare function upsertTraceSummary(summary: TraceSummary): Promise<void>;
@@ -50,6 +50,13 @@ export declare function getFeedbackStats(sinceMs: number, opts?: {
50
50
  thumbsDown: number;
51
51
  categories: Record<string, number>;
52
52
  }>;
53
+ export declare function insertInstructionUpdate(update: InstructionUpdate): Promise<void>;
54
+ export declare function getInstructionUpdates(opts: {
55
+ runId?: string;
56
+ sinceMs?: number;
57
+ limit?: number;
58
+ userId?: string;
59
+ }): Promise<InstructionUpdate[]>;
53
60
  export declare function upsertSatisfactionScore(score: SatisfactionScore): Promise<void>;
54
61
  export declare function getSatisfactionScores(opts: {
55
62
  sinceMs?: number;
@@ -28,6 +28,7 @@ const USER_SCOPED_TABLES = [
28
28
  "agent_satisfaction_scores",
29
29
  "agent_evals",
30
30
  "agent_feedback",
31
+ "agent_instruction_updates",
31
32
  ];
32
33
  /**
33
34
  * Append an `AND user_id = ?` clause when a userId filter is requested.
@@ -97,6 +98,20 @@ export async function ensureObservabilityTables() {
97
98
  user_id TEXT,
98
99
  created_at BIGINT NOT NULL
99
100
  )
101
+ `;
102
+ const instructionUpdatesCreateSql = `
103
+ CREATE TABLE IF NOT EXISTS agent_instruction_updates (
104
+ id TEXT PRIMARY KEY,
105
+ run_id TEXT NOT NULL,
106
+ thread_id TEXT,
107
+ target TEXT NOT NULL,
108
+ instruction TEXT NOT NULL,
109
+ feedback TEXT NOT NULL DEFAULT '',
110
+ status TEXT NOT NULL DEFAULT 'draft',
111
+ user_id TEXT NOT NULL,
112
+ created_at BIGINT NOT NULL,
113
+ updated_at BIGINT NOT NULL
114
+ )
100
115
  `;
101
116
  const satisfactionScoresCreateSql = `
102
117
  CREATE TABLE IF NOT EXISTS agent_satisfaction_scores (
@@ -176,6 +191,7 @@ export async function ensureObservabilityTables() {
176
191
  await ensureTableExists("agent_trace_spans", traceSpansCreateSql);
177
192
  await ensureTableExists("agent_trace_summaries", traceSummariesCreateSql);
178
193
  await ensureTableExists("agent_feedback", feedbackCreateSql);
194
+ await ensureTableExists("agent_instruction_updates", instructionUpdatesCreateSql);
179
195
  await ensureTableExists("agent_satisfaction_scores", satisfactionScoresCreateSql);
180
196
  await ensureTableExists("agent_evals", evalsCreateSql);
181
197
  await ensureTableExists("agent_eval_datasets", evalDatasetsCreateSql);
@@ -199,6 +215,7 @@ export async function ensureObservabilityTables() {
199
215
  await ensureIndexExists("idx_feedback_user", `CREATE INDEX IF NOT EXISTS idx_feedback_user ON agent_feedback (user_id, created_at)`);
200
216
  await ensureIndexExists("idx_feedback_type_created", `CREATE INDEX IF NOT EXISTS idx_feedback_type_created ON agent_feedback (feedback_type, created_at)`);
201
217
  await ensureIndexExists("idx_feedback_idempotency", `CREATE UNIQUE INDEX IF NOT EXISTS idx_feedback_idempotency ON agent_feedback (user_id, idempotency_key)`);
218
+ await ensureIndexExists("idx_instruction_updates_run_user", `CREATE INDEX IF NOT EXISTS idx_instruction_updates_run_user ON agent_instruction_updates (run_id, user_id, updated_at)`);
202
219
  await ensureIndexExists("idx_satisfaction_thread", `CREATE INDEX IF NOT EXISTS idx_satisfaction_thread ON agent_satisfaction_scores (thread_id)`);
203
220
  await ensureIndexExists("idx_satisfaction_user", `CREATE INDEX IF NOT EXISTS idx_satisfaction_user ON agent_satisfaction_scores (user_id, computed_at)`);
204
221
  await ensureIndexExists("idx_evals_run", `CREATE INDEX IF NOT EXISTS idx_evals_run ON agent_evals (run_id)`);
@@ -453,6 +470,52 @@ export async function getFeedbackStats(sinceMs, opts = {}) {
453
470
  }
454
471
  return { total, thumbsUp, thumbsDown, categories };
455
472
  }
473
+ export async function insertInstructionUpdate(update) {
474
+ await ensureObservabilityTables();
475
+ const client = getDbExec();
476
+ await client.execute({
477
+ sql: `INSERT INTO agent_instruction_updates
478
+ (id, run_id, thread_id, target, instruction, feedback, status, user_id, created_at, updated_at)
479
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
480
+ args: [
481
+ update.id,
482
+ update.runId,
483
+ update.threadId,
484
+ update.target,
485
+ update.instruction,
486
+ update.feedback,
487
+ update.status,
488
+ update.userId,
489
+ update.createdAt,
490
+ update.updatedAt,
491
+ ],
492
+ });
493
+ }
494
+ export async function getInstructionUpdates(opts) {
495
+ await ensureObservabilityTables();
496
+ const client = getDbExec();
497
+ const conditions = [];
498
+ const args = [];
499
+ if (opts.runId) {
500
+ conditions.push("run_id = ?");
501
+ args.push(opts.runId);
502
+ }
503
+ if (opts.sinceMs) {
504
+ conditions.push("updated_at >= ?");
505
+ args.push(opts.sinceMs);
506
+ }
507
+ if (opts.userId) {
508
+ conditions.push("user_id = ?");
509
+ args.push(opts.userId);
510
+ }
511
+ const where = conditions.length > 0 ? `WHERE ${conditions.join(" AND ")}` : "";
512
+ const { rows } = await client.execute({
513
+ sql: `SELECT * FROM agent_instruction_updates ${where}
514
+ ORDER BY updated_at DESC LIMIT ?`,
515
+ args: [...args, opts.limit ?? 500],
516
+ });
517
+ return rows.map(rowToInstructionUpdate);
518
+ }
456
519
  // ─── Satisfaction scores CRUD ────────────────────────────────────────
457
520
  export async function upsertSatisfactionScore(score) {
458
521
  await ensureObservabilityTables();
@@ -889,6 +952,20 @@ function rowToFeedback(row) {
889
952
  createdAt: Number(row.created_at),
890
953
  };
891
954
  }
955
+ function rowToInstructionUpdate(row) {
956
+ return {
957
+ id: String(row.id),
958
+ runId: String(row.run_id),
959
+ threadId: row.thread_id ? String(row.thread_id) : null,
960
+ target: row.target,
961
+ instruction: String(row.instruction),
962
+ feedback: String(row.feedback ?? ""),
963
+ status: row.status,
964
+ userId: String(row.user_id),
965
+ createdAt: Number(row.created_at),
966
+ updatedAt: Number(row.updated_at),
967
+ };
968
+ }
892
969
  function rowToSatisfaction(row) {
893
970
  return {
894
971
  id: String(row.id),
@@ -58,6 +58,29 @@ export interface FeedbackEntry {
58
58
  userId: string | null;
59
59
  createdAt: number;
60
60
  }
61
+ export type InstructionUpdateStatus = "draft" | "approved" | "applied";
62
+ export interface InstructionUpdate {
63
+ id: string;
64
+ runId: string;
65
+ threadId: string | null;
66
+ target: "agent" | "developer" | "skill";
67
+ instruction: string;
68
+ feedback: string;
69
+ status: InstructionUpdateStatus;
70
+ userId: string;
71
+ createdAt: number;
72
+ updatedAt: number;
73
+ }
74
+ export interface OutputReviewRow {
75
+ runId: string;
76
+ threadId: string | null;
77
+ ask: string;
78
+ answer: string;
79
+ model: string;
80
+ createdAt: number;
81
+ feedback: FeedbackEntry[];
82
+ instructionUpdate: InstructionUpdate | null;
83
+ }
61
84
  export interface SatisfactionScore {
62
85
  id: string;
63
86
  threadId: string;
@@ -53,9 +53,9 @@ export declare const setWorkspaceAppDefaultVisibilityHandler: import("h3").Event
53
53
  /** POST /_agent-native/org — create a new organization */
54
54
  export declare const createOrgHandler: import("h3").EventHandlerWithFetch<import("h3").EventHandlerRequest, Promise<{
55
55
  success: boolean;
56
+ id?: undefined;
56
57
  name?: undefined;
57
58
  role?: undefined;
58
- id?: undefined;
59
59
  } | {
60
60
  success?: undefined;
61
61
  id: string;
@@ -75,10 +75,9 @@ export declare function createCustomProviderRegistrationAction<TSchema extends Z
75
75
  user: "user";
76
76
  }>>;
77
77
  }, z.core.$strip>>, {
78
- id?: undefined;
79
- message?: undefined;
80
- found?: undefined;
81
78
  deleted?: undefined;
79
+ id?: undefined;
80
+ provider?: undefined;
82
81
  providers: {
83
82
  id: string;
84
83
  label: string;
@@ -89,45 +88,46 @@ export declare function createCustomProviderRegistrationAction<TSchema extends Z
89
88
  updatedAt: number;
90
89
  }[];
91
90
  count: number;
92
- provider?: undefined;
91
+ found?: undefined;
93
92
  registered?: undefined;
94
93
  label?: undefined;
95
- } | {
96
- id?: undefined;
97
94
  message?: undefined;
95
+ } | {
98
96
  deleted?: undefined;
99
- providers?: undefined;
97
+ id?: undefined;
100
98
  count?: undefined;
99
+ providers?: undefined;
101
100
  found: boolean;
102
101
  provider: import("../custom-registry.js").CustomProviderConfig;
103
102
  registered?: undefined;
104
103
  label?: undefined;
105
- } | {
106
104
  message?: undefined;
105
+ } | {
107
106
  deleted?: undefined;
108
- providers?: undefined;
109
- count?: undefined;
110
107
  provider?: undefined;
108
+ count?: undefined;
109
+ providers?: undefined;
111
110
  found: boolean;
112
111
  id: string;
113
112
  registered?: undefined;
114
113
  label?: undefined;
115
- } | {
116
114
  message?: undefined;
117
- found?: undefined;
118
- providers?: undefined;
119
- count?: undefined;
115
+ } | {
120
116
  provider?: undefined;
117
+ count?: undefined;
118
+ providers?: undefined;
119
+ found?: undefined;
121
120
  deleted: boolean;
122
121
  id: string;
123
122
  registered?: undefined;
124
123
  label?: undefined;
124
+ message?: undefined;
125
125
  } | {
126
- found?: undefined;
127
126
  deleted?: undefined;
128
- providers?: undefined;
129
- count?: undefined;
130
127
  provider?: undefined;
128
+ count?: undefined;
129
+ providers?: undefined;
130
+ found?: undefined;
131
131
  registered: boolean;
132
132
  id: string;
133
133
  label: string;
@@ -311,9 +311,8 @@ export declare function createProviderApiActions(runtime: Pick<ProviderApiRuntim
311
311
  notes?: string | undefined;
312
312
  scope?: "org" | "user" | undefined;
313
313
  }, {
314
+ message?: undefined;
314
315
  id?: undefined;
315
- deleted?: undefined;
316
- found?: undefined;
317
316
  providers: {
318
317
  id: string;
319
318
  label: string;
@@ -325,45 +324,46 @@ export declare function createProviderApiActions(runtime: Pick<ProviderApiRuntim
325
324
  }[];
326
325
  count: number;
327
326
  provider?: undefined;
327
+ found?: undefined;
328
+ deleted?: undefined;
328
329
  registered?: undefined;
329
330
  label?: undefined;
330
- message?: undefined;
331
331
  } | {
332
+ message?: undefined;
332
333
  id?: undefined;
333
- deleted?: undefined;
334
334
  count?: undefined;
335
335
  providers?: undefined;
336
336
  found: boolean;
337
337
  provider: import("../custom-registry.js").CustomProviderConfig;
338
+ deleted?: undefined;
338
339
  registered?: undefined;
339
340
  label?: undefined;
340
- message?: undefined;
341
341
  } | {
342
- deleted?: undefined;
342
+ message?: undefined;
343
343
  count?: undefined;
344
344
  providers?: undefined;
345
345
  provider?: undefined;
346
346
  found: boolean;
347
347
  id: string;
348
+ deleted?: undefined;
348
349
  registered?: undefined;
349
350
  label?: undefined;
350
- message?: undefined;
351
351
  } | {
352
+ message?: undefined;
352
353
  count?: undefined;
353
- found?: undefined;
354
354
  providers?: undefined;
355
355
  provider?: undefined;
356
+ found?: undefined;
356
357
  deleted: boolean;
357
358
  id: string;
358
359
  registered?: undefined;
359
360
  label?: undefined;
360
- message?: undefined;
361
361
  } | {
362
- deleted?: undefined;
363
362
  count?: undefined;
364
- found?: undefined;
365
363
  providers?: undefined;
366
364
  provider?: undefined;
365
+ found?: undefined;
366
+ deleted?: undefined;
367
367
  registered: boolean;
368
368
  id: string;
369
369
  label: string;
@@ -73,6 +73,7 @@ export declare function createProviderCorpusJobAction(options: CreateProviderCor
73
73
  offset?: unknown;
74
74
  limit?: unknown;
75
75
  }, {
76
+ deleted?: undefined;
76
77
  jobs: {
77
78
  id: string;
78
79
  name: string;
@@ -83,7 +84,6 @@ export declare function createProviderCorpusJobAction(options: CreateProviderCor
83
84
  updatedAt: string;
84
85
  }[];
85
86
  total: number;
86
- deleted?: undefined;
87
87
  jobId?: undefined;
88
88
  } | {
89
89
  jobs?: undefined;
@@ -91,9 +91,9 @@ export declare function createProviderCorpusJobAction(options: CreateProviderCor
91
91
  deleted: boolean;
92
92
  jobId: string;
93
93
  } | {
94
+ deleted?: undefined;
94
95
  jobs?: undefined;
95
96
  total?: undefined;
96
- deleted?: undefined;
97
97
  jobId?: undefined;
98
98
  hits: Record<string, unknown>[];
99
99
  offset: number;
@@ -46,20 +46,20 @@ export declare function createAgentEngineApiKeyHandler(): import("h3").EventHand
46
46
  scope?: undefined;
47
47
  ok?: undefined;
48
48
  } | {
49
+ error?: undefined;
49
50
  ok: boolean;
50
51
  key: string;
51
52
  scope: string;
52
- error?: undefined;
53
53
  } | {
54
54
  key?: undefined;
55
55
  scope?: undefined;
56
56
  ok: boolean;
57
57
  error: string;
58
58
  } | {
59
+ error?: undefined;
59
60
  ok: boolean;
60
61
  key: string;
61
62
  baseUrlKey?: string;
62
63
  scope: AgentEngineApiKeyScope;
63
- error?: undefined;
64
64
  }>>;
65
65
  export {};
@@ -408,8 +408,8 @@ export declare function createPublicRemoteAgentsHandler(discover?: PublicAgentDi
408
408
  error: string;
409
409
  agents?: undefined;
410
410
  } | {
411
- agents: Omit<import("./agent-discovery.js").DiscoveredAgent, "auth" | "kind">[];
412
411
  error?: undefined;
412
+ agents: Omit<import("./agent-discovery.js").DiscoveredAgent, "auth" | "kind">[];
413
413
  }>>;
414
414
  export declare function getBuilderConnectErrorDisposition(error: unknown, connectAttemptId: string | null): "correlated" | "legacy" | null;
415
415
  export declare function getBuilderConnectErrorKey(ownerEmail: string, connectAttemptId?: string | null): string;
@@ -59,8 +59,8 @@ export declare function createRealtimeTokenHandler(): import("h3").EventHandlerW
59
59
  expiresAt?: undefined;
60
60
  ttlSeconds?: undefined;
61
61
  } | {
62
+ error?: undefined;
62
63
  token: string;
63
64
  expiresAt: string;
64
65
  ttlSeconds: number;
65
- error?: undefined;
66
66
  }>>;
@@ -680,6 +680,31 @@ const messages = {
680
680
  frustration: "Frustration",
681
681
  thumbsUpRate: "معدل ممتاز",
682
682
  categories: "الفئات",
683
+ review: "مراجعة بشرية",
684
+ reviewDescription:
685
+ "راجع السؤال والإجابة، وسجّل الملاحظات، واكتب مسودة لتحديث التعليمات.",
686
+ ask: "ما تم سؤاله",
687
+ answer: "ما أجاب به الوكيل",
688
+ reviewFeedback: "الملاحظات",
689
+ reviewOutput: "مراجعة الإجابة",
690
+ closeReview: "إغلاق",
691
+ notReviewed: "لم تتم المراجعة",
692
+ noteSaved: "تم حفظ الملاحظة",
693
+ looksGood: "يبدو جيدًا",
694
+ needsChange: "يحتاج إلى تغيير",
695
+ feedbackNote: "ملاحظة المراجعة",
696
+ feedbackPlaceholder: "ما الذي يجب تغييره أو إبقاؤه كما هو؟",
697
+ saveFeedback: "حفظ الملاحظات",
698
+ updateInstructions: "تحديث التعليمات",
699
+ draftNotice: "مسودة فقط - لا شيء يتغير تلقائيًا.",
700
+ instructionTarget: "هدف التعليمات",
701
+ agentTarget: "الوكيل",
702
+ developerTarget: "المطور",
703
+ skillTarget: "المهارة",
704
+ instructionPlaceholder: "اكتب تغيير التعليمات لمراجعة بشرية.",
705
+ saveUpdate: "حفظ مسودة التحديث",
706
+ draftSaved: "تم حفظ المسودة",
707
+ noReviews: "لا توجد إجابات وكيل للمراجعة حتى الآن",
683
708
  },
684
709
  error: {
685
710
  genericTitle: "حدث خطأ",
@@ -670,6 +670,31 @@ const messages = {
670
670
  frustration: "Frustration",
671
671
  thumbsUpRate: "Daumen hoch",
672
672
  categories: "Kategorien",
673
+ review: "Menschliche Prüfung",
674
+ reviewDescription:
675
+ "Prüfe Frage und Antwort, gib Feedback und entwirf eine Aktualisierung der Anweisungen.",
676
+ ask: "Was gefragt wurde",
677
+ answer: "Was der Agent geantwortet hat",
678
+ reviewFeedback: "Feedback",
679
+ reviewOutput: "Antwort prüfen",
680
+ closeReview: "Schließen",
681
+ notReviewed: "Nicht geprüft",
682
+ noteSaved: "Notiz gespeichert",
683
+ looksGood: "Sieht gut aus",
684
+ needsChange: "Änderung nötig",
685
+ feedbackNote: "Feedbacknotiz",
686
+ feedbackPlaceholder: "Was soll geändert oder beibehalten werden?",
687
+ saveFeedback: "Feedback speichern",
688
+ updateInstructions: "Anweisungen aktualisieren",
689
+ draftNotice: "Nur Entwurf - nichts wird automatisch geändert.",
690
+ instructionTarget: "Anweisungsziel",
691
+ agentTarget: "Agent",
692
+ developerTarget: "Entwickler",
693
+ skillTarget: "Skill",
694
+ instructionPlaceholder: "Schreibe die Änderung zur menschlichen Prüfung.",
695
+ saveUpdate: "Entwurf speichern",
696
+ draftSaved: "Entwurf gespeichert",
697
+ noReviews: "Noch keine Agentenantworten zur Prüfung",
673
698
  },
674
699
  error: {
675
700
  genericTitle: "Etwas ist schiefgelaufen",
@@ -656,6 +656,32 @@ const messages = {
656
656
  frustration: "Frustration",
657
657
  thumbsUpRate: "Thumbs up rate",
658
658
  categories: "Categories",
659
+ review: "Human review",
660
+ reviewDescription:
661
+ "Review the ask and answer, record feedback, and draft an instruction update.",
662
+ ask: "What was asked",
663
+ answer: "What the agent answered",
664
+ reviewFeedback: "Feedback",
665
+ reviewOutput: "Review output",
666
+ closeReview: "Close",
667
+ notReviewed: "Not reviewed",
668
+ noteSaved: "Note saved",
669
+ looksGood: "Looks good",
670
+ needsChange: "Needs change",
671
+ feedbackNote: "Feedback note",
672
+ feedbackPlaceholder: "What should change or stay the same?",
673
+ saveFeedback: "Save feedback",
674
+ updateInstructions: "Update instructions",
675
+ draftNotice: "Draft only - nothing changes automatically.",
676
+ instructionTarget: "Instruction target",
677
+ agentTarget: "Agent",
678
+ developerTarget: "Developer",
679
+ skillTarget: "Skill",
680
+ instructionPlaceholder:
681
+ "Write the instruction change for a human to review.",
682
+ saveUpdate: "Save draft update",
683
+ draftSaved: "Draft saved",
684
+ noReviews: "No agent outputs to review yet",
659
685
  },
660
686
  error: {
661
687
  genericTitle: "Something went wrong",
@@ -678,6 +678,32 @@ const messages = {
678
678
  frustration: "Frustration",
679
679
  thumbsUpRate: "Tasa de aprobación",
680
680
  categories: "Categorías",
681
+ review: "Revisión humana",
682
+ reviewDescription:
683
+ "Revisa la solicitud y la respuesta, deja comentarios y prepara una actualización de instrucciones.",
684
+ ask: "Qué se preguntó",
685
+ answer: "Qué respondió el agente",
686
+ reviewFeedback: "Comentarios",
687
+ reviewOutput: "Revisar respuesta",
688
+ closeReview: "Cerrar",
689
+ notReviewed: "Sin revisar",
690
+ noteSaved: "Nota guardada",
691
+ looksGood: "Está bien",
692
+ needsChange: "Necesita cambios",
693
+ feedbackNote: "Nota de comentarios",
694
+ feedbackPlaceholder: "¿Qué debería cambiar o mantenerse igual?",
695
+ saveFeedback: "Guardar comentarios",
696
+ updateInstructions: "Actualizar instrucciones",
697
+ draftNotice: "Solo borrador; nada cambia automáticamente.",
698
+ instructionTarget: "Destino de la instrucción",
699
+ agentTarget: "Agente",
700
+ developerTarget: "Desarrollador",
701
+ skillTarget: "Habilidad",
702
+ instructionPlaceholder:
703
+ "Escribe el cambio de instrucciones para que lo revise una persona.",
704
+ saveUpdate: "Guardar borrador",
705
+ draftSaved: "Borrador guardado",
706
+ noReviews: "Aún no hay respuestas del agente para revisar",
681
707
  },
682
708
  error: {
683
709
  genericTitle: "Algo salió mal",
@@ -675,6 +675,32 @@ const messages = {
675
675
  frustration: "Frustration",
676
676
  thumbsUpRate: "Taux positif",
677
677
  categories: "Catégories",
678
+ review: "Revue humaine",
679
+ reviewDescription:
680
+ "Examinez la demande et la réponse, donnez votre avis et préparez une mise à jour des instructions.",
681
+ ask: "Demande",
682
+ answer: "Réponse de l’agent",
683
+ reviewFeedback: "Avis",
684
+ reviewOutput: "Revoir la réponse",
685
+ closeReview: "Fermer",
686
+ notReviewed: "Non examiné",
687
+ noteSaved: "Note enregistrée",
688
+ looksGood: "C’est bien",
689
+ needsChange: "À modifier",
690
+ feedbackNote: "Note d’avis",
691
+ feedbackPlaceholder: "Que faut-il changer ou conserver ?",
692
+ saveFeedback: "Enregistrer l’avis",
693
+ updateInstructions: "Mettre à jour les instructions",
694
+ draftNotice: "Brouillon uniquement - rien ne change automatiquement.",
695
+ instructionTarget: "Cible de l’instruction",
696
+ agentTarget: "Agent",
697
+ developerTarget: "Développeur",
698
+ skillTarget: "Compétence",
699
+ instructionPlaceholder:
700
+ "Écrivez le changement d’instruction à faire relire.",
701
+ saveUpdate: "Enregistrer le brouillon",
702
+ draftSaved: "Brouillon enregistré",
703
+ noReviews: "Aucune réponse d’agent à examiner pour le moment",
678
704
  },
679
705
  error: {
680
706
  genericTitle: "Une erreur est survenue",
@@ -648,6 +648,31 @@ const messages = {
648
648
  frustration: "Frustration",
649
649
  thumbsUpRate: "अंगूठे ऊपर दर",
650
650
  categories: "श्रेणियां",
651
+ review: "मानवीय समीक्षा",
652
+ reviewDescription:
653
+ "प्रश्न और उत्तर की समीक्षा करें, फ़ीडबैक दें और निर्देश अपडेट का मसौदा बनाएं।",
654
+ ask: "क्या पूछा गया",
655
+ answer: "एजेंट ने क्या उत्तर दिया",
656
+ reviewFeedback: "फ़ीडबैक",
657
+ reviewOutput: "उत्तर की समीक्षा",
658
+ closeReview: "बंद करें",
659
+ notReviewed: "समीक्षा नहीं हुई",
660
+ noteSaved: "नोट सहेजा गया",
661
+ looksGood: "अच्छा है",
662
+ needsChange: "बदलाव चाहिए",
663
+ feedbackNote: "फ़ीडबैक नोट",
664
+ feedbackPlaceholder: "क्या बदलना या वैसा ही रखना चाहिए?",
665
+ saveFeedback: "फ़ीडबैक सहेजें",
666
+ updateInstructions: "निर्देश अपडेट करें",
667
+ draftNotice: "सिर्फ़ मसौदा - कुछ भी अपने आप नहीं बदलेगा।",
668
+ instructionTarget: "निर्देश लक्ष्य",
669
+ agentTarget: "एजेंट",
670
+ developerTarget: "डेवलपर",
671
+ skillTarget: "स्किल",
672
+ instructionPlaceholder: "मानवीय समीक्षा के लिए निर्देश बदलाव लिखें।",
673
+ saveUpdate: "अपडेट मसौदा सहेजें",
674
+ draftSaved: "मसौदा सहेजा गया",
675
+ noReviews: "अभी समीक्षा के लिए कोई एजेंट उत्तर नहीं है",
651
676
  },
652
677
  error: {
653
678
  genericTitle: "कुछ गलत हुआ",
@@ -658,6 +658,31 @@ const messages = {
658
658
  frustration: "Frustration",
659
659
  thumbsUpRate: "賛成率",
660
660
  categories: "カテゴリ",
661
+ review: "人によるレビュー",
662
+ reviewDescription:
663
+ "質問と回答を確認し、フィードバックと指示の更新案を保存します。",
664
+ ask: "質問内容",
665
+ answer: "エージェントの回答",
666
+ reviewFeedback: "フィードバック",
667
+ reviewOutput: "回答をレビュー",
668
+ closeReview: "閉じる",
669
+ notReviewed: "未レビュー",
670
+ noteSaved: "メモを保存しました",
671
+ looksGood: "問題なし",
672
+ needsChange: "変更が必要",
673
+ feedbackNote: "フィードバックメモ",
674
+ feedbackPlaceholder: "変更または維持すべき点は?",
675
+ saveFeedback: "フィードバックを保存",
676
+ updateInstructions: "指示を更新",
677
+ draftNotice: "下書きのみです。自動的には変更されません。",
678
+ instructionTarget: "指示の対象",
679
+ agentTarget: "エージェント",
680
+ developerTarget: "開発者",
681
+ skillTarget: "スキル",
682
+ instructionPlaceholder: "人がレビューする指示の変更案を書いてください。",
683
+ saveUpdate: "更新案を保存",
684
+ draftSaved: "下書きを保存しました",
685
+ noReviews: "レビューするエージェント回答はまだありません",
661
686
  },
662
687
  error: {
663
688
  genericTitle: "問題が発生しました",
@@ -648,6 +648,31 @@ const messages = {
648
648
  frustration: "Frustration",
649
649
  thumbsUpRate: "좋아요 비율",
650
650
  categories: "카테고리",
651
+ review: "사람 검토",
652
+ reviewDescription:
653
+ "질문과 답변을 검토하고 피드백과 지침 업데이트 초안을 저장합니다.",
654
+ ask: "질문 내용",
655
+ answer: "에이전트의 답변",
656
+ reviewFeedback: "피드백",
657
+ reviewOutput: "답변 검토",
658
+ closeReview: "닫기",
659
+ notReviewed: "검토되지 않음",
660
+ noteSaved: "메모 저장됨",
661
+ looksGood: "좋습니다",
662
+ needsChange: "변경 필요",
663
+ feedbackNote: "피드백 메모",
664
+ feedbackPlaceholder: "무엇을 바꾸거나 유지해야 하나요?",
665
+ saveFeedback: "피드백 저장",
666
+ updateInstructions: "지침 업데이트",
667
+ draftNotice: "초안만 저장되며 자동으로 변경되지 않습니다.",
668
+ instructionTarget: "지침 대상",
669
+ agentTarget: "에이전트",
670
+ developerTarget: "개발자",
671
+ skillTarget: "스킬",
672
+ instructionPlaceholder: "사람이 검토할 지침 변경안을 작성하세요.",
673
+ saveUpdate: "업데이트 초안 저장",
674
+ draftSaved: "초안 저장됨",
675
+ noReviews: "아직 검토할 에이전트 답변이 없습니다",
651
676
  },
652
677
  error: {
653
678
  genericTitle: "문제가 발생했습니다",