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

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 (65) hide show
  1. package/corpus/templates/content/app/components/editor/DocumentToolbar.tsx +26 -1
  2. package/corpus/templates/content/shared/agent-readable.ts +7 -5
  3. package/corpus/templates/design/.generated/bridge/editor-chrome.generated.ts +45 -17
  4. package/corpus/templates/design/app/components/design/DesignCanvas.tsx +8 -0
  5. package/corpus/templates/design/app/components/design/MultiScreenCanvas.tsx +22 -15
  6. package/corpus/templates/design/app/components/design/bridge/editor-chrome.bridge.ts +69 -30
  7. package/corpus/templates/design/app/components/design/multi-screen/primitive-drop-target.ts +10 -1
  8. package/corpus/templates/design/app/pages/design-editor/commands/commit-visual-styles.ts +3 -12
  9. package/corpus/templates/design/app/pages/design-editor/commands/nudge-selection.ts +37 -3
  10. package/corpus/templates/design/app/pages/design-editor/commands/redo.ts +5 -2
  11. package/dist/chat-threads/store.d.ts +1 -0
  12. package/dist/chat-threads/store.js +19 -0
  13. package/dist/client/observability/ObservabilityDashboard.js +113 -3
  14. package/dist/client/observability/useObservability.d.ts +9 -0
  15. package/dist/client/observability/useObservability.js +12 -0
  16. package/dist/collab/awareness.d.ts +2 -2
  17. package/dist/file-upload/actions/upload-image.d.ts +3 -3
  18. package/dist/identity/rekey.js +5 -0
  19. package/dist/localization/default-messages.d.ts +24 -0
  20. package/dist/localization/default-messages.js +24 -0
  21. package/dist/notifications/routes.d.ts +3 -3
  22. package/dist/observability/actions/list-observability-reviews.d.ts +5 -0
  23. package/dist/observability/actions/list-observability-reviews.js +23 -0
  24. package/dist/observability/actions/save-observability-instruction-update.d.ts +9 -0
  25. package/dist/observability/actions/save-observability-instruction-update.js +38 -0
  26. package/dist/observability/index.d.ts +2 -2
  27. package/dist/observability/index.js +1 -1
  28. package/dist/observability/reviews.d.ts +6 -0
  29. package/dist/observability/reviews.js +155 -0
  30. package/dist/observability/routes.d.ts +6 -6
  31. package/dist/observability/store.d.ts +8 -1
  32. package/dist/observability/store.js +77 -0
  33. package/dist/observability/types.d.ts +23 -0
  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/secrets/routes.d.ts +6 -6
  38. package/dist/server/agent-engine-api-key-route.d.ts +2 -2
  39. package/dist/server/core-routes-plugin.js +4 -3
  40. package/dist/server/realtime-token.d.ts +1 -1
  41. package/dist/templates/default/app/i18n/ar-SA.ts +25 -0
  42. package/dist/templates/default/app/i18n/de-DE.ts +25 -0
  43. package/dist/templates/default/app/i18n/en-US.ts +26 -0
  44. package/dist/templates/default/app/i18n/es-ES.ts +26 -0
  45. package/dist/templates/default/app/i18n/fr-FR.ts +26 -0
  46. package/dist/templates/default/app/i18n/hi-IN.ts +25 -0
  47. package/dist/templates/default/app/i18n/ja-JP.ts +25 -0
  48. package/dist/templates/default/app/i18n/ko-KR.ts +25 -0
  49. package/dist/templates/default/app/i18n/pt-BR.ts +25 -0
  50. package/dist/templates/default/app/i18n/zh-CN.ts +24 -0
  51. package/dist/templates/default/app/i18n/zh-TW.ts +24 -0
  52. package/dist/triggers/actions/manage-automation.d.ts +2 -2
  53. package/dist/vite/action-types-plugin.js +8 -0
  54. package/package.json +5 -3
  55. package/src/templates/default/app/i18n/ar-SA.ts +25 -0
  56. package/src/templates/default/app/i18n/de-DE.ts +25 -0
  57. package/src/templates/default/app/i18n/en-US.ts +26 -0
  58. package/src/templates/default/app/i18n/es-ES.ts +26 -0
  59. package/src/templates/default/app/i18n/fr-FR.ts +26 -0
  60. package/src/templates/default/app/i18n/hi-IN.ts +25 -0
  61. package/src/templates/default/app/i18n/ja-JP.ts +25 -0
  62. package/src/templates/default/app/i18n/ko-KR.ts +25 -0
  63. package/src/templates/default/app/i18n/pt-BR.ts +25 -0
  64. package/src/templates/default/app/i18n/zh-CN.ts +24 -0
  65. package/src/templates/default/app/i18n/zh-TW.ts +24 -0
@@ -41,27 +41,27 @@ export declare function createObservabilityHandler(): import("h3").EventHandlerW
41
41
  thumbsUpRate: number;
42
42
  avgEvalScore: number;
43
43
  } | {
44
- summary: import("./types.js").TraceSummary;
45
- spans: import("./types.js").TraceSpan[];
46
44
  id?: undefined;
47
45
  error?: undefined;
46
+ summary: import("./types.js").TraceSummary;
47
+ spans: import("./types.js").TraceSpan[];
48
48
  ok?: undefined;
49
49
  } | {
50
+ error?: undefined;
50
51
  summary?: undefined;
51
52
  spans?: undefined;
52
53
  id: string;
53
- error?: undefined;
54
54
  ok?: undefined;
55
55
  } | {
56
+ id?: undefined;
56
57
  summary?: undefined;
57
58
  spans?: undefined;
58
- id?: undefined;
59
59
  error: any;
60
60
  ok?: undefined;
61
61
  } | {
62
- summary?: undefined;
63
- spans?: undefined;
64
62
  id?: undefined;
65
63
  error?: undefined;
64
+ summary?: undefined;
65
+ spans?: undefined;
66
66
  ok: boolean;
67
67
  }>>;
@@ -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;
@@ -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;
@@ -60,17 +60,17 @@ export declare function createWriteSecretHandler(): import("h3").EventHandlerWit
60
60
  ok?: undefined;
61
61
  status?: undefined;
62
62
  } | {
63
+ error?: undefined;
63
64
  ok: boolean;
64
65
  status: string;
65
- error?: undefined;
66
66
  } | {
67
67
  ok?: undefined;
68
68
  error: string;
69
69
  removed?: undefined;
70
70
  } | {
71
+ error?: undefined;
71
72
  ok: boolean;
72
73
  removed: boolean;
73
- error?: undefined;
74
74
  }>>;
75
75
  /**
76
76
  * POST /_agent-native/secrets/:key/test — validate an optional candidate value
@@ -81,13 +81,13 @@ export declare function createTestSecretHandler(): import("h3").EventHandlerWith
81
81
  error: string;
82
82
  note?: undefined;
83
83
  } | {
84
+ error?: undefined;
84
85
  ok: boolean;
85
86
  note?: undefined;
86
- error?: undefined;
87
87
  } | {
88
+ error?: undefined;
88
89
  ok: boolean;
89
90
  note: string;
90
- error?: undefined;
91
91
  } | {
92
92
  note?: undefined;
93
93
  ok: boolean;
@@ -119,11 +119,11 @@ export interface AdHocSecretPayload {
119
119
  export declare function createAdHocSecretHandler(): import("h3").EventHandlerWithFetch<import("h3").EventHandlerRequest, Promise<AdHocSecretPayload[] | {
120
120
  error: string;
121
121
  } | {
122
+ error?: undefined;
122
123
  ok: boolean;
123
124
  key: string;
124
- error?: undefined;
125
125
  } | {
126
+ error?: undefined;
126
127
  ok: boolean;
127
128
  removed: boolean;
128
- error?: undefined;
129
129
  }>>;
@@ -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 {};
@@ -1220,9 +1220,10 @@ export function createOAuthPopupWaitingHandler() {
1220
1220
  setResponseHeader(event, "Cache-Control", "public, max-age=300");
1221
1221
  setResponseHeader(event, "Content-Security-Policy", "default-src 'none'; frame-ancestors 'none'");
1222
1222
  setResponseHeader(event, "X-Frame-Options", "DENY");
1223
- // Match the opener's policy so the client can navigate this inert page
1224
- // before the provider navigation creates a new browsing-context group.
1225
- setResponseHeader(event, "Cross-Origin-Opener-Policy", "same-origin");
1223
+ // Keep the opener alive until the client replaces this inert page with the
1224
+ // provider URL. The response has no script or user data, so it does not
1225
+ // need the default same-origin opener isolation.
1226
+ setResponseHeader(event, "Cross-Origin-Opener-Policy", "unsafe-none");
1226
1227
  return OAUTH_POPUP_WAITING_HTML;
1227
1228
  });
1228
1229
  }
@@ -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: "कुछ गलत हुआ",