@lazyingart/agintiflow 0.20.71 → 0.20.72

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lazyingart/agintiflow",
3
- "version": "0.20.71",
3
+ "version": "0.20.72",
4
4
  "type": "module",
5
5
  "description": "Low-cost, project-aware Web and CLI agents with DeepSeek/Venice/OpenAI routing, visible tool calls, durable sessions, scouts, AAPS, SCS, and guarded local execution.",
6
6
  "license": "Apache-2.0",
@@ -18,6 +18,7 @@ import {
18
18
  import { parseArgs, parseResumeCommandArgs, splitResumeCommandArgv } from "../src/cli.js";
19
19
  import { dockerPolicyTimeoutMs, dockerUserCommand } from "../src/docker-sandbox.js";
20
20
  import { formatBehaviorContractForPrompt } from "../src/behavior-contract.js";
21
+ import { SUPPORTED_LANGUAGES, t } from "../src/i18n.js";
21
22
 
22
23
  const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..");
23
24
  const tempRoot = await fs.mkdtemp(path.join(os.tmpdir(), "agintiflow-cli-chat-"));
@@ -107,6 +108,53 @@ function runCli(args, inputText) {
107
108
  }
108
109
 
109
110
  try {
111
+ const translatedHelpKeys = [
112
+ "helpHelp",
113
+ "helpStatus",
114
+ "helpLogin",
115
+ "helpInstructions",
116
+ "helpModels",
117
+ "helpVenice",
118
+ "helpRoute",
119
+ "helpModel",
120
+ "helpSpare",
121
+ "helpWrapper",
122
+ "helpAuxiliary",
123
+ "helpAaps",
124
+ "helpNew",
125
+ "helpResume",
126
+ "helpReview",
127
+ "helpRename",
128
+ "helpSessions",
129
+ "helpSkills",
130
+ "helpSkillMesh",
131
+ "helpProfile",
132
+ "helpWebSearch",
133
+ "helpEnableScs",
134
+ "helpScouts",
135
+ "helpRouting",
136
+ "helpProvider",
137
+ "helpDockerOn",
138
+ "helpDockerOff",
139
+ "helpLatex",
140
+ "helpInstalls",
141
+ "helpCwd",
142
+ "helpLanguage",
143
+ "helpExit",
144
+ "helpNormalRequest",
145
+ "helpAutocomplete",
146
+ "helpQueue",
147
+ "helpEditQueue",
148
+ "helpEsc",
149
+ ];
150
+ for (const language of SUPPORTED_LANGUAGES.filter((item) => item !== "en")) {
151
+ for (const key of translatedHelpKeys) {
152
+ if (t(key, language) === t(key, "en")) {
153
+ throw new Error(`missing localized help string ${language}.${key}`);
154
+ }
155
+ }
156
+ }
157
+
110
158
  const renderedMarkdown = stripMarkdown(
111
159
  [
112
160
  "**Docker status**",
@@ -57,6 +57,7 @@ async function runMock(goal, sessionId, { resume = false } = {}) {
57
57
  return {
58
58
  result,
59
59
  events: await store.loadEvents(),
60
+ state: await store.loadState(),
60
61
  };
61
62
  }
62
63
 
@@ -399,6 +400,12 @@ try {
399
400
  assert(blackboardJson.lanes.length === 10, "scout blackboard artifact did not persist lanes");
400
401
 
401
402
  const inspectRun = await runMock("Inspect this large codebase and recommend next reads.", "coding-inspect");
403
+ assert(
404
+ inspectRun.state?.messages?.some(
405
+ (message) => message.role === "system" && /Runtime time context: local=.*utc=/.test(message.content || "")
406
+ ),
407
+ "agent prompt did not include local/UTC runtime time context"
408
+ );
402
409
  assert(
403
410
  inspectRun.events.some((event) => event.type === "tool.completed" && event.data?.toolName === "inspect_project"),
404
411
  "mock large-codebase run did not use inspect_project"
@@ -534,6 +541,7 @@ try {
534
541
  "deepseek_history_repair",
535
542
  "blocked_tool_batch_short_circuit",
536
543
  "deepseek_pro_patch_route",
544
+ "runtime_time_context",
537
545
  "large_profile_pro_route",
538
546
  "auto_system_pro_route",
539
547
  "auto_engineering_guidance",
@@ -72,6 +72,40 @@ function formatProjectInstructions(instructions) {
72
72
  .join("\n");
73
73
  }
74
74
 
75
+ function formatDateTimeInTimeZone(date, timeZone) {
76
+ try {
77
+ const parts = new Intl.DateTimeFormat("en-CA", {
78
+ timeZone,
79
+ year: "numeric",
80
+ month: "2-digit",
81
+ day: "2-digit",
82
+ hour: "2-digit",
83
+ minute: "2-digit",
84
+ second: "2-digit",
85
+ hour12: false,
86
+ }).formatToParts(date);
87
+ const get = (type) => parts.find((part) => part.type === type)?.value || "";
88
+ return `${get("year")}-${get("month")}-${get("day")} ${get("hour")}:${get("minute")}:${get("second")}`;
89
+ } catch {
90
+ return date.toISOString().replace("T", " ").replace(/\.\d{3}Z$/, " UTC");
91
+ }
92
+ }
93
+
94
+ function runtimeTemporalContext(date = new Date()) {
95
+ let timeZone = "";
96
+ try {
97
+ timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone || "";
98
+ } catch {
99
+ timeZone = "";
100
+ }
101
+ const local = formatDateTimeInTimeZone(date, timeZone || "UTC");
102
+ const utc = date.toISOString().replace(/\.\d{3}Z$/, "Z");
103
+ return [
104
+ `Runtime time context: local=${local}${timeZone ? ` timezone=${timeZone}` : ""}; utc=${utc}.`,
105
+ "Use this context for today/tomorrow/yesterday and date-stamped filenames or reports; if timezone matters, state it explicitly instead of guessing from Docker/UTC output.",
106
+ ].join(" ");
107
+ }
108
+
75
109
  function isAbortError(error, config = {}) {
76
110
  return Boolean(
77
111
  config.abortSignal?.aborted ||
@@ -310,6 +344,7 @@ async function createInitialState(config, sessionId) {
310
344
  const projectInstructions = await readProjectInstructions(config.baseDir || config.commandCwd || process.cwd());
311
345
  const projectInstructionContext = formatProjectInstructions(projectInstructions);
312
346
  const platform = platformInfo();
347
+ const temporalContext = runtimeTemporalContext(new Date(now));
313
348
  return {
314
349
  sessionId,
315
350
  createdAt: now,
@@ -353,6 +388,7 @@ async function createInitialState(config, sessionId) {
353
388
  "Never navigate outside the allowed domains when an allowlist exists.",
354
389
  "Avoid destructive actions, purchases, account changes, and sensitive workflows.",
355
390
  languageInstruction(config.language || "en"),
391
+ temporalContext,
356
392
  projectInstructionContext,
357
393
  formatBehaviorContractForPrompt(),
358
394
  "Treat AGINTI.md as durable project memory and operating instructions for this project. The user can edit it manually or ask you in chat to update it; use workspace file tools for that and never store secrets there.",
@@ -411,6 +447,7 @@ async function createInitialState(config, sessionId) {
411
447
  content: [
412
448
  `Goal: ${config.goal}`,
413
449
  languageInstruction(config.language || "en"),
450
+ temporalContext,
414
451
  config.startUrl ? `Suggested start URL: ${config.startUrl}` : "",
415
452
  config.allowedDomains.length > 0 ? `Allowed domains: ${config.allowedDomains.join(", ")}` : "",
416
453
  config.allowShellTool
package/src/i18n.js CHANGED
@@ -165,6 +165,7 @@ const TRANSLATIONS = {
165
165
  },
166
166
  ja: {
167
167
  launchSubtitle: "低コストでプロジェクトを理解するエージェント",
168
+ launchCredit: "AgInTi Lab, LazyingArt LLC により開発",
168
169
  launchTagline: "Web + CLI + ルーティング + 見えるツール + 永続セッション",
169
170
  interactiveIntro: "対話型エージェントチャットです。/help でコマンド、/exit で終了します。",
170
171
  promptEmpty: "依頼を入力。/help、Enter で送信、Ctrl+J で改行",
@@ -180,12 +181,17 @@ const TRANSLATIONS = {
180
181
  helpSpare: "スペア選択を開くか、例: /spare openai/gpt-5.4 medium を設定します。",
181
182
  helpWrapper: "任意の外部ラッパーを設定します。",
182
183
  helpAuxiliary: "画像生成を含む補助スキルを管理します。",
184
+ helpAaps: "任意の @lazyingart/aaps アダプターで AAPS ワークフローを管理します。",
183
185
  helpNew: "次のメッセージで新しいセッションを開始します。",
184
186
  helpResume: "保存済みセッションを続行します。",
187
+ helpReview: "制御された文脈収集で、境界付きの repo/diff レビューを実行します。",
188
+ helpRename: "現在のセッション名を変更します。",
185
189
  helpSessions: "このプロジェクトの最近のセッションを一覧します。",
186
190
  helpSkills: "トピックに合う Markdown スキルを一覧します。",
191
+ helpSkillMesh: "厳格にレビューされたスキル共有を管理します。",
187
192
  helpProfile: "code、website、latex、maintenance などのタスクプロファイルを設定します。",
188
193
  helpWebSearch: "web_search ツールを有効/無効にします。",
194
+ helpEnableScs: "Student-Committee-Supervisor のゲート付き実行を切り替えます。",
189
195
  helpScouts: "並列 DeepSeek スカウトを有効化し数を設定します。",
190
196
  helpRouting: "routing を smart、fast、complex、manual に設定します。",
191
197
  helpProvider: "プロバイダ選択を開くか deepseek/openai/qwen/venice/mock を設定します。",
@@ -210,6 +216,7 @@ const TRANSLATIONS = {
210
216
  },
211
217
  "zh-Hans": {
212
218
  launchSubtitle: "低成本、项目感知智能体",
219
+ launchCredit: "由 AgInTi Lab, LazyingArt LLC 开发",
213
220
  launchTagline: "Web + CLI + 路由 + 可见工具 + 持久会话",
214
221
  interactiveIntro: "交互式智能体聊天。输入 /help 查看命令,/exit 退出。",
215
222
  promptEmpty: "输入任务,/help 查看帮助,Enter 发送,Ctrl+J 换行",
@@ -225,12 +232,17 @@ const TRANSLATIONS = {
225
232
  helpSpare: "打开备用模型选择器,或设置例如 /spare openai/gpt-5.4 medium。",
226
233
  helpWrapper: "配置可选外部 wrapper。",
227
234
  helpAuxiliary: "管理可选辅助技能,包括图像生成。",
235
+ helpAaps: "通过可选 @lazyingart/aaps 适配器管理 AAPS 工作流。",
228
236
  helpNew: "下一条消息开始新会话。",
229
237
  helpResume: "继续已保存会话。",
238
+ helpReview: "用受控上下文收集执行有边界的 repo/diff 审查。",
239
+ helpRename: "重命名当前会话。",
230
240
  helpSessions: "列出本项目最近会话。",
231
241
  helpSkills: "列出为主题选择的 Markdown 技能。",
242
+ helpSkillMesh: "管理严格审查后的技能共享。",
232
243
  helpProfile: "设置任务 profile,例如 code、website、latex、maintenance。",
233
244
  helpWebSearch: "启用或禁用 web_search 工具。",
245
+ helpEnableScs: "切换 Student-Committee-Supervisor 门控执行。",
234
246
  helpScouts: "启用并设置并行 DeepSeek scouts 数量。",
235
247
  helpRouting: "设置 routing: smart、fast、complex、manual。",
236
248
  helpProvider: "打开 provider 选择器,或设置 deepseek/openai/qwen/venice/mock。",
@@ -255,6 +267,7 @@ const TRANSLATIONS = {
255
267
  },
256
268
  "zh-Hant": {
257
269
  launchSubtitle: "低成本、專案感知智能體",
270
+ launchCredit: "由 AgInTi Lab, LazyingArt LLC 開發",
258
271
  launchTagline: "Web + CLI + 路由 + 可見工具 + 持久會話",
259
272
  interactiveIntro: "互動式智能體聊天。輸入 /help 查看命令,/exit 離開。",
260
273
  promptEmpty: "輸入任務,/help 查看說明,Enter 送出,Ctrl+J 換行",
@@ -270,12 +283,17 @@ const TRANSLATIONS = {
270
283
  helpSpare: "開啟備用模型選擇器,或設定例如 /spare openai/gpt-5.4 medium。",
271
284
  helpWrapper: "設定可選外部 wrapper。",
272
285
  helpAuxiliary: "管理可選輔助技能,包括圖像生成。",
286
+ helpAaps: "透過可選 @lazyingart/aaps 適配器管理 AAPS 工作流。",
273
287
  helpNew: "下一則訊息開始新會話。",
274
288
  helpResume: "繼續已儲存會話。",
289
+ helpReview: "以受控上下文收集執行有邊界的 repo/diff 審查。",
290
+ helpRename: "重新命名目前會話。",
275
291
  helpSessions: "列出本專案最近會話。",
276
292
  helpSkills: "列出為主題選擇的 Markdown 技能。",
293
+ helpSkillMesh: "管理嚴格審查後的技能共享。",
277
294
  helpProfile: "設定任務 profile,例如 code、website、latex、maintenance。",
278
295
  helpWebSearch: "啟用或停用 web_search 工具。",
296
+ helpEnableScs: "切換 Student-Committee-Supervisor 門控執行。",
279
297
  helpScouts: "啟用並設定並行 DeepSeek scouts 數量。",
280
298
  helpRouting: "設定 routing: smart、fast、complex、manual。",
281
299
  helpProvider: "開啟 provider 選擇器,或設定 deepseek/openai/qwen/venice/mock。",
@@ -303,79 +321,359 @@ const TRANSLATIONS = {
303
321
  const FALLBACKS = {
304
322
  ko: {
305
323
  launchSubtitle: "저비용 프로젝트 인식 에이전트",
324
+ launchCredit: "AgInTi Lab, LazyingArt LLC 개발",
306
325
  launchTagline: "Web + CLI + 라우팅 + 보이는 도구 + 영구 세션",
307
326
  interactiveIntro: "대화형 에이전트 채팅입니다. /help 명령, /exit 종료.",
308
327
  promptEmpty: "요청을 입력하세요. /help, Enter 전송, Ctrl+J 줄바꿈",
309
328
  helpTitle: "명령:",
329
+ helpHelp: "이 도움말을 표시합니다.",
330
+ helpStatus: "활성 라우트, 작업공간, 샌드박스, 세션을 표시합니다.",
331
+ helpLogin: "프로젝트 로컬 API 키를 선택, 붙여넣기, 저장합니다.",
332
+ helpInstructions: "AGINTI.md 프로젝트 지시 상태를 표시합니다.",
333
+ helpModels: "route/main/spare/wrapper/auxiliary 모델 역할을 표시합니다.",
334
+ helpVenice: "Venice route/main 모델을 선택하거나 DeepSeek 기본값으로 복원합니다.",
335
+ helpRoute: "라우트 선택기를 열거나 routing/빠른 라우트 모델을 설정합니다.",
336
+ helpModel: "메인 모델 선택기를 열거나 active/main 모델을 설정합니다.",
337
+ helpSpare: "스페어 선택기를 열거나 예: /spare openai/gpt-5.4 medium 을 설정합니다.",
338
+ helpWrapper: "선택적 외부 wrapper를 설정합니다.",
339
+ helpAuxiliary: "이미지 생성을 포함한 선택적 보조 스킬을 관리합니다.",
340
+ helpAaps: "선택적 @lazyingart/aaps 어댑터로 AAPS 워크플로를 관리합니다.",
341
+ helpNew: "다음 메시지에서 새 세션을 시작합니다.",
342
+ helpResume: "저장된 세션을 계속합니다.",
343
+ helpReview: "제어된 컨텍스트 수집으로 제한된 repo/diff 리뷰를 실행합니다.",
344
+ helpRename: "현재 세션 이름을 변경합니다.",
345
+ helpSessions: "이 프로젝트의 최근 세션을 나열합니다.",
346
+ helpSkills: "주제에 맞는 Markdown 스킬을 나열합니다.",
347
+ helpSkillMesh: "엄격히 검토된 스킬 공유를 관리합니다.",
348
+ helpProfile: "code, website, latex, maintenance 같은 작업 프로필을 설정합니다.",
349
+ helpWebSearch: "web_search 도구를 켜거나 끕니다.",
350
+ helpEnableScs: "Student-Committee-Supervisor 게이트 실행을 전환합니다.",
351
+ helpScouts: "병렬 DeepSeek 스카우트를 켜고 수를 설정합니다.",
352
+ helpRouting: "routing 을 smart, fast, complex, manual 로 설정합니다.",
353
+ helpProvider: "provider 선택기를 열거나 deepseek/openai/qwen/venice/mock 을 설정합니다.",
354
+ helpDockerOn: "승인된 패키지 설치가 가능한 docker-workspace 를 사용합니다.",
355
+ helpDockerOff: "호스트 shell 정책을 사용합니다.",
356
+ helpLatex: "Docker 에서 LaTeX/PDF 프로필과 더 큰 단계 예산을 사용합니다.",
357
+ helpInstalls: "패키지 설치 정책을 설정합니다.",
358
+ helpCwd: "명령 작업공간을 변경합니다.",
359
+ helpLanguage: "CLI 언어를 설정하거나 /language auto 로 시스템 로케일을 사용합니다.",
360
+ helpExit: "종료합니다.",
361
+ helpNormalRequest: "일반 요청을 입력하면 에이전트가 실행합니다. 예: write a Python CLI app with tests",
362
+ helpAutocomplete: "/ 입력 후 Tab 으로 명령을 자동완성합니다.",
363
+ helpQueue: "실행 중 Enter 는 현재 실행으로 전달(→), Tab 은 완료 후 큐(↳)에 넣습니다.",
364
+ helpEditQueue: "Alt+Up 은 마지막 전달 메시지, Shift+Left 는 마지막 큐 메시지를 편집합니다.",
365
+ helpEsc: "대기 중 Esc 는 무시됩니다. 실행 중에는 보류 중인 → 메시지를 기다리거나 중지합니다. Ctrl+C 는 항상 중지합니다.",
310
366
  languageSet: "language={language} ({label})",
311
367
  languageUsage: "사용법: /language auto|en|ja|zh-Hans|zh-Hant|ko|fr|es|ar|vi|de|ru",
312
368
  project: "프로젝트",
369
+ statusNew: "new",
370
+ statusIdle: "idle",
313
371
  systemLanguage: "시스템",
314
372
  },
315
373
  fr: {
316
374
  launchSubtitle: "agents à faible coût conscients du projet",
375
+ launchCredit: "Développé par AgInTi Lab, LazyingArt LLC",
317
376
  launchTagline: "Web + CLI + routage + outils visibles + sessions durables",
318
377
  interactiveIntro: "Chat agent interactif. Tapez /help pour les commandes, /exit pour quitter.",
319
378
  promptEmpty: "tapez une demande, /help, Entrée pour envoyer, Ctrl+J pour une nouvelle ligne",
320
379
  helpTitle: "Commandes:",
380
+ helpHelp: "Afficher cette aide.",
381
+ helpStatus: "Afficher la route active, l'espace de travail, le bac à sable et la session.",
382
+ helpLogin: "Choisir, coller et enregistrer les clés API locales au projet.",
383
+ helpInstructions: "Afficher l'état des instructions AGINTI.md du projet.",
384
+ helpModels: "Afficher les rôles de modèles route/main/spare/wrapper/auxiliary.",
385
+ helpVenice: "Choisir les modèles route/main Venice, ou restaurer les valeurs DeepSeek.",
386
+ helpRoute: "Ouvrir le sélecteur de route, ou définir le routage/modèle rapide.",
387
+ helpModel: "Ouvrir le sélecteur du modèle principal, ou définir le modèle actif/main.",
388
+ helpSpare: "Ouvrir le sélecteur spare, ou définir par ex. /spare openai/gpt-5.4 medium.",
389
+ helpWrapper: "Configurer un wrapper externe facultatif.",
390
+ helpAuxiliary: "Gérer les compétences auxiliaires facultatives, dont la génération d'images.",
391
+ helpAaps: "Gérer les workflows AAPS via l'adaptateur facultatif @lazyingart/aaps.",
392
+ helpNew: "Démarrer une nouvelle session au prochain message.",
393
+ helpResume: "Continuer une session enregistrée.",
394
+ helpReview: "Lancer une revue repo/diff bornée avec collecte de contexte contrôlée.",
395
+ helpRename: "Renommer la session actuelle.",
396
+ helpSessions: "Lister les sessions récentes de ce projet.",
397
+ helpSkills: "Lister les compétences Markdown sélectionnées pour un sujet.",
398
+ helpSkillMesh: "Gérer le partage strict de compétences revues.",
399
+ helpProfile: "Définir le profil de tâche, ex. code, website, latex, maintenance.",
400
+ helpWebSearch: "Activer ou désactiver l'outil web_search.",
401
+ helpEnableScs: "Basculer l'exécution gardée Student-Committee-Supervisor.",
402
+ helpScouts: "Activer les scouts DeepSeek parallèles et régler leur nombre.",
403
+ helpRouting: "Définir le routage: smart, fast, complex, manual.",
404
+ helpProvider: "Ouvrir le sélecteur provider, ou définir deepseek/openai/qwen/venice/mock.",
405
+ helpDockerOn: "Utiliser docker-workspace avec installations de paquets approuvées.",
406
+ helpDockerOff: "Utiliser la politique shell hôte.",
407
+ helpLatex: "Utiliser le profil LaTeX/PDF dans Docker avec plus d'étapes.",
408
+ helpInstalls: "Définir la politique d'installation des paquets.",
409
+ helpCwd: "Changer l'espace de travail des commandes.",
410
+ helpLanguage: "Définir la langue CLI, ou /language auto pour la locale système.",
411
+ helpExit: "Quitter.",
412
+ helpNormalRequest: "Tapez une demande normale pour lancer l'agent. Exemple: write a Python CLI app with tests",
413
+ helpAutocomplete: "Tapez / puis Tab pour compléter les commandes.",
414
+ helpQueue: "Pendant une exécution, Entrée envoie au run courant (→), Tab met en file après la fin (↳).",
415
+ helpEditQueue: "Alt+Up modifie le dernier message envoyé; Shift+Left le dernier message en file.",
416
+ helpEsc: "Esc est ignoré au repos. Pendant un run, Esc attend les messages → ou arrête s'il n'y en a pas; Ctrl+C arrête toujours.",
321
417
  languageSet: "language={language} ({label})",
322
418
  languageUsage: "Usage: /language auto|en|ja|zh-Hans|zh-Hant|ko|fr|es|ar|vi|de|ru",
323
419
  project: "Projet",
420
+ statusNew: "nouveau",
421
+ statusIdle: "inactif",
324
422
  systemLanguage: "système",
325
423
  },
326
424
  es: {
327
425
  launchSubtitle: "agentes de bajo costo conscientes del proyecto",
426
+ launchCredit: "Desarrollado por AgInTi Lab, LazyingArt LLC",
328
427
  launchTagline: "Web + CLI + routing + herramientas visibles + sesiones durables",
329
428
  interactiveIntro: "Chat interactivo del agente. Escribe /help para comandos, /exit para salir.",
330
429
  promptEmpty: "escribe una solicitud, /help, Enter para enviar, Ctrl+J para nueva línea",
331
430
  helpTitle: "Comandos:",
431
+ helpHelp: "Mostrar esta ayuda.",
432
+ helpStatus: "Mostrar ruta activa, espacio de trabajo, sandbox y sesión.",
433
+ helpLogin: "Elegir, pegar y guardar claves API locales del proyecto.",
434
+ helpInstructions: "Mostrar el estado de instrucciones AGINTI.md del proyecto.",
435
+ helpModels: "Mostrar roles de modelos route/main/spare/wrapper/auxiliary.",
436
+ helpVenice: "Elegir modelos route/main de Venice, o restaurar valores DeepSeek.",
437
+ helpRoute: "Abrir selector de ruta, o configurar routing/modelo rápido.",
438
+ helpModel: "Abrir selector del modelo principal, o configurar el modelo active/main.",
439
+ helpSpare: "Abrir selector spare, o configurar por ejemplo /spare openai/gpt-5.4 medium.",
440
+ helpWrapper: "Configurar un wrapper externo opcional.",
441
+ helpAuxiliary: "Gestionar habilidades auxiliares opcionales, incluida generación de imágenes.",
442
+ helpAaps: "Gestionar flujos AAPS mediante el adaptador opcional @lazyingart/aaps.",
443
+ helpNew: "Iniciar una sesión nueva con el siguiente mensaje.",
444
+ helpResume: "Continuar una sesión guardada.",
445
+ helpReview: "Ejecutar una revisión repo/diff acotada con contexto controlado.",
446
+ helpRename: "Renombrar la sesión actual.",
447
+ helpSessions: "Listar sesiones recientes de este proyecto.",
448
+ helpSkills: "Listar habilidades Markdown seleccionadas para un tema.",
449
+ helpSkillMesh: "Gestionar intercambio estricto de habilidades revisadas.",
450
+ helpProfile: "Configurar perfil de tarea, por ejemplo code, website, latex, maintenance.",
451
+ helpWebSearch: "Activar o desactivar la herramienta web_search.",
452
+ helpEnableScs: "Alternar ejecución con puerta Student-Committee-Supervisor.",
453
+ helpScouts: "Activar scouts DeepSeek paralelos y configurar cantidad.",
454
+ helpRouting: "Configurar routing: smart, fast, complex, manual.",
455
+ helpProvider: "Abrir selector provider, o configurar deepseek/openai/qwen/venice/mock.",
456
+ helpDockerOn: "Usar docker-workspace con instalaciones aprobadas.",
457
+ helpDockerOff: "Usar política de shell host.",
458
+ helpLatex: "Usar perfil LaTeX/PDF en Docker con más pasos.",
459
+ helpInstalls: "Configurar política de instalación de paquetes.",
460
+ helpCwd: "Cambiar el espacio de trabajo de comandos.",
461
+ helpLanguage: "Configurar idioma CLI, o /language auto para la configuración del sistema.",
462
+ helpExit: "Salir.",
463
+ helpNormalRequest: "Escribe una solicitud normal para ejecutar el agente. Ejemplo: write a Python CLI app with tests",
464
+ helpAutocomplete: "Escribe / y luego Tab para autocompletar comandos.",
465
+ helpQueue: "Durante una ejecución, Enter envía al run actual (→), Tab lo encola tras terminar (↳).",
466
+ helpEditQueue: "Alt+Up edita el último mensaje enviado; Shift+Left edita el último mensaje en cola.",
467
+ helpEsc: "Esc se ignora en reposo. Durante un run espera mensajes → o detiene si no hay; Ctrl+C siempre detiene.",
332
468
  languageSet: "language={language} ({label})",
333
469
  languageUsage: "Uso: /language auto|en|ja|zh-Hans|zh-Hant|ko|fr|es|ar|vi|de|ru",
334
470
  project: "Proyecto",
471
+ statusNew: "nuevo",
472
+ statusIdle: "inactivo",
335
473
  systemLanguage: "sistema",
336
474
  },
337
475
  ar: {
338
476
  launchSubtitle: "وكلاء منخفضو التكلفة وواعون بالمشروع",
477
+ launchCredit: "طوّرته AgInTi Lab, LazyingArt LLC",
339
478
  launchTagline: "Web + CLI + توجيه + أدوات مرئية + جلسات دائمة",
340
479
  interactiveIntro: "محادثة وكيل تفاعلية. اكتب /help للأوامر و /exit للخروج.",
341
480
  promptEmpty: "اكتب طلباً، /help، Enter للإرسال، Ctrl+J لسطر جديد",
342
481
  helpTitle: "الأوامر:",
482
+ helpHelp: "إظهار هذه المساعدة.",
483
+ helpStatus: "إظهار المسار النشط ومساحة العمل والصندوق المعزول والجلسة.",
484
+ helpLogin: "اختيار مفاتيح API المحلية للمشروع ولصقها وحفظها.",
485
+ helpInstructions: "إظهار حالة تعليمات AGINTI.md للمشروع.",
486
+ helpModels: "إظهار أدوار النماذج route/main/spare/wrapper/auxiliary.",
487
+ helpVenice: "اختيار نماذج route/main من Venice أو استعادة إعدادات DeepSeek.",
488
+ helpRoute: "فتح محدد المسار أو ضبط routing/نموذج المسار السريع.",
489
+ helpModel: "فتح محدد النموذج الرئيسي أو ضبط نموذج active/main.",
490
+ helpSpare: "فتح محدد spare أو ضبط مثال /spare openai/gpt-5.4 medium.",
491
+ helpWrapper: "تكوين wrapper خارجي اختياري.",
492
+ helpAuxiliary: "إدارة المهارات المساعدة الاختيارية، بما فيها توليد الصور.",
493
+ helpAaps: "إدارة سير عمل AAPS عبر محول @lazyingart/aaps الاختياري.",
494
+ helpNew: "بدء جلسة جديدة مع الرسالة التالية.",
495
+ helpResume: "متابعة جلسة محفوظة.",
496
+ helpReview: "تشغيل مراجعة repo/diff محدودة مع جمع سياق مضبوط.",
497
+ helpRename: "إعادة تسمية الجلسة الحالية.",
498
+ helpSessions: "عرض الجلسات الحديثة في هذا المشروع.",
499
+ helpSkills: "عرض مهارات Markdown المختارة لموضوع.",
500
+ helpSkillMesh: "إدارة مشاركة المهارات المراجعة بصرامة.",
501
+ helpProfile: "تعيين ملف مهمة مثل code أو website أو latex أو maintenance.",
502
+ helpWebSearch: "تفعيل أو تعطيل أداة web_search.",
503
+ helpEnableScs: "تبديل التنفيذ المحكوم بنمط Student-Committee-Supervisor.",
504
+ helpScouts: "تفعيل كشافات DeepSeek المتوازية وتحديد عددها.",
505
+ helpRouting: "تعيين routing: smart أو fast أو complex أو manual.",
506
+ helpProvider: "فتح محدد provider أو تعيين deepseek/openai/qwen/venice/mock.",
507
+ helpDockerOn: "استخدام docker-workspace مع تثبيت حزم معتمد.",
508
+ helpDockerOff: "استخدام سياسة shell المضيف.",
509
+ helpLatex: "استخدام ملف LaTeX/PDF في Docker مع ميزانية خطوات أكبر.",
510
+ helpInstalls: "تعيين سياسة تثبيت الحزم.",
511
+ helpCwd: "تغيير مساحة عمل الأوامر.",
512
+ helpLanguage: "تعيين لغة CLI، أو /language auto لاستخدام لغة النظام.",
513
+ helpExit: "خروج.",
514
+ helpNormalRequest: "اكتب طلباً عادياً لتشغيل الوكيل. مثال: write a Python CLI app with tests",
515
+ helpAutocomplete: "اكتب / ثم Tab لإكمال الأوامر تلقائياً.",
516
+ helpQueue: "أثناء التشغيل، Enter يمرر للطلب الحالي (→)، وTab يضعه بعد الانتهاء (↳).",
517
+ helpEditQueue: "Alt+Up يحرر آخر رسالة مرسلة؛ Shift+Left يحرر آخر رسالة في الطابور.",
518
+ helpEsc: "Esc يُتجاهل عند الخمول. أثناء التشغيل ينتظر رسائل → أو يوقف إن لم توجد؛ Ctrl+C يوقف دائماً.",
343
519
  languageSet: "language={language} ({label})",
344
520
  languageUsage: "الاستخدام: /language auto|en|ja|zh-Hans|zh-Hant|ko|fr|es|ar|vi|de|ru",
345
521
  project: "المشروع",
522
+ statusNew: "جديد",
523
+ statusIdle: "خامل",
346
524
  systemLanguage: "النظام",
347
525
  },
348
526
  vi: {
349
527
  launchSubtitle: "agent chi phí thấp hiểu dự án",
528
+ launchCredit: "Phát triển bởi AgInTi Lab, LazyingArt LLC",
350
529
  launchTagline: "Web + CLI + routing + tool nhìn thấy được + session bền vững",
351
530
  interactiveIntro: "Chat agent tương tác. Gõ /help để xem lệnh, /exit để thoát.",
352
531
  promptEmpty: "nhập yêu cầu, /help, Enter để gửi, Ctrl+J xuống dòng",
353
532
  helpTitle: "Lệnh:",
533
+ helpHelp: "Hiển thị trợ giúp này.",
534
+ helpStatus: "Hiển thị route đang dùng, workspace, sandbox và session.",
535
+ helpLogin: "Chọn, dán và lưu API key cục bộ cho dự án.",
536
+ helpInstructions: "Hiển thị trạng thái hướng dẫn AGINTI.md của dự án.",
537
+ helpModels: "Hiển thị vai trò model route/main/spare/wrapper/auxiliary.",
538
+ helpVenice: "Chọn model route/main Venice, hoặc khôi phục mặc định DeepSeek.",
539
+ helpRoute: "Mở bộ chọn route, hoặc đặt routing/model route nhanh.",
540
+ helpModel: "Mở bộ chọn main model, hoặc đặt model active/main.",
541
+ helpSpare: "Mở bộ chọn spare, hoặc đặt ví dụ /spare openai/gpt-5.4 medium.",
542
+ helpWrapper: "Cấu hình wrapper bên ngoài tùy chọn.",
543
+ helpAuxiliary: "Quản lý kỹ năng phụ tùy chọn, gồm tạo ảnh.",
544
+ helpAaps: "Quản lý workflow AAPS qua adapter @lazyingart/aaps tùy chọn.",
545
+ helpNew: "Bắt đầu session mới ở tin nhắn tiếp theo.",
546
+ helpResume: "Tiếp tục session đã lưu.",
547
+ helpReview: "Chạy review repo/diff có giới hạn với thu thập ngữ cảnh có kiểm soát.",
548
+ helpRename: "Đổi tên session hiện tại.",
549
+ helpSessions: "Liệt kê session gần đây trong dự án này.",
550
+ helpSkills: "Liệt kê kỹ năng Markdown được chọn cho một chủ đề.",
551
+ helpSkillMesh: "Quản lý chia sẻ kỹ năng đã được review nghiêm ngặt.",
552
+ helpProfile: "Đặt profile tác vụ, ví dụ code, website, latex, maintenance.",
553
+ helpWebSearch: "Bật hoặc tắt tool web_search.",
554
+ helpEnableScs: "Bật/tắt thực thi có cổng Student-Committee-Supervisor.",
555
+ helpScouts: "Bật DeepSeek scouts song song và đặt số lượng.",
556
+ helpRouting: "Đặt routing: smart, fast, complex, manual.",
557
+ helpProvider: "Mở bộ chọn provider, hoặc đặt deepseek/openai/qwen/venice/mock.",
558
+ helpDockerOn: "Dùng docker-workspace với cài package đã duyệt.",
559
+ helpDockerOff: "Dùng chính sách shell host.",
560
+ helpLatex: "Dùng profile LaTeX/PDF trong Docker với ngân sách bước lớn hơn.",
561
+ helpInstalls: "Đặt chính sách cài package.",
562
+ helpCwd: "Đổi workspace lệnh.",
563
+ helpLanguage: "Đặt ngôn ngữ CLI, hoặc /language auto để dùng locale hệ thống.",
564
+ helpExit: "Thoát.",
565
+ helpNormalRequest: "Nhập yêu cầu bình thường để chạy agent. Ví dụ: write a Python CLI app with tests",
566
+ helpAutocomplete: "Nhập / rồi Tab để tự hoàn thành lệnh.",
567
+ helpQueue: "Khi đang chạy, Enter gửi vào run hiện tại (→), Tab xếp sau khi xong (↳).",
568
+ helpEditQueue: "Alt+Up sửa tin nhắn đã gửi cuối; Shift+Left sửa tin nhắn hàng đợi cuối.",
569
+ helpEsc: "Esc bị bỏ qua khi rảnh. Khi đang chạy, Esc đợi tin → hoặc dừng nếu không có; Ctrl+C luôn dừng.",
354
570
  languageSet: "language={language} ({label})",
355
571
  languageUsage: "Cách dùng: /language auto|en|ja|zh-Hans|zh-Hant|ko|fr|es|ar|vi|de|ru",
356
572
  project: "Dự án",
573
+ statusNew: "mới",
574
+ statusIdle: "rảnh",
357
575
  systemLanguage: "hệ thống",
358
576
  },
359
577
  de: {
360
578
  launchSubtitle: "günstige projektbewusste Agenten",
579
+ launchCredit: "Entwickelt von AgInTi Lab, LazyingArt LLC",
361
580
  launchTagline: "Web + CLI + Routing + sichtbare Tools + dauerhafte Sessions",
362
581
  interactiveIntro: "Interaktiver Agent-Chat. /help für Befehle, /exit zum Beenden.",
363
582
  promptEmpty: "Anfrage eingeben, /help, Enter zum Senden, Ctrl+J für neue Zeile",
364
583
  helpTitle: "Befehle:",
584
+ helpHelp: "Diese Hilfe anzeigen.",
585
+ helpStatus: "Aktive Route, Workspace, Sandbox und Session anzeigen.",
586
+ helpLogin: "Projektlokale API-Schlüssel auswählen, einfügen und speichern.",
587
+ helpInstructions: "Status der AGINTI.md-Projektanweisungen anzeigen.",
588
+ helpModels: "Modellrollen route/main/spare/wrapper/auxiliary anzeigen.",
589
+ helpVenice: "Venice route/main Modelle wählen oder DeepSeek-Standard wiederherstellen.",
590
+ helpRoute: "Route-Auswahl öffnen oder Routing/schnelles Routenmodell setzen.",
591
+ helpModel: "Hauptmodell-Auswahl öffnen oder active/main Modell setzen.",
592
+ helpSpare: "Spare-Auswahl öffnen oder z.B. /spare openai/gpt-5.4 medium setzen.",
593
+ helpWrapper: "Optionalen externen Wrapper konfigurieren.",
594
+ helpAuxiliary: "Optionale Hilfs-Skills inklusive Bildgenerierung verwalten.",
595
+ helpAaps: "AAPS-Workflows über den optionalen @lazyingart/aaps Adapter verwalten.",
596
+ helpNew: "Mit der nächsten Nachricht eine neue Session starten.",
597
+ helpResume: "Eine gespeicherte Session fortsetzen.",
598
+ helpReview: "Begrenztes repo/diff Review mit kontrollierter Kontextsammlung ausführen.",
599
+ helpRename: "Aktuelle Session umbenennen.",
600
+ helpSessions: "Aktuelle Sessions dieses Projekts auflisten.",
601
+ helpSkills: "Für ein Thema ausgewählte Markdown-Skills auflisten.",
602
+ helpSkillMesh: "Streng geprüften Skill-Austausch verwalten.",
603
+ helpProfile: "Task-Profil setzen, z.B. code, website, latex, maintenance.",
604
+ helpWebSearch: "Das web_search Tool aktivieren oder deaktivieren.",
605
+ helpEnableScs: "Student-Committee-Supervisor-Gate ein- oder ausschalten.",
606
+ helpScouts: "Parallele DeepSeek-Scouts aktivieren und Anzahl setzen.",
607
+ helpRouting: "Routing setzen: smart, fast, complex, manual.",
608
+ helpProvider: "Provider-Auswahl öffnen oder deepseek/openai/qwen/venice/mock setzen.",
609
+ helpDockerOn: "docker-workspace mit genehmigten Paketinstallationen verwenden.",
610
+ helpDockerOff: "Host-Shell-Policy verwenden.",
611
+ helpLatex: "LaTeX/PDF-Profil in Docker mit größerem Schrittbudget verwenden.",
612
+ helpInstalls: "Paketinstallations-Policy setzen.",
613
+ helpCwd: "Command-Workspace ändern.",
614
+ helpLanguage: "CLI-Sprache setzen oder mit /language auto die System-Locale nutzen.",
615
+ helpExit: "Beenden.",
616
+ helpNormalRequest: "Normale Anfrage eingeben, um den Agenten auszuführen. Beispiel: write a Python CLI app with tests",
617
+ helpAutocomplete: "/ eingeben und Tab für Befehlsvervollständigung drücken.",
618
+ helpQueue: "Während eines Runs sendet Enter in den aktuellen Run (→), Tab queued nach Ende (↳).",
619
+ helpEditQueue: "Alt+Up editiert die letzte Pipe-Nachricht; Shift+Left die letzte Queue-Nachricht.",
620
+ helpEsc: "Esc wird im Idle ignoriert. Während eines Runs wartet Esc auf → Nachrichten oder stoppt; Ctrl+C stoppt immer.",
365
621
  languageSet: "language={language} ({label})",
366
622
  languageUsage: "Nutzung: /language auto|en|ja|zh-Hans|zh-Hant|ko|fr|es|ar|vi|de|ru",
367
623
  project: "Projekt",
624
+ statusNew: "neu",
625
+ statusIdle: "bereit",
368
626
  systemLanguage: "System",
369
627
  },
370
628
  ru: {
371
629
  launchSubtitle: "недорогие проектно-ориентированные агенты",
630
+ launchCredit: "Разработано AgInTi Lab, LazyingArt LLC",
372
631
  launchTagline: "Web + CLI + маршрутизация + видимые инструменты + долговечные сессии",
373
632
  interactiveIntro: "Интерактивный чат агента. /help для команд, /exit для выхода.",
374
633
  promptEmpty: "введите запрос, /help, Enter отправить, Ctrl+J новая строка",
375
634
  helpTitle: "Команды:",
635
+ helpHelp: "Показать эту справку.",
636
+ helpStatus: "Показать активный маршрут, рабочую область, sandbox и сессию.",
637
+ helpLogin: "Выбрать, вставить и сохранить локальные API-ключи проекта.",
638
+ helpInstructions: "Показать состояние проектных инструкций AGINTI.md.",
639
+ helpModels: "Показать роли моделей route/main/spare/wrapper/auxiliary.",
640
+ helpVenice: "Выбрать модели Venice route/main или восстановить DeepSeek по умолчанию.",
641
+ helpRoute: "Открыть выбор route или задать routing/быструю route-модель.",
642
+ helpModel: "Открыть выбор основной модели или задать active/main модель.",
643
+ helpSpare: "Открыть выбор spare или задать, например, /spare openai/gpt-5.4 medium.",
644
+ helpWrapper: "Настроить необязательный внешний wrapper.",
645
+ helpAuxiliary: "Управлять необязательными вспомогательными навыками, включая генерацию изображений.",
646
+ helpAaps: "Управлять AAPS workflow через необязательный адаптер @lazyingart/aaps.",
647
+ helpNew: "Начать новую сессию следующим сообщением.",
648
+ helpResume: "Продолжить сохраненную сессию.",
649
+ helpReview: "Запустить ограниченный repo/diff review с контролируемым сбором контекста.",
650
+ helpRename: "Переименовать текущую сессию.",
651
+ helpSessions: "Показать недавние сессии этого проекта.",
652
+ helpSkills: "Показать Markdown-навыки, выбранные для темы.",
653
+ helpSkillMesh: "Управлять строгим обменом проверенными навыками.",
654
+ helpProfile: "Задать профиль задачи, например code, website, latex, maintenance.",
655
+ helpWebSearch: "Включить или выключить инструмент web_search.",
656
+ helpEnableScs: "Переключить выполнение с контролем Student-Committee-Supervisor.",
657
+ helpScouts: "Включить параллельных DeepSeek scouts и задать количество.",
658
+ helpRouting: "Задать routing: smart, fast, complex, manual.",
659
+ helpProvider: "Открыть выбор provider или задать deepseek/openai/qwen/venice/mock.",
660
+ helpDockerOn: "Использовать docker-workspace с одобренными установками пакетов.",
661
+ helpDockerOff: "Использовать политику host shell.",
662
+ helpLatex: "Использовать профиль LaTeX/PDF в Docker с большим числом шагов.",
663
+ helpInstalls: "Задать политику установки пакетов.",
664
+ helpCwd: "Изменить рабочую область команд.",
665
+ helpLanguage: "Задать язык CLI или использовать /language auto для системной локали.",
666
+ helpExit: "Выйти.",
667
+ helpNormalRequest: "Введите обычный запрос, чтобы запустить агента. Пример: write a Python CLI app with tests",
668
+ helpAutocomplete: "Введите / и нажмите Tab для автодополнения команд.",
669
+ helpQueue: "Во время run Enter отправляет в текущий run (→), Tab ставит в очередь после завершения (↳).",
670
+ helpEditQueue: "Alt+Up редактирует последнее pipe-сообщение; Shift+Left последнее queued-сообщение.",
671
+ helpEsc: "Esc в idle игнорируется. Во время run Esc ждет сообщения → или останавливает; Ctrl+C всегда останавливает.",
376
672
  languageSet: "language={language} ({label})",
377
673
  languageUsage: "Использование: /language auto|en|ja|zh-Hans|zh-Hant|ko|fr|es|ar|vi|de|ru",
378
674
  project: "Проект",
675
+ statusNew: "новая",
676
+ statusIdle: "ожидание",
379
677
  systemLanguage: "система",
380
678
  },
381
679
  };