nastech-app 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1111) hide show
  1. package/.claude/agents/i18n-translator.md +119 -0
  2. package/.claude/settings.json +8 -0
  3. package/.eas/workflows/ota.yaml +9 -0
  4. package/.eas/workflows/preview.yaml +12 -0
  5. package/.easignore +12 -0
  6. package/.github/workflows/eas-build.yml +24 -0
  7. package/CHANGELOG.md +117 -0
  8. package/CLAUDE.md +413 -0
  9. package/GoogleService-Info.plist +30 -0
  10. package/LICENSE +21 -0
  11. package/NasTechapp.md +383 -0
  12. package/README.md +75 -0
  13. package/Stores.md +85 -0
  14. package/TERMS.md +83 -0
  15. package/app.config.js +153 -0
  16. package/babel.config.js +28 -0
  17. package/deploy/nastech-app.yaml +51 -0
  18. package/docs/marketing/README-creators.md +73 -0
  19. package/eas-build-post-install.sh +11 -0
  20. package/eas-build-pre-install.sh +27 -0
  21. package/eas.json +78 -0
  22. package/google-services.json +67 -0
  23. package/index.ts +3 -0
  24. package/logo.png +0 -0
  25. package/metro.config.js +54 -0
  26. package/nativewind-env.d.ts +1 -0
  27. package/package.json +233 -0
  28. package/patches/.keep +0 -0
  29. package/plugins/withEinkCompatibility.js +156 -0
  30. package/public/.well-known/apple-app-site-association +22 -0
  31. package/public/.well-known/assetlinks.json +12 -0
  32. package/public/canvaskit.wasm +0 -0
  33. package/public/favicon-active.ico +0 -0
  34. package/release-dev.sh +7 -0
  35. package/release-production.sh +3 -0
  36. package/release.cjs +160 -0
  37. package/sources/-session/SessionView.tsx +944 -0
  38. package/sources/-session/sessionOverlayNav.ts +34 -0
  39. package/sources/app/(app)/_layout.tsx +321 -0
  40. package/sources/app/(app)/artifacts/[id].tsx +279 -0
  41. package/sources/app/(app)/artifacts/edit/[id].tsx +318 -0
  42. package/sources/app/(app)/artifacts/index.tsx +264 -0
  43. package/sources/app/(app)/artifacts/new.tsx +219 -0
  44. package/sources/app/(app)/changelog.tsx +113 -0
  45. package/sources/app/(app)/dev/colors.tsx +197 -0
  46. package/sources/app/(app)/dev/device-info.tsx +183 -0
  47. package/sources/app/(app)/dev/expo-constants.tsx +394 -0
  48. package/sources/app/(app)/dev/index.tsx +400 -0
  49. package/sources/app/(app)/dev/input-styles.tsx +1951 -0
  50. package/sources/app/(app)/dev/inverted-list.tsx +295 -0
  51. package/sources/app/(app)/dev/list-demo.tsx +125 -0
  52. package/sources/app/(app)/dev/logs.tsx +160 -0
  53. package/sources/app/(app)/dev/messages-demo-data.ts +479 -0
  54. package/sources/app/(app)/dev/messages-demo.tsx +45 -0
  55. package/sources/app/(app)/dev/modal-demo.tsx +211 -0
  56. package/sources/app/(app)/dev/multi-text-input.tsx +224 -0
  57. package/sources/app/(app)/dev/purchases.tsx +228 -0
  58. package/sources/app/(app)/dev/qr-test.tsx +168 -0
  59. package/sources/app/(app)/dev/session-composer.tsx +812 -0
  60. package/sources/app/(app)/dev/shimmer-demo.tsx +275 -0
  61. package/sources/app/(app)/dev/tests.tsx +203 -0
  62. package/sources/app/(app)/dev/tools2.tsx +556 -0
  63. package/sources/app/(app)/dev/typography.tsx +177 -0
  64. package/sources/app/(app)/dev/unistyles-demo.tsx +376 -0
  65. package/sources/app/(app)/friends/index.tsx +167 -0
  66. package/sources/app/(app)/friends/search.tsx +232 -0
  67. package/sources/app/(app)/inbox/index.tsx +124 -0
  68. package/sources/app/(app)/index.tsx +264 -0
  69. package/sources/app/(app)/machine/[id].tsx +646 -0
  70. package/sources/app/(app)/new/index.tsx +1611 -0
  71. package/sources/app/(app)/restore/index.tsx +167 -0
  72. package/sources/app/(app)/restore/manual.tsx +138 -0
  73. package/sources/app/(app)/server.tsx +234 -0
  74. package/sources/app/(app)/session/[id]/file.tsx +527 -0
  75. package/sources/app/(app)/session/[id]/files.tsx +442 -0
  76. package/sources/app/(app)/session/[id]/info.tsx +655 -0
  77. package/sources/app/(app)/session/[id]/message/[messageId].tsx +125 -0
  78. package/sources/app/(app)/session/[id].tsx +10 -0
  79. package/sources/app/(app)/session/recent.tsx +270 -0
  80. package/sources/app/(app)/settings/account.tsx +600 -0
  81. package/sources/app/(app)/settings/agents.tsx +180 -0
  82. package/sources/app/(app)/settings/appearance.tsx +259 -0
  83. package/sources/app/(app)/settings/connect/claude.tsx +178 -0
  84. package/sources/app/(app)/settings/features.tsx +177 -0
  85. package/sources/app/(app)/settings/index.tsx +3 -0
  86. package/sources/app/(app)/settings/language.tsx +106 -0
  87. package/sources/app/(app)/settings/usage.tsx +11 -0
  88. package/sources/app/(app)/settings/voice/language.tsx +114 -0
  89. package/sources/app/(app)/settings/voice.tsx +274 -0
  90. package/sources/app/(app)/terminal/connect.tsx +241 -0
  91. package/sources/app/(app)/terminal/index.tsx +184 -0
  92. package/sources/app/(app)/text-selection.tsx +149 -0
  93. package/sources/app/(app)/user/[id].tsx +314 -0
  94. package/sources/app/+html.tsx +39 -0
  95. package/sources/app/_layout.tsx +402 -0
  96. package/sources/assets/animations/game.json +1 -0
  97. package/sources/assets/animations/owl.json +1 -0
  98. package/sources/assets/animations/popcorn.json +1 -0
  99. package/sources/assets/animations/robot.json +1 -0
  100. package/sources/assets/animations/sparkles.json +1 -0
  101. package/sources/assets/animations/stone.json +1 -0
  102. package/sources/assets/fonts/BricolageGrotesque-Bold.ttf +0 -0
  103. package/sources/assets/fonts/IBMPlexMono-Italic.ttf +0 -0
  104. package/sources/assets/fonts/IBMPlexMono-Regular.ttf +0 -0
  105. package/sources/assets/fonts/IBMPlexMono-SemiBold.ttf +0 -0
  106. package/sources/assets/fonts/IBMPlexSans-Italic.ttf +0 -0
  107. package/sources/assets/fonts/IBMPlexSans-Regular.ttf +0 -0
  108. package/sources/assets/fonts/IBMPlexSans-SemiBold.ttf +0 -0
  109. package/sources/assets/fonts/SpaceMono-Regular.ttf +0 -0
  110. package/sources/assets/images/brutalist/Abstract-1.png +0 -0
  111. package/sources/assets/images/brutalist/Abstract-10.png +0 -0
  112. package/sources/assets/images/brutalist/Abstract-100.png +0 -0
  113. package/sources/assets/images/brutalist/Abstract-101.png +0 -0
  114. package/sources/assets/images/brutalist/Abstract-102.png +0 -0
  115. package/sources/assets/images/brutalist/Abstract-103.png +0 -0
  116. package/sources/assets/images/brutalist/Abstract-104.png +0 -0
  117. package/sources/assets/images/brutalist/Abstract-105.png +0 -0
  118. package/sources/assets/images/brutalist/Abstract-106.png +0 -0
  119. package/sources/assets/images/brutalist/Abstract-107.png +0 -0
  120. package/sources/assets/images/brutalist/Abstract-108.png +0 -0
  121. package/sources/assets/images/brutalist/Abstract-109.png +0 -0
  122. package/sources/assets/images/brutalist/Abstract-11.png +0 -0
  123. package/sources/assets/images/brutalist/Abstract-110.png +0 -0
  124. package/sources/assets/images/brutalist/Abstract-111.png +0 -0
  125. package/sources/assets/images/brutalist/Abstract-112.png +0 -0
  126. package/sources/assets/images/brutalist/Abstract-113.png +0 -0
  127. package/sources/assets/images/brutalist/Abstract-114.png +0 -0
  128. package/sources/assets/images/brutalist/Abstract-115.png +0 -0
  129. package/sources/assets/images/brutalist/Abstract-116.png +0 -0
  130. package/sources/assets/images/brutalist/Abstract-117.png +0 -0
  131. package/sources/assets/images/brutalist/Abstract-118.png +0 -0
  132. package/sources/assets/images/brutalist/Abstract-119.png +0 -0
  133. package/sources/assets/images/brutalist/Abstract-12.png +0 -0
  134. package/sources/assets/images/brutalist/Abstract-120.png +0 -0
  135. package/sources/assets/images/brutalist/Abstract-121.png +0 -0
  136. package/sources/assets/images/brutalist/Abstract-122.png +0 -0
  137. package/sources/assets/images/brutalist/Abstract-123.png +0 -0
  138. package/sources/assets/images/brutalist/Abstract-124.png +0 -0
  139. package/sources/assets/images/brutalist/Abstract-125.png +0 -0
  140. package/sources/assets/images/brutalist/Abstract-126.png +0 -0
  141. package/sources/assets/images/brutalist/Abstract-127.png +0 -0
  142. package/sources/assets/images/brutalist/Abstract-128.png +0 -0
  143. package/sources/assets/images/brutalist/Abstract-129.png +0 -0
  144. package/sources/assets/images/brutalist/Abstract-13.png +0 -0
  145. package/sources/assets/images/brutalist/Abstract-130.png +0 -0
  146. package/sources/assets/images/brutalist/Abstract-131.png +0 -0
  147. package/sources/assets/images/brutalist/Abstract-132.png +0 -0
  148. package/sources/assets/images/brutalist/Abstract-133.png +0 -0
  149. package/sources/assets/images/brutalist/Abstract-134.png +0 -0
  150. package/sources/assets/images/brutalist/Abstract-135.png +0 -0
  151. package/sources/assets/images/brutalist/Abstract-136.png +0 -0
  152. package/sources/assets/images/brutalist/Abstract-137.png +0 -0
  153. package/sources/assets/images/brutalist/Abstract-138.png +0 -0
  154. package/sources/assets/images/brutalist/Abstract-139.png +0 -0
  155. package/sources/assets/images/brutalist/Abstract-14.png +0 -0
  156. package/sources/assets/images/brutalist/Abstract-140.png +0 -0
  157. package/sources/assets/images/brutalist/Abstract-141.png +0 -0
  158. package/sources/assets/images/brutalist/Abstract-142.png +0 -0
  159. package/sources/assets/images/brutalist/Abstract-143.png +0 -0
  160. package/sources/assets/images/brutalist/Abstract-144.png +0 -0
  161. package/sources/assets/images/brutalist/Abstract-145.png +0 -0
  162. package/sources/assets/images/brutalist/Abstract-146.png +0 -0
  163. package/sources/assets/images/brutalist/Abstract-147.png +0 -0
  164. package/sources/assets/images/brutalist/Abstract-148.png +0 -0
  165. package/sources/assets/images/brutalist/Abstract-149.png +0 -0
  166. package/sources/assets/images/brutalist/Abstract-15.png +0 -0
  167. package/sources/assets/images/brutalist/Abstract-150.png +0 -0
  168. package/sources/assets/images/brutalist/Abstract-151.png +0 -0
  169. package/sources/assets/images/brutalist/Abstract-152.png +0 -0
  170. package/sources/assets/images/brutalist/Abstract-153.png +0 -0
  171. package/sources/assets/images/brutalist/Abstract-154.png +0 -0
  172. package/sources/assets/images/brutalist/Abstract-155.png +0 -0
  173. package/sources/assets/images/brutalist/Abstract-156.png +0 -0
  174. package/sources/assets/images/brutalist/Abstract-157.png +0 -0
  175. package/sources/assets/images/brutalist/Abstract-158.png +0 -0
  176. package/sources/assets/images/brutalist/Abstract-159.png +0 -0
  177. package/sources/assets/images/brutalist/Abstract-16.png +0 -0
  178. package/sources/assets/images/brutalist/Abstract-160.png +0 -0
  179. package/sources/assets/images/brutalist/Abstract-161.png +0 -0
  180. package/sources/assets/images/brutalist/Abstract-162.png +0 -0
  181. package/sources/assets/images/brutalist/Abstract-163.png +0 -0
  182. package/sources/assets/images/brutalist/Abstract-164.png +0 -0
  183. package/sources/assets/images/brutalist/Abstract-165.png +0 -0
  184. package/sources/assets/images/brutalist/Abstract-166.png +0 -0
  185. package/sources/assets/images/brutalist/Abstract-167.png +0 -0
  186. package/sources/assets/images/brutalist/Abstract-168.png +0 -0
  187. package/sources/assets/images/brutalist/Abstract-169.png +0 -0
  188. package/sources/assets/images/brutalist/Abstract-17.png +0 -0
  189. package/sources/assets/images/brutalist/Abstract-170.png +0 -0
  190. package/sources/assets/images/brutalist/Abstract-171.png +0 -0
  191. package/sources/assets/images/brutalist/Abstract-172.png +0 -0
  192. package/sources/assets/images/brutalist/Abstract-173.png +0 -0
  193. package/sources/assets/images/brutalist/Abstract-174.png +0 -0
  194. package/sources/assets/images/brutalist/Abstract-175.png +0 -0
  195. package/sources/assets/images/brutalist/Abstract-176.png +0 -0
  196. package/sources/assets/images/brutalist/Abstract-177.png +0 -0
  197. package/sources/assets/images/brutalist/Abstract-178.png +0 -0
  198. package/sources/assets/images/brutalist/Abstract-179.png +0 -0
  199. package/sources/assets/images/brutalist/Abstract-18.png +0 -0
  200. package/sources/assets/images/brutalist/Abstract-180.png +0 -0
  201. package/sources/assets/images/brutalist/Abstract-181.png +0 -0
  202. package/sources/assets/images/brutalist/Abstract-182.png +0 -0
  203. package/sources/assets/images/brutalist/Abstract-183.png +0 -0
  204. package/sources/assets/images/brutalist/Abstract-184.png +0 -0
  205. package/sources/assets/images/brutalist/Abstract-185.png +0 -0
  206. package/sources/assets/images/brutalist/Abstract-186.png +0 -0
  207. package/sources/assets/images/brutalist/Abstract-187.png +0 -0
  208. package/sources/assets/images/brutalist/Abstract-188.png +0 -0
  209. package/sources/assets/images/brutalist/Abstract-189.png +0 -0
  210. package/sources/assets/images/brutalist/Abstract-19.png +0 -0
  211. package/sources/assets/images/brutalist/Abstract-190.png +0 -0
  212. package/sources/assets/images/brutalist/Abstract-191.png +0 -0
  213. package/sources/assets/images/brutalist/Abstract-192.png +0 -0
  214. package/sources/assets/images/brutalist/Abstract-193.png +0 -0
  215. package/sources/assets/images/brutalist/Abstract-194.png +0 -0
  216. package/sources/assets/images/brutalist/Abstract-195.png +0 -0
  217. package/sources/assets/images/brutalist/Abstract-196.png +0 -0
  218. package/sources/assets/images/brutalist/Abstract-197.png +0 -0
  219. package/sources/assets/images/brutalist/Abstract-198.png +0 -0
  220. package/sources/assets/images/brutalist/Abstract-199.png +0 -0
  221. package/sources/assets/images/brutalist/Abstract-2.png +0 -0
  222. package/sources/assets/images/brutalist/Abstract-20.png +0 -0
  223. package/sources/assets/images/brutalist/Abstract-200.png +0 -0
  224. package/sources/assets/images/brutalist/Abstract-201.png +0 -0
  225. package/sources/assets/images/brutalist/Abstract-202.png +0 -0
  226. package/sources/assets/images/brutalist/Abstract-203.png +0 -0
  227. package/sources/assets/images/brutalist/Abstract-204.png +0 -0
  228. package/sources/assets/images/brutalist/Abstract-205.png +0 -0
  229. package/sources/assets/images/brutalist/Abstract-206.png +0 -0
  230. package/sources/assets/images/brutalist/Abstract-207.png +0 -0
  231. package/sources/assets/images/brutalist/Abstract-208.png +0 -0
  232. package/sources/assets/images/brutalist/Abstract-209.png +0 -0
  233. package/sources/assets/images/brutalist/Abstract-21.png +0 -0
  234. package/sources/assets/images/brutalist/Abstract-210.png +0 -0
  235. package/sources/assets/images/brutalist/Abstract-211.png +0 -0
  236. package/sources/assets/images/brutalist/Abstract-212.png +0 -0
  237. package/sources/assets/images/brutalist/Abstract-213.png +0 -0
  238. package/sources/assets/images/brutalist/Abstract-214.png +0 -0
  239. package/sources/assets/images/brutalist/Abstract-215.png +0 -0
  240. package/sources/assets/images/brutalist/Abstract-216.png +0 -0
  241. package/sources/assets/images/brutalist/Abstract-217.png +0 -0
  242. package/sources/assets/images/brutalist/Abstract-218.png +0 -0
  243. package/sources/assets/images/brutalist/Abstract-219.png +0 -0
  244. package/sources/assets/images/brutalist/Abstract-22.png +0 -0
  245. package/sources/assets/images/brutalist/Abstract-220.png +0 -0
  246. package/sources/assets/images/brutalist/Abstract-221.png +0 -0
  247. package/sources/assets/images/brutalist/Abstract-222.png +0 -0
  248. package/sources/assets/images/brutalist/Abstract-223.png +0 -0
  249. package/sources/assets/images/brutalist/Abstract-224.png +0 -0
  250. package/sources/assets/images/brutalist/Abstract-225.png +0 -0
  251. package/sources/assets/images/brutalist/Abstract-226.png +0 -0
  252. package/sources/assets/images/brutalist/Abstract-227.png +0 -0
  253. package/sources/assets/images/brutalist/Abstract-228.png +0 -0
  254. package/sources/assets/images/brutalist/Abstract-229.png +0 -0
  255. package/sources/assets/images/brutalist/Abstract-23.png +0 -0
  256. package/sources/assets/images/brutalist/Abstract-230.png +0 -0
  257. package/sources/assets/images/brutalist/Abstract-231.png +0 -0
  258. package/sources/assets/images/brutalist/Abstract-232.png +0 -0
  259. package/sources/assets/images/brutalist/Abstract-233.png +0 -0
  260. package/sources/assets/images/brutalist/Abstract-234.png +0 -0
  261. package/sources/assets/images/brutalist/Abstract-235.png +0 -0
  262. package/sources/assets/images/brutalist/Abstract-236.png +0 -0
  263. package/sources/assets/images/brutalist/Abstract-237.png +0 -0
  264. package/sources/assets/images/brutalist/Abstract-238.png +0 -0
  265. package/sources/assets/images/brutalist/Abstract-239.png +0 -0
  266. package/sources/assets/images/brutalist/Abstract-24.png +0 -0
  267. package/sources/assets/images/brutalist/Abstract-240.png +0 -0
  268. package/sources/assets/images/brutalist/Abstract-241.png +0 -0
  269. package/sources/assets/images/brutalist/Abstract-242.png +0 -0
  270. package/sources/assets/images/brutalist/Abstract-243.png +0 -0
  271. package/sources/assets/images/brutalist/Abstract-244.png +0 -0
  272. package/sources/assets/images/brutalist/Abstract-245.png +0 -0
  273. package/sources/assets/images/brutalist/Abstract-246.png +0 -0
  274. package/sources/assets/images/brutalist/Abstract-247.png +0 -0
  275. package/sources/assets/images/brutalist/Abstract-248.png +0 -0
  276. package/sources/assets/images/brutalist/Abstract-249.png +0 -0
  277. package/sources/assets/images/brutalist/Abstract-25.png +0 -0
  278. package/sources/assets/images/brutalist/Abstract-250.png +0 -0
  279. package/sources/assets/images/brutalist/Abstract-251.png +0 -0
  280. package/sources/assets/images/brutalist/Abstract-252.png +0 -0
  281. package/sources/assets/images/brutalist/Abstract-253.png +0 -0
  282. package/sources/assets/images/brutalist/Abstract-254.png +0 -0
  283. package/sources/assets/images/brutalist/Abstract-255.png +0 -0
  284. package/sources/assets/images/brutalist/Abstract-256.png +0 -0
  285. package/sources/assets/images/brutalist/Abstract-257.png +0 -0
  286. package/sources/assets/images/brutalist/Abstract-258.png +0 -0
  287. package/sources/assets/images/brutalist/Abstract-259.png +0 -0
  288. package/sources/assets/images/brutalist/Abstract-26.png +0 -0
  289. package/sources/assets/images/brutalist/Abstract-260.png +0 -0
  290. package/sources/assets/images/brutalist/Abstract-261.png +0 -0
  291. package/sources/assets/images/brutalist/Abstract-262.png +0 -0
  292. package/sources/assets/images/brutalist/Abstract-27.png +0 -0
  293. package/sources/assets/images/brutalist/Abstract-28.png +0 -0
  294. package/sources/assets/images/brutalist/Abstract-29.png +0 -0
  295. package/sources/assets/images/brutalist/Abstract-3.png +0 -0
  296. package/sources/assets/images/brutalist/Abstract-30.png +0 -0
  297. package/sources/assets/images/brutalist/Abstract-31.png +0 -0
  298. package/sources/assets/images/brutalist/Abstract-32.png +0 -0
  299. package/sources/assets/images/brutalist/Abstract-33.png +0 -0
  300. package/sources/assets/images/brutalist/Abstract-34.png +0 -0
  301. package/sources/assets/images/brutalist/Abstract-35.png +0 -0
  302. package/sources/assets/images/brutalist/Abstract-36.png +0 -0
  303. package/sources/assets/images/brutalist/Abstract-37.png +0 -0
  304. package/sources/assets/images/brutalist/Abstract-38.png +0 -0
  305. package/sources/assets/images/brutalist/Abstract-39.png +0 -0
  306. package/sources/assets/images/brutalist/Abstract-4.png +0 -0
  307. package/sources/assets/images/brutalist/Abstract-40.png +0 -0
  308. package/sources/assets/images/brutalist/Abstract-41.png +0 -0
  309. package/sources/assets/images/brutalist/Abstract-42.png +0 -0
  310. package/sources/assets/images/brutalist/Abstract-43.png +0 -0
  311. package/sources/assets/images/brutalist/Abstract-44.png +0 -0
  312. package/sources/assets/images/brutalist/Abstract-45.png +0 -0
  313. package/sources/assets/images/brutalist/Abstract-46.png +0 -0
  314. package/sources/assets/images/brutalist/Abstract-47.png +0 -0
  315. package/sources/assets/images/brutalist/Abstract-48.png +0 -0
  316. package/sources/assets/images/brutalist/Abstract-49.png +0 -0
  317. package/sources/assets/images/brutalist/Abstract-5.png +0 -0
  318. package/sources/assets/images/brutalist/Abstract-50.png +0 -0
  319. package/sources/assets/images/brutalist/Abstract-51.png +0 -0
  320. package/sources/assets/images/brutalist/Abstract-52.png +0 -0
  321. package/sources/assets/images/brutalist/Abstract-53.png +0 -0
  322. package/sources/assets/images/brutalist/Abstract-54.png +0 -0
  323. package/sources/assets/images/brutalist/Abstract-55.png +0 -0
  324. package/sources/assets/images/brutalist/Abstract-56.png +0 -0
  325. package/sources/assets/images/brutalist/Abstract-57.png +0 -0
  326. package/sources/assets/images/brutalist/Abstract-58.png +0 -0
  327. package/sources/assets/images/brutalist/Abstract-59.png +0 -0
  328. package/sources/assets/images/brutalist/Abstract-6.png +0 -0
  329. package/sources/assets/images/brutalist/Abstract-60.png +0 -0
  330. package/sources/assets/images/brutalist/Abstract-61.png +0 -0
  331. package/sources/assets/images/brutalist/Abstract-62.png +0 -0
  332. package/sources/assets/images/brutalist/Abstract-63.png +0 -0
  333. package/sources/assets/images/brutalist/Abstract-64.png +0 -0
  334. package/sources/assets/images/brutalist/Abstract-65.png +0 -0
  335. package/sources/assets/images/brutalist/Abstract-66.png +0 -0
  336. package/sources/assets/images/brutalist/Abstract-67.png +0 -0
  337. package/sources/assets/images/brutalist/Abstract-68.png +0 -0
  338. package/sources/assets/images/brutalist/Abstract-69.png +0 -0
  339. package/sources/assets/images/brutalist/Abstract-7.png +0 -0
  340. package/sources/assets/images/brutalist/Abstract-70.png +0 -0
  341. package/sources/assets/images/brutalist/Abstract-71.png +0 -0
  342. package/sources/assets/images/brutalist/Abstract-72.png +0 -0
  343. package/sources/assets/images/brutalist/Abstract-73.png +0 -0
  344. package/sources/assets/images/brutalist/Abstract-74.png +0 -0
  345. package/sources/assets/images/brutalist/Abstract-75.png +0 -0
  346. package/sources/assets/images/brutalist/Abstract-76.png +0 -0
  347. package/sources/assets/images/brutalist/Abstract-77.png +0 -0
  348. package/sources/assets/images/brutalist/Abstract-78.png +0 -0
  349. package/sources/assets/images/brutalist/Abstract-79.png +0 -0
  350. package/sources/assets/images/brutalist/Abstract-8.png +0 -0
  351. package/sources/assets/images/brutalist/Abstract-80.png +0 -0
  352. package/sources/assets/images/brutalist/Abstract-81.png +0 -0
  353. package/sources/assets/images/brutalist/Abstract-82.png +0 -0
  354. package/sources/assets/images/brutalist/Abstract-83.png +0 -0
  355. package/sources/assets/images/brutalist/Abstract-84.png +0 -0
  356. package/sources/assets/images/brutalist/Abstract-85.png +0 -0
  357. package/sources/assets/images/brutalist/Abstract-86.png +0 -0
  358. package/sources/assets/images/brutalist/Abstract-87.png +0 -0
  359. package/sources/assets/images/brutalist/Abstract-88.png +0 -0
  360. package/sources/assets/images/brutalist/Abstract-89.png +0 -0
  361. package/sources/assets/images/brutalist/Abstract-9.png +0 -0
  362. package/sources/assets/images/brutalist/Abstract-90.png +0 -0
  363. package/sources/assets/images/brutalist/Abstract-91.png +0 -0
  364. package/sources/assets/images/brutalist/Abstract-92.png +0 -0
  365. package/sources/assets/images/brutalist/Abstract-93.png +0 -0
  366. package/sources/assets/images/brutalist/Abstract-94.png +0 -0
  367. package/sources/assets/images/brutalist/Abstract-95.png +0 -0
  368. package/sources/assets/images/brutalist/Abstract-96.png +0 -0
  369. package/sources/assets/images/brutalist/Abstract-97.png +0 -0
  370. package/sources/assets/images/brutalist/Abstract-98.png +0 -0
  371. package/sources/assets/images/brutalist/Abstract-99.png +0 -0
  372. package/sources/assets/images/brutalist/Bauhaus-1.png +0 -0
  373. package/sources/assets/images/brutalist/Bauhaus-10.png +0 -0
  374. package/sources/assets/images/brutalist/Bauhaus-11.png +0 -0
  375. package/sources/assets/images/brutalist/Bauhaus-12.png +0 -0
  376. package/sources/assets/images/brutalist/Bauhaus-13.png +0 -0
  377. package/sources/assets/images/brutalist/Bauhaus-14.png +0 -0
  378. package/sources/assets/images/brutalist/Bauhaus-15.png +0 -0
  379. package/sources/assets/images/brutalist/Bauhaus-16.png +0 -0
  380. package/sources/assets/images/brutalist/Bauhaus-17.png +0 -0
  381. package/sources/assets/images/brutalist/Bauhaus-18.png +0 -0
  382. package/sources/assets/images/brutalist/Bauhaus-19.png +0 -0
  383. package/sources/assets/images/brutalist/Bauhaus-2.png +0 -0
  384. package/sources/assets/images/brutalist/Bauhaus-20.png +0 -0
  385. package/sources/assets/images/brutalist/Bauhaus-21.png +0 -0
  386. package/sources/assets/images/brutalist/Bauhaus-22.png +0 -0
  387. package/sources/assets/images/brutalist/Bauhaus-23.png +0 -0
  388. package/sources/assets/images/brutalist/Bauhaus-24.png +0 -0
  389. package/sources/assets/images/brutalist/Bauhaus-25.png +0 -0
  390. package/sources/assets/images/brutalist/Bauhaus-26.png +0 -0
  391. package/sources/assets/images/brutalist/Bauhaus-27.png +0 -0
  392. package/sources/assets/images/brutalist/Bauhaus-28.png +0 -0
  393. package/sources/assets/images/brutalist/Bauhaus-29.png +0 -0
  394. package/sources/assets/images/brutalist/Bauhaus-3.png +0 -0
  395. package/sources/assets/images/brutalist/Bauhaus-30.png +0 -0
  396. package/sources/assets/images/brutalist/Bauhaus-31.png +0 -0
  397. package/sources/assets/images/brutalist/Bauhaus-32.png +0 -0
  398. package/sources/assets/images/brutalist/Bauhaus-33.png +0 -0
  399. package/sources/assets/images/brutalist/Bauhaus-34.png +0 -0
  400. package/sources/assets/images/brutalist/Bauhaus-35.png +0 -0
  401. package/sources/assets/images/brutalist/Bauhaus-36.png +0 -0
  402. package/sources/assets/images/brutalist/Bauhaus-37.png +0 -0
  403. package/sources/assets/images/brutalist/Bauhaus-38.png +0 -0
  404. package/sources/assets/images/brutalist/Bauhaus-39.png +0 -0
  405. package/sources/assets/images/brutalist/Bauhaus-4.png +0 -0
  406. package/sources/assets/images/brutalist/Bauhaus-40.png +0 -0
  407. package/sources/assets/images/brutalist/Bauhaus-5.png +0 -0
  408. package/sources/assets/images/brutalist/Bauhaus-6.png +0 -0
  409. package/sources/assets/images/brutalist/Bauhaus-7.png +0 -0
  410. package/sources/assets/images/brutalist/Bauhaus-8.png +0 -0
  411. package/sources/assets/images/brutalist/Bauhaus-9.png +0 -0
  412. package/sources/assets/images/brutalist/Brutalism-1.png +0 -0
  413. package/sources/assets/images/brutalist/Brutalism-10.png +0 -0
  414. package/sources/assets/images/brutalist/Brutalism-100.png +0 -0
  415. package/sources/assets/images/brutalist/Brutalism-101.png +0 -0
  416. package/sources/assets/images/brutalist/Brutalism-102.png +0 -0
  417. package/sources/assets/images/brutalist/Brutalism-103.png +0 -0
  418. package/sources/assets/images/brutalist/Brutalism-104.png +0 -0
  419. package/sources/assets/images/brutalist/Brutalism-105.png +0 -0
  420. package/sources/assets/images/brutalist/Brutalism-106.png +0 -0
  421. package/sources/assets/images/brutalist/Brutalism-107.png +0 -0
  422. package/sources/assets/images/brutalist/Brutalism-108.png +0 -0
  423. package/sources/assets/images/brutalist/Brutalism-109.png +0 -0
  424. package/sources/assets/images/brutalist/Brutalism-11.png +0 -0
  425. package/sources/assets/images/brutalist/Brutalism-110.png +0 -0
  426. package/sources/assets/images/brutalist/Brutalism-111.png +0 -0
  427. package/sources/assets/images/brutalist/Brutalism-112.png +0 -0
  428. package/sources/assets/images/brutalist/Brutalism-113.png +0 -0
  429. package/sources/assets/images/brutalist/Brutalism-114.png +0 -0
  430. package/sources/assets/images/brutalist/Brutalism-115.png +0 -0
  431. package/sources/assets/images/brutalist/Brutalism-116.png +0 -0
  432. package/sources/assets/images/brutalist/Brutalism-117.png +0 -0
  433. package/sources/assets/images/brutalist/Brutalism-118.png +0 -0
  434. package/sources/assets/images/brutalist/Brutalism-12.png +0 -0
  435. package/sources/assets/images/brutalist/Brutalism-13.png +0 -0
  436. package/sources/assets/images/brutalist/Brutalism-14.png +0 -0
  437. package/sources/assets/images/brutalist/Brutalism-15.png +0 -0
  438. package/sources/assets/images/brutalist/Brutalism-16.png +0 -0
  439. package/sources/assets/images/brutalist/Brutalism-17.png +0 -0
  440. package/sources/assets/images/brutalist/Brutalism-18.png +0 -0
  441. package/sources/assets/images/brutalist/Brutalism-19.png +0 -0
  442. package/sources/assets/images/brutalist/Brutalism-2.png +0 -0
  443. package/sources/assets/images/brutalist/Brutalism-20.png +0 -0
  444. package/sources/assets/images/brutalist/Brutalism-21.png +0 -0
  445. package/sources/assets/images/brutalist/Brutalism-22.png +0 -0
  446. package/sources/assets/images/brutalist/Brutalism-23.png +0 -0
  447. package/sources/assets/images/brutalist/Brutalism-24.png +0 -0
  448. package/sources/assets/images/brutalist/Brutalism-25.png +0 -0
  449. package/sources/assets/images/brutalist/Brutalism-26.png +0 -0
  450. package/sources/assets/images/brutalist/Brutalism-27.png +0 -0
  451. package/sources/assets/images/brutalist/Brutalism-28.png +0 -0
  452. package/sources/assets/images/brutalist/Brutalism-29.png +0 -0
  453. package/sources/assets/images/brutalist/Brutalism-3.png +0 -0
  454. package/sources/assets/images/brutalist/Brutalism-30.png +0 -0
  455. package/sources/assets/images/brutalist/Brutalism-31.png +0 -0
  456. package/sources/assets/images/brutalist/Brutalism-32.png +0 -0
  457. package/sources/assets/images/brutalist/Brutalism-33.png +0 -0
  458. package/sources/assets/images/brutalist/Brutalism-34.png +0 -0
  459. package/sources/assets/images/brutalist/Brutalism-35.png +0 -0
  460. package/sources/assets/images/brutalist/Brutalism-36.png +0 -0
  461. package/sources/assets/images/brutalist/Brutalism-37.png +0 -0
  462. package/sources/assets/images/brutalist/Brutalism-38.png +0 -0
  463. package/sources/assets/images/brutalist/Brutalism-39.png +0 -0
  464. package/sources/assets/images/brutalist/Brutalism-4.png +0 -0
  465. package/sources/assets/images/brutalist/Brutalism-40.png +0 -0
  466. package/sources/assets/images/brutalist/Brutalism-41.png +0 -0
  467. package/sources/assets/images/brutalist/Brutalism-42.png +0 -0
  468. package/sources/assets/images/brutalist/Brutalism-43.png +0 -0
  469. package/sources/assets/images/brutalist/Brutalism-44.png +0 -0
  470. package/sources/assets/images/brutalist/Brutalism-45.png +0 -0
  471. package/sources/assets/images/brutalist/Brutalism-46.png +0 -0
  472. package/sources/assets/images/brutalist/Brutalism-47.png +0 -0
  473. package/sources/assets/images/brutalist/Brutalism-48.png +0 -0
  474. package/sources/assets/images/brutalist/Brutalism-49.png +0 -0
  475. package/sources/assets/images/brutalist/Brutalism-5.png +0 -0
  476. package/sources/assets/images/brutalist/Brutalism-50.png +0 -0
  477. package/sources/assets/images/brutalist/Brutalism-51.png +0 -0
  478. package/sources/assets/images/brutalist/Brutalism-52.png +0 -0
  479. package/sources/assets/images/brutalist/Brutalism-53.png +0 -0
  480. package/sources/assets/images/brutalist/Brutalism-54.png +0 -0
  481. package/sources/assets/images/brutalist/Brutalism-55.png +0 -0
  482. package/sources/assets/images/brutalist/Brutalism-56.png +0 -0
  483. package/sources/assets/images/brutalist/Brutalism-57.png +0 -0
  484. package/sources/assets/images/brutalist/Brutalism-58.png +0 -0
  485. package/sources/assets/images/brutalist/Brutalism-59.png +0 -0
  486. package/sources/assets/images/brutalist/Brutalism-6.png +0 -0
  487. package/sources/assets/images/brutalist/Brutalism-60.png +0 -0
  488. package/sources/assets/images/brutalist/Brutalism-61.png +0 -0
  489. package/sources/assets/images/brutalist/Brutalism-62.png +0 -0
  490. package/sources/assets/images/brutalist/Brutalism-63.png +0 -0
  491. package/sources/assets/images/brutalist/Brutalism-64.png +0 -0
  492. package/sources/assets/images/brutalist/Brutalism-65.png +0 -0
  493. package/sources/assets/images/brutalist/Brutalism-66.png +0 -0
  494. package/sources/assets/images/brutalist/Brutalism-67.png +0 -0
  495. package/sources/assets/images/brutalist/Brutalism-68.png +0 -0
  496. package/sources/assets/images/brutalist/Brutalism-69.png +0 -0
  497. package/sources/assets/images/brutalist/Brutalism-7.png +0 -0
  498. package/sources/assets/images/brutalist/Brutalism-70.png +0 -0
  499. package/sources/assets/images/brutalist/Brutalism-71.png +0 -0
  500. package/sources/assets/images/brutalist/Brutalism-72.png +0 -0
  501. package/sources/assets/images/brutalist/Brutalism-73.png +0 -0
  502. package/sources/assets/images/brutalist/Brutalism-74.png +0 -0
  503. package/sources/assets/images/brutalist/Brutalism-75.png +0 -0
  504. package/sources/assets/images/brutalist/Brutalism-76.png +0 -0
  505. package/sources/assets/images/brutalist/Brutalism-77.png +0 -0
  506. package/sources/assets/images/brutalist/Brutalism-78.png +0 -0
  507. package/sources/assets/images/brutalist/Brutalism-79.png +0 -0
  508. package/sources/assets/images/brutalist/Brutalism-8.png +0 -0
  509. package/sources/assets/images/brutalist/Brutalism-80.png +0 -0
  510. package/sources/assets/images/brutalist/Brutalism-81.png +0 -0
  511. package/sources/assets/images/brutalist/Brutalism-82.png +0 -0
  512. package/sources/assets/images/brutalist/Brutalism-83.png +0 -0
  513. package/sources/assets/images/brutalist/Brutalism-84.png +0 -0
  514. package/sources/assets/images/brutalist/Brutalism-85.png +0 -0
  515. package/sources/assets/images/brutalist/Brutalism-86.png +0 -0
  516. package/sources/assets/images/brutalist/Brutalism-87.png +0 -0
  517. package/sources/assets/images/brutalist/Brutalism-88.png +0 -0
  518. package/sources/assets/images/brutalist/Brutalism-89.png +0 -0
  519. package/sources/assets/images/brutalist/Brutalism-9.png +0 -0
  520. package/sources/assets/images/brutalist/Brutalism-90.png +0 -0
  521. package/sources/assets/images/brutalist/Brutalism-91.png +0 -0
  522. package/sources/assets/images/brutalist/Brutalism-92.png +0 -0
  523. package/sources/assets/images/brutalist/Brutalism-93.png +0 -0
  524. package/sources/assets/images/brutalist/Brutalism-94.png +0 -0
  525. package/sources/assets/images/brutalist/Brutalism-95.png +0 -0
  526. package/sources/assets/images/brutalist/Brutalism-96.png +0 -0
  527. package/sources/assets/images/brutalist/Brutalism-97.png +0 -0
  528. package/sources/assets/images/brutalist/Brutalism-98.png +0 -0
  529. package/sources/assets/images/brutalist/Brutalism-99.png +0 -0
  530. package/sources/assets/images/favicon-active.png +0 -0
  531. package/sources/assets/images/favicon.png +0 -0
  532. package/sources/assets/images/gradients/01.png +0 -0
  533. package/sources/assets/images/gradients/02.png +0 -0
  534. package/sources/assets/images/gradients/03.png +0 -0
  535. package/sources/assets/images/gradients/04.png +0 -0
  536. package/sources/assets/images/gradients/05.png +0 -0
  537. package/sources/assets/images/gradients/06.png +0 -0
  538. package/sources/assets/images/gradients/07.png +0 -0
  539. package/sources/assets/images/gradients/08.png +0 -0
  540. package/sources/assets/images/gradients/09.png +0 -0
  541. package/sources/assets/images/gradients/10.png +0 -0
  542. package/sources/assets/images/gradients/100.png +0 -0
  543. package/sources/assets/images/gradients/11.png +0 -0
  544. package/sources/assets/images/gradients/12.png +0 -0
  545. package/sources/assets/images/gradients/13.png +0 -0
  546. package/sources/assets/images/gradients/14.png +0 -0
  547. package/sources/assets/images/gradients/15.png +0 -0
  548. package/sources/assets/images/gradients/16.png +0 -0
  549. package/sources/assets/images/gradients/17.png +0 -0
  550. package/sources/assets/images/gradients/18.png +0 -0
  551. package/sources/assets/images/gradients/19.png +0 -0
  552. package/sources/assets/images/gradients/20.png +0 -0
  553. package/sources/assets/images/gradients/21.png +0 -0
  554. package/sources/assets/images/gradients/22.png +0 -0
  555. package/sources/assets/images/gradients/23.png +0 -0
  556. package/sources/assets/images/gradients/24.png +0 -0
  557. package/sources/assets/images/gradients/25.png +0 -0
  558. package/sources/assets/images/gradients/26.png +0 -0
  559. package/sources/assets/images/gradients/27.png +0 -0
  560. package/sources/assets/images/gradients/28.png +0 -0
  561. package/sources/assets/images/gradients/29.png +0 -0
  562. package/sources/assets/images/gradients/30.png +0 -0
  563. package/sources/assets/images/gradients/31.png +0 -0
  564. package/sources/assets/images/gradients/32.png +0 -0
  565. package/sources/assets/images/gradients/33.png +0 -0
  566. package/sources/assets/images/gradients/34.png +0 -0
  567. package/sources/assets/images/gradients/35.png +0 -0
  568. package/sources/assets/images/gradients/36.png +0 -0
  569. package/sources/assets/images/gradients/37.png +0 -0
  570. package/sources/assets/images/gradients/38.png +0 -0
  571. package/sources/assets/images/gradients/39.png +0 -0
  572. package/sources/assets/images/gradients/40.png +0 -0
  573. package/sources/assets/images/gradients/41.png +0 -0
  574. package/sources/assets/images/gradients/42.png +0 -0
  575. package/sources/assets/images/gradients/43.png +0 -0
  576. package/sources/assets/images/gradients/44.png +0 -0
  577. package/sources/assets/images/gradients/45.png +0 -0
  578. package/sources/assets/images/gradients/46.png +0 -0
  579. package/sources/assets/images/gradients/47.png +0 -0
  580. package/sources/assets/images/gradients/48.png +0 -0
  581. package/sources/assets/images/gradients/49.png +0 -0
  582. package/sources/assets/images/gradients/50.png +0 -0
  583. package/sources/assets/images/gradients/51.png +0 -0
  584. package/sources/assets/images/gradients/52.png +0 -0
  585. package/sources/assets/images/gradients/53.png +0 -0
  586. package/sources/assets/images/gradients/54.png +0 -0
  587. package/sources/assets/images/gradients/55.png +0 -0
  588. package/sources/assets/images/gradients/56.png +0 -0
  589. package/sources/assets/images/gradients/57.png +0 -0
  590. package/sources/assets/images/gradients/58.png +0 -0
  591. package/sources/assets/images/gradients/59.png +0 -0
  592. package/sources/assets/images/gradients/60.png +0 -0
  593. package/sources/assets/images/gradients/61.png +0 -0
  594. package/sources/assets/images/gradients/62.png +0 -0
  595. package/sources/assets/images/gradients/63.png +0 -0
  596. package/sources/assets/images/gradients/64.png +0 -0
  597. package/sources/assets/images/gradients/65.png +0 -0
  598. package/sources/assets/images/gradients/66.png +0 -0
  599. package/sources/assets/images/gradients/67.png +0 -0
  600. package/sources/assets/images/gradients/68.png +0 -0
  601. package/sources/assets/images/gradients/69.png +0 -0
  602. package/sources/assets/images/gradients/70.png +0 -0
  603. package/sources/assets/images/gradients/71.png +0 -0
  604. package/sources/assets/images/gradients/72.png +0 -0
  605. package/sources/assets/images/gradients/73.png +0 -0
  606. package/sources/assets/images/gradients/74.png +0 -0
  607. package/sources/assets/images/gradients/75.png +0 -0
  608. package/sources/assets/images/gradients/76.png +0 -0
  609. package/sources/assets/images/gradients/77.png +0 -0
  610. package/sources/assets/images/gradients/78.png +0 -0
  611. package/sources/assets/images/gradients/79.png +0 -0
  612. package/sources/assets/images/gradients/80.png +0 -0
  613. package/sources/assets/images/gradients/81.png +0 -0
  614. package/sources/assets/images/gradients/82.png +0 -0
  615. package/sources/assets/images/gradients/83.png +0 -0
  616. package/sources/assets/images/gradients/84.png +0 -0
  617. package/sources/assets/images/gradients/85.png +0 -0
  618. package/sources/assets/images/gradients/86.png +0 -0
  619. package/sources/assets/images/gradients/87.png +0 -0
  620. package/sources/assets/images/gradients/88.png +0 -0
  621. package/sources/assets/images/gradients/89.png +0 -0
  622. package/sources/assets/images/gradients/90.png +0 -0
  623. package/sources/assets/images/gradients/91.png +0 -0
  624. package/sources/assets/images/gradients/92.png +0 -0
  625. package/sources/assets/images/gradients/93.png +0 -0
  626. package/sources/assets/images/gradients/94.png +0 -0
  627. package/sources/assets/images/gradients/95.png +0 -0
  628. package/sources/assets/images/gradients/96.png +0 -0
  629. package/sources/assets/images/gradients/97.png +0 -0
  630. package/sources/assets/images/gradients/98.png +0 -0
  631. package/sources/assets/images/gradients/99.png +0 -0
  632. package/sources/assets/images/icon-adaptive.png +0 -0
  633. package/sources/assets/images/icon-claude.png +0 -0
  634. package/sources/assets/images/icon-claude@2x.png +0 -0
  635. package/sources/assets/images/icon-claude@3x.png +0 -0
  636. package/sources/assets/images/icon-gemini.png +0 -0
  637. package/sources/assets/images/icon-gemini@2x.png +0 -0
  638. package/sources/assets/images/icon-gemini@3x.png +0 -0
  639. package/sources/assets/images/icon-gpt.png +0 -0
  640. package/sources/assets/images/icon-gpt@2x.png +0 -0
  641. package/sources/assets/images/icon-gpt@3x.png +0 -0
  642. package/sources/assets/images/icon-monochrome.png +0 -0
  643. package/sources/assets/images/icon-notification.png +0 -0
  644. package/sources/assets/images/icon-openclaw.png +0 -0
  645. package/sources/assets/images/icon-openclaw@2x.png +0 -0
  646. package/sources/assets/images/icon-openclaw@3x.png +0 -0
  647. package/sources/assets/images/icon-tauri.png +0 -0
  648. package/sources/assets/images/icon-voice-white.png +0 -0
  649. package/sources/assets/images/icon-voice.png +0 -0
  650. package/sources/assets/images/icon-voice@2x.png +0 -0
  651. package/sources/assets/images/icon-voice@3x.png +0 -0
  652. package/sources/assets/images/icon.png +0 -0
  653. package/sources/assets/images/logo-black.png +0 -0
  654. package/sources/assets/images/logo-white.png +0 -0
  655. package/sources/assets/images/logotype-dark.png +0 -0
  656. package/sources/assets/images/logotype-dark@2x.png +0 -0
  657. package/sources/assets/images/logotype-dark@3x.png +0 -0
  658. package/sources/assets/images/logotype-light.png +0 -0
  659. package/sources/assets/images/logotype-light@2x.png +0 -0
  660. package/sources/assets/images/logotype-light@3x.png +0 -0
  661. package/sources/assets/images/logotype.png +0 -0
  662. package/sources/assets/images/logotype@2x.png +0 -0
  663. package/sources/assets/images/logotype@3x.png +0 -0
  664. package/sources/assets/images/splash-android-dark.png +0 -0
  665. package/sources/assets/images/splash-android-light.png +0 -0
  666. package/sources/assets/images/transparent.png +0 -0
  667. package/sources/assets/images/zen-icon.png +0 -0
  668. package/sources/auth/AuthContext.tsx +100 -0
  669. package/sources/auth/authAccountApprove.ts +2 -0
  670. package/sources/auth/authApprove.ts +2 -0
  671. package/sources/auth/authChallenge.ts +8 -0
  672. package/sources/auth/authGetToken.ts +4 -0
  673. package/sources/auth/authQRStart.ts +17 -0
  674. package/sources/auth/authQRWait.ts +13 -0
  675. package/sources/auth/secretKeyBackup.spec.ts +465 -0
  676. package/sources/auth/secretKeyBackup.ts +179 -0
  677. package/sources/auth/tokenStorage.ts +27 -0
  678. package/sources/changelog/changelog.json +60 -0
  679. package/sources/changelog/index.ts +3 -0
  680. package/sources/changelog/parser.ts +23 -0
  681. package/sources/changelog/storage.ts +17 -0
  682. package/sources/changelog/types.ts +10 -0
  683. package/sources/components/ActiveSessionsGroupCompact.tsx +567 -0
  684. package/sources/components/AgentContentView.ios.tsx +70 -0
  685. package/sources/components/AgentContentView.tsx +48 -0
  686. package/sources/components/AgentInput.tsx +1468 -0
  687. package/sources/components/AgentInputAttachmentStrip.tsx +122 -0
  688. package/sources/components/AgentInputAutocomplete.tsx +96 -0
  689. package/sources/components/AgentInputSuggestionView.tsx +106 -0
  690. package/sources/components/AllFilesDiffView.tsx +515 -0
  691. package/sources/components/Avatar.tsx +149 -0
  692. package/sources/components/AvatarBrutalist.tsx +501 -0
  693. package/sources/components/AvatarGradient.tsx +147 -0
  694. package/sources/components/AvatarSkia.tsx +111 -0
  695. package/sources/components/AvatarSkia.web.tsx +113 -0
  696. package/sources/components/ChatFooter.tsx +50 -0
  697. package/sources/components/ChatHeaderView.tsx +180 -0
  698. package/sources/components/ChatList.tsx +283 -0
  699. package/sources/components/CodeEditor.tsx +22 -0
  700. package/sources/components/CodeEditor.web.tsx +180 -0
  701. package/sources/components/CodeView.tsx +33 -0
  702. package/sources/components/CommandPalette/CommandPalette.tsx +72 -0
  703. package/sources/components/CommandPalette/CommandPaletteInput.tsx +65 -0
  704. package/sources/components/CommandPalette/CommandPaletteItem.tsx +141 -0
  705. package/sources/components/CommandPalette/CommandPaletteModal.tsx +148 -0
  706. package/sources/components/CommandPalette/CommandPaletteProvider.tsx +141 -0
  707. package/sources/components/CommandPalette/CommandPaletteResults.tsx +129 -0
  708. package/sources/components/CommandPalette/index.ts +3 -0
  709. package/sources/components/CommandPalette/types.ts +15 -0
  710. package/sources/components/CommandPalette/useCommandPalette.ts +107 -0
  711. package/sources/components/CommandView.tsx +135 -0
  712. package/sources/components/CompactGitStatus.tsx +88 -0
  713. package/sources/components/ConnectButton.tsx +117 -0
  714. package/sources/components/Deferred.tsx +18 -0
  715. package/sources/components/DuplicateSheet.tsx +295 -0
  716. package/sources/components/EmptyMainScreen.tsx +171 -0
  717. package/sources/components/EmptyMessages.tsx +123 -0
  718. package/sources/components/EmptySessionsTablet.tsx +111 -0
  719. package/sources/components/ExternalLink.tsx +22 -0
  720. package/sources/components/FAB.tsx +53 -0
  721. package/sources/components/FABWide.tsx +59 -0
  722. package/sources/components/FeedItemCard.tsx +98 -0
  723. package/sources/components/FileIcon.tsx +63 -0
  724. package/sources/components/FileViewPanel.tsx +673 -0
  725. package/sources/components/FilesSidebar.tsx +739 -0
  726. package/sources/components/FloatingOverlay.tsx +48 -0
  727. package/sources/components/GitStatusBadge.tsx +82 -0
  728. package/sources/components/HeaderLogo.tsx +28 -0
  729. package/sources/components/HomeHeader.tsx +243 -0
  730. package/sources/components/HorizontalScrollView.tsx +88 -0
  731. package/sources/components/InboxView.tsx +260 -0
  732. package/sources/components/InlineFileDiff.tsx +277 -0
  733. package/sources/components/Item.tsx +315 -0
  734. package/sources/components/ItemGroup.tsx +147 -0
  735. package/sources/components/ItemList.tsx +102 -0
  736. package/sources/components/MainView.tsx +324 -0
  737. package/sources/components/MessageView.tsx +299 -0
  738. package/sources/components/MultiTextInput.tsx +285 -0
  739. package/sources/components/MultiTextInput.web.tsx +220 -0
  740. package/sources/components/OAuthView.tsx +374 -0
  741. package/sources/components/PermissionModeSelector.tsx +68 -0
  742. package/sources/components/PlaceholderContainerView.tsx +47 -0
  743. package/sources/components/PlusPlus.tsx +34 -0
  744. package/sources/components/PlusPlus.web.tsx +34 -0
  745. package/sources/components/ProjectGitStatus.tsx +102 -0
  746. package/sources/components/RoundButton.tsx +130 -0
  747. package/sources/components/SearchableListSelector.tsx +675 -0
  748. package/sources/components/SessionActionsNativeMenu.android.tsx +58 -0
  749. package/sources/components/SessionActionsNativeMenu.ios.tsx +55 -0
  750. package/sources/components/SessionActionsNativeMenu.tsx +20 -0
  751. package/sources/components/SessionActionsNativeMenu.web.tsx +13 -0
  752. package/sources/components/SessionActionsPopover.tsx +240 -0
  753. package/sources/components/SessionsList.tsx +471 -0
  754. package/sources/components/SessionsListWrapper.tsx +72 -0
  755. package/sources/components/SettingsView.tsx +470 -0
  756. package/sources/components/SettingsViewWrapper.tsx +21 -0
  757. package/sources/components/Shaker.tsx +42 -0
  758. package/sources/components/Shaker.web.tsx +46 -0
  759. package/sources/components/ShimmerView.tsx +106 -0
  760. package/sources/components/SidebarNavigator.tsx +218 -0
  761. package/sources/components/SidebarView.tsx +104 -0
  762. package/sources/components/SimpleSyntaxHighlighter.tsx +322 -0
  763. package/sources/components/StatusBarProvider.tsx +12 -0
  764. package/sources/components/StatusDot.tsx +49 -0
  765. package/sources/components/StyledText.tsx +35 -0
  766. package/sources/components/Switch.tsx +20 -0
  767. package/sources/components/TabBar.tsx +140 -0
  768. package/sources/components/ToolGroupView.tsx +101 -0
  769. package/sources/components/TransitionStack.tsx +14 -0
  770. package/sources/components/UpdateBanner.tsx +74 -0
  771. package/sources/components/UserCard.tsx +41 -0
  772. package/sources/components/UserSearchResult.tsx +129 -0
  773. package/sources/components/VoiceAssistantStatusBar.tsx +260 -0
  774. package/sources/components/VoiceBars.tsx +95 -0
  775. package/sources/components/autocomplete/applySuggestion.test.ts +194 -0
  776. package/sources/components/autocomplete/applySuggestion.ts +61 -0
  777. package/sources/components/autocomplete/findActiveWord.test.ts +365 -0
  778. package/sources/components/autocomplete/findActiveWord.ts +207 -0
  779. package/sources/components/autocomplete/suggestions.ts +79 -0
  780. package/sources/components/autocomplete/useActiveSuggestions.ts +130 -0
  781. package/sources/components/autocomplete/useActiveWord.ts +19 -0
  782. package/sources/components/diff/DiffView.tsx +188 -0
  783. package/sources/components/diff/PierreDiffView.tsx +253 -0
  784. package/sources/components/diff/calculateDiff.ts +317 -0
  785. package/sources/components/entityColor.ts +51 -0
  786. package/sources/components/haptics.ts +9 -0
  787. package/sources/components/haptics.web.ts +7 -0
  788. package/sources/components/layout.ts +44 -0
  789. package/sources/components/markdown/MarkdownView.tsx +670 -0
  790. package/sources/components/markdown/MermaidRenderer.tsx +233 -0
  791. package/sources/components/markdown/linkUtils.test.ts +17 -0
  792. package/sources/components/markdown/linkUtils.ts +5 -0
  793. package/sources/components/markdown/parseMarkdown.test.ts +64 -0
  794. package/sources/components/markdown/parseMarkdown.ts +46 -0
  795. package/sources/components/markdown/parseMarkdownBlock.test.ts +108 -0
  796. package/sources/components/markdown/parseMarkdownBlock.ts +200 -0
  797. package/sources/components/markdown/parseMarkdownSpans.ts +88 -0
  798. package/sources/components/modelModeOptions.test.ts +114 -0
  799. package/sources/components/modelModeOptions.ts +257 -0
  800. package/sources/components/navigation/Header.tsx +252 -0
  801. package/sources/components/parseLocalCommandMessage.spec.ts +96 -0
  802. package/sources/components/parseLocalCommandMessage.ts +97 -0
  803. package/sources/components/qr/QRCode.tsx +178 -0
  804. package/sources/components/qr/QRCode.web.tsx +229 -0
  805. package/sources/components/qr/index.ts +2 -0
  806. package/sources/components/qr/qrMatrix.ts +48 -0
  807. package/sources/components/tools/PermissionFooter.tsx +527 -0
  808. package/sources/components/tools/ToolDiffView.tsx +60 -0
  809. package/sources/components/tools/ToolError.tsx +49 -0
  810. package/sources/components/tools/ToolFullView.tsx +193 -0
  811. package/sources/components/tools/ToolHeader.tsx +93 -0
  812. package/sources/components/tools/ToolSectionView.tsx +42 -0
  813. package/sources/components/tools/ToolStatusIndicator.tsx +36 -0
  814. package/sources/components/tools/ToolView.tsx +340 -0
  815. package/sources/components/tools/knownTools.tsx +957 -0
  816. package/sources/components/tools/views/AskUserQuestionView.tsx +357 -0
  817. package/sources/components/tools/views/BashView.tsx +47 -0
  818. package/sources/components/tools/views/BashViewFull.tsx +81 -0
  819. package/sources/components/tools/views/CodexBashView.tsx +126 -0
  820. package/sources/components/tools/views/CodexDiffView.tsx +79 -0
  821. package/sources/components/tools/views/CodexPatchView.tsx +186 -0
  822. package/sources/components/tools/views/EditView.tsx +33 -0
  823. package/sources/components/tools/views/EditViewFull.tsx +38 -0
  824. package/sources/components/tools/views/ExitPlanToolView.tsx +21 -0
  825. package/sources/components/tools/views/FileView.tsx +118 -0
  826. package/sources/components/tools/views/GeminiEditView.tsx +75 -0
  827. package/sources/components/tools/views/GeminiExecuteView.tsx +92 -0
  828. package/sources/components/tools/views/MCPToolView.tsx +31 -0
  829. package/sources/components/tools/views/MultiEditView.tsx +41 -0
  830. package/sources/components/tools/views/MultiEditViewFull.tsx +84 -0
  831. package/sources/components/tools/views/TaskView.tsx +129 -0
  832. package/sources/components/tools/views/TodoView.tsx +90 -0
  833. package/sources/components/tools/views/WriteView.tsx +29 -0
  834. package/sources/components/tools/views/_all.tsx +88 -0
  835. package/sources/components/usage/UsageBar.tsx +80 -0
  836. package/sources/components/usage/UsageChart.tsx +164 -0
  837. package/sources/components/usage/UsagePanel.tsx +283 -0
  838. package/sources/components/web/FaviconPermissionIndicator.tsx +44 -0
  839. package/sources/config.ts +3 -0
  840. package/sources/constants/Languages.ts +116 -0
  841. package/sources/constants/Typography.ts +116 -0
  842. package/sources/dev/testRunner.ts +277 -0
  843. package/sources/docs/autocomplete-text-manipulation.md +224 -0
  844. package/sources/encryption/aes.appspec.ts +25 -0
  845. package/sources/encryption/aes.ts +21 -0
  846. package/sources/encryption/aes.web.test.ts +73 -0
  847. package/sources/encryption/aes.web.ts +79 -0
  848. package/sources/encryption/base64.appspec.ts +240 -0
  849. package/sources/encryption/base64.native.ts +12 -0
  850. package/sources/encryption/base64.ts +46 -0
  851. package/sources/encryption/blob.test.ts +120 -0
  852. package/sources/encryption/blob.ts +58 -0
  853. package/sources/encryption/deriveKey.appspec.ts +72 -0
  854. package/sources/encryption/deriveKey.ts +46 -0
  855. package/sources/encryption/hex.ts +17 -0
  856. package/sources/encryption/hmac_sha512.appspec.ts +40 -0
  857. package/sources/encryption/hmac_sha512.ts +42 -0
  858. package/sources/encryption/libsodium.lib.ts +2 -0
  859. package/sources/encryption/libsodium.lib.web.ts +2 -0
  860. package/sources/encryption/libsodium.ts +58 -0
  861. package/sources/encryption/text.test.ts +61 -0
  862. package/sources/encryption/text.ts +11 -0
  863. package/sources/hooks/useAsyncCommand.ts +25 -0
  864. package/sources/hooks/useAttachmentImage.ts +134 -0
  865. package/sources/hooks/useAutocomplete.ts +69 -0
  866. package/sources/hooks/useAutocompleteSession.ts +53 -0
  867. package/sources/hooks/useChangelog.ts +45 -0
  868. package/sources/hooks/useCheckCameraPermissions.ts +25 -0
  869. package/sources/hooks/useConnectAccount.ts +107 -0
  870. package/sources/hooks/useConnectTerminal.ts +112 -0
  871. package/sources/hooks/useDemoMessages.ts +48 -0
  872. package/sources/hooks/useDraft.ts +120 -0
  873. package/sources/hooks/useElapsedTime.ts +36 -0
  874. package/sources/hooks/useGetPath.ts +13 -0
  875. package/sources/hooks/useGitStatusFiles.ts +45 -0
  876. package/sources/hooks/useGlobalKeyboard.ts +29 -0
  877. package/sources/hooks/useGroupedMessages.ts +149 -0
  878. package/sources/hooks/useImagePicker.ts +135 -0
  879. package/sources/hooks/useInboxHasContent.ts +19 -0
  880. package/sources/hooks/useMultiClick.ts +56 -0
  881. package/sources/hooks/useNasTechAction.ts +45 -0
  882. package/sources/hooks/useNativeUpdate.ts +10 -0
  883. package/sources/hooks/useNavigateToSession.ts +20 -0
  884. package/sources/hooks/useNewSessionDraft.ts +70 -0
  885. package/sources/hooks/usePrefetchFileContents.ts +162 -0
  886. package/sources/hooks/useSearch.ts +120 -0
  887. package/sources/hooks/useSessionQuickActions.ts +325 -0
  888. package/sources/hooks/useTauriDrag.ts +76 -0
  889. package/sources/hooks/useTauriZoom.ts +67 -0
  890. package/sources/hooks/useUpdates.ts +84 -0
  891. package/sources/hooks/useVisibleSessionListViewData.ts +65 -0
  892. package/sources/hooks/useWorktreeCleanup.ts +69 -0
  893. package/sources/log.ts +108 -0
  894. package/sources/modal/ModalManager.ts +203 -0
  895. package/sources/modal/ModalProvider.tsx +103 -0
  896. package/sources/modal/components/BaseModal.tsx +122 -0
  897. package/sources/modal/components/CustomModal.tsx +42 -0
  898. package/sources/modal/components/WebAlertModal.tsx +139 -0
  899. package/sources/modal/components/WebPromptModal.tsx +185 -0
  900. package/sources/modal/index.ts +3 -0
  901. package/sources/modal/types.ts +79 -0
  902. package/sources/nastech-wire/index.ts +10 -0
  903. package/sources/nastech-wire/legacyProtocol.ts +27 -0
  904. package/sources/nastech-wire/messageMeta.ts +14 -0
  905. package/sources/nastech-wire/messages.ts +113 -0
  906. package/sources/nastech-wire/sessionProtocol.ts +134 -0
  907. package/sources/nastech-wire/voice.ts +34 -0
  908. package/sources/polyfills/screenOrientation.ts +33 -0
  909. package/sources/realtime/RealtimeProvider.tsx +20 -0
  910. package/sources/realtime/RealtimeProvider.web.tsx +15 -0
  911. package/sources/realtime/RealtimeSession.ts +200 -0
  912. package/sources/realtime/RealtimeVoiceSession.tsx +211 -0
  913. package/sources/realtime/RealtimeVoiceSession.web.tsx +209 -0
  914. package/sources/realtime/hooks/contextFormatters.ts +127 -0
  915. package/sources/realtime/hooks/voiceHooks.ts +232 -0
  916. package/sources/realtime/realtimeClientTools.ts +94 -0
  917. package/sources/realtime/types.ts +19 -0
  918. package/sources/realtime/voiceConfig.ts +31 -0
  919. package/sources/realtime/voiceExperiment.ts +91 -0
  920. package/sources/realtime/voiceSystemPrompt.ts +75 -0
  921. package/sources/scripts/compareTranslations.ts +217 -0
  922. package/sources/scripts/parseChangelog.ts +87 -0
  923. package/sources/sync/__testdata__/trace_0.json +3986 -0
  924. package/sources/sync/__testdata__/trace_1.json +1391 -0
  925. package/sources/sync/__testdata__/trace_2.json +182 -0
  926. package/sources/sync/agentDefaults.ts +108 -0
  927. package/sources/sync/apiArtifacts.ts +143 -0
  928. package/sources/sync/apiAttachments.ts +217 -0
  929. package/sources/sync/apiFeed.ts +60 -0
  930. package/sources/sync/apiFriends.ts +217 -0
  931. package/sources/sync/apiGithub.spec.ts +97 -0
  932. package/sources/sync/apiGithub.ts +103 -0
  933. package/sources/sync/apiKv.ts +270 -0
  934. package/sources/sync/apiPush.ts +83 -0
  935. package/sources/sync/apiServices.ts +64 -0
  936. package/sources/sync/apiSocket.ts +290 -0
  937. package/sources/sync/apiTypes.spec.ts +23 -0
  938. package/sources/sync/apiTypes.ts +213 -0
  939. package/sources/sync/apiUsage.ts +130 -0
  940. package/sources/sync/apiVoice.ts +57 -0
  941. package/sources/sync/appConfig.ts +95 -0
  942. package/sources/sync/artifactTypes.ts +85 -0
  943. package/sources/sync/attachmentTypes.ts +28 -0
  944. package/sources/sync/encryption/artifactEncryption.ts +83 -0
  945. package/sources/sync/encryption/encryption.ts +220 -0
  946. package/sources/sync/encryption/encryptionCache.ts +248 -0
  947. package/sources/sync/encryption/encryptor.appspec.ts +409 -0
  948. package/sources/sync/encryption/encryptor.ts +126 -0
  949. package/sources/sync/encryption/machineEncryption.ts +122 -0
  950. package/sources/sync/encryption/sessionEncryption.ts +207 -0
  951. package/sources/sync/feedTypes.ts +43 -0
  952. package/sources/sync/friendTypes.ts +92 -0
  953. package/sources/sync/git-parsers/LineParser.ts +62 -0
  954. package/sources/sync/git-parsers/parseBranch.ts +97 -0
  955. package/sources/sync/git-parsers/parseDiff.ts +180 -0
  956. package/sources/sync/git-parsers/parseStatus.ts +162 -0
  957. package/sources/sync/git-parsers/parseStatusV2.ts +307 -0
  958. package/sources/sync/gitStatusFiles.ts +185 -0
  959. package/sources/sync/gitStatusSync.ts +282 -0
  960. package/sources/sync/localSettings.ts +67 -0
  961. package/sources/sync/messageMeta.test.ts +87 -0
  962. package/sources/sync/messageMeta.ts +36 -0
  963. package/sources/sync/modeHacks.test.ts +29 -0
  964. package/sources/sync/modeHacks.ts +22 -0
  965. package/sources/sync/nastechApi.ts +124 -0
  966. package/sources/sync/ops.ts +776 -0
  967. package/sources/sync/persistence.ts +322 -0
  968. package/sources/sync/profile.ts +95 -0
  969. package/sources/sync/projectFiles.ts +54 -0
  970. package/sources/sync/prompt/systemPrompt.ts +20 -0
  971. package/sources/sync/purchases.ts +67 -0
  972. package/sources/sync/pushRegistration.ts +229 -0
  973. package/sources/sync/reducer/activityUpdateAccumulator.test.ts +492 -0
  974. package/sources/sync/reducer/activityUpdateAccumulator.ts +96 -0
  975. package/sources/sync/reducer/messageToEvent.ts +85 -0
  976. package/sources/sync/reducer/phase0-skipping.spec.ts +206 -0
  977. package/sources/sync/reducer/reducer.spec.ts +3169 -0
  978. package/sources/sync/reducer/reducer.ts +1214 -0
  979. package/sources/sync/reducer/reducerTracer.spec.ts +502 -0
  980. package/sources/sync/reducer/reducerTracer.ts +310 -0
  981. package/sources/sync/revenueCat/index.ts +21 -0
  982. package/sources/sync/revenueCat/revenueCat.ts +215 -0
  983. package/sources/sync/revenueCat/revenueCat.web.ts +238 -0
  984. package/sources/sync/revenueCat/types.ts +82 -0
  985. package/sources/sync/serverConfig.ts +72 -0
  986. package/sources/sync/settings.spec.ts +456 -0
  987. package/sources/sync/settings.ts +186 -0
  988. package/sources/sync/storage.ts +1653 -0
  989. package/sources/sync/storageTypes.spec.ts +24 -0
  990. package/sources/sync/storageTypes.ts +215 -0
  991. package/sources/sync/suggestionCommands.ts +149 -0
  992. package/sources/sync/suggestionFile.ts +206 -0
  993. package/sources/sync/sync.ts +2555 -0
  994. package/sources/sync/typesMessage.ts +69 -0
  995. package/sources/sync/typesMessageMeta.test.ts +14 -0
  996. package/sources/sync/typesMessageMeta.ts +17 -0
  997. package/sources/sync/typesRaw.spec.ts +2010 -0
  998. package/sources/sync/typesRaw.ts +1183 -0
  999. package/sources/sync/uploadFormFile.ts +29 -0
  1000. package/sources/sync/uploadFormFile.web.ts +14 -0
  1001. package/sources/sync/webTabTitle.ts +58 -0
  1002. package/sources/text/README.md +223 -0
  1003. package/sources/text/_all.ts +104 -0
  1004. package/sources/text/_default.ts +1015 -0
  1005. package/sources/text/index.ts +215 -0
  1006. package/sources/text/translations/ca.ts +993 -0
  1007. package/sources/text/translations/en.ts +1009 -0
  1008. package/sources/text/translations/es.ts +995 -0
  1009. package/sources/text/translations/it.ts +992 -0
  1010. package/sources/text/translations/ja.ts +993 -0
  1011. package/sources/text/translations/pl.ts +1024 -0
  1012. package/sources/text/translations/pt.ts +992 -0
  1013. package/sources/text/translations/ru.ts +1023 -0
  1014. package/sources/text/translations/zh-Hans.ts +992 -0
  1015. package/sources/text/translations/zh-Hant.ts +991 -0
  1016. package/sources/theme.css +72 -0
  1017. package/sources/theme.dark.json +31 -0
  1018. package/sources/theme.figma.json +457 -0
  1019. package/sources/theme.gen.ts +10 -0
  1020. package/sources/theme.light.json +31 -0
  1021. package/sources/theme.ts +452 -0
  1022. package/sources/track/index.ts +171 -0
  1023. package/sources/track/tracking.ts +12 -0
  1024. package/sources/track/useTrackScreens.ts +10 -0
  1025. package/sources/types/react-native-webrtc-web-shim.d.ts +6 -0
  1026. package/sources/unistyles.ts +97 -0
  1027. package/sources/utils/codexUnifiedDiff.spec.ts +43 -0
  1028. package/sources/utils/codexUnifiedDiff.ts +70 -0
  1029. package/sources/utils/consoleLogging.ts +145 -0
  1030. package/sources/utils/copySessionMetadataToClipboard.ts +53 -0
  1031. package/sources/utils/debounce.test.ts +646 -0
  1032. package/sources/utils/debounce.ts +122 -0
  1033. package/sources/utils/deviceCalculations.test.ts +318 -0
  1034. package/sources/utils/deviceCalculations.ts +87 -0
  1035. package/sources/utils/errors.ts +10 -0
  1036. package/sources/utils/formatPermissionParams.ts +23 -0
  1037. package/sources/utils/isTauri.ts +7 -0
  1038. package/sources/utils/loadSkia.ts +3 -0
  1039. package/sources/utils/loadSkia.web.ts +5 -0
  1040. package/sources/utils/lock.ts +40 -0
  1041. package/sources/utils/machineUtils.ts +6 -0
  1042. package/sources/utils/messageUtils.ts +254 -0
  1043. package/sources/utils/microphonePermissions.ts +109 -0
  1044. package/sources/utils/notificationRouting.test.ts +51 -0
  1045. package/sources/utils/notificationRouting.ts +81 -0
  1046. package/sources/utils/oauth.ts +143 -0
  1047. package/sources/utils/openExternalUrl.ts +19 -0
  1048. package/sources/utils/parseToken.ts +23 -0
  1049. package/sources/utils/pasteImages.web.ts +81 -0
  1050. package/sources/utils/pathUtils.spec.ts +226 -0
  1051. package/sources/utils/pathUtils.ts +75 -0
  1052. package/sources/utils/platform.ts +19 -0
  1053. package/sources/utils/readFileBytes.ts +11 -0
  1054. package/sources/utils/readFileBytes.web.ts +12 -0
  1055. package/sources/utils/requestReview.ts +135 -0
  1056. package/sources/utils/responsive.ts +87 -0
  1057. package/sources/utils/resumeCommand.test.ts +78 -0
  1058. package/sources/utils/resumeCommand.ts +70 -0
  1059. package/sources/utils/sessionFileLinks.test.ts +112 -0
  1060. package/sources/utils/sessionFileLinks.ts +388 -0
  1061. package/sources/utils/sessionUtils.ts +226 -0
  1062. package/sources/utils/stringUtils.ts +41 -0
  1063. package/sources/utils/sync.ts +164 -0
  1064. package/sources/utils/thumbhash.ts +17 -0
  1065. package/sources/utils/thumbhash.web.ts +85 -0
  1066. package/sources/utils/time.ts +41 -0
  1067. package/sources/utils/toSnakeCase.test.ts +182 -0
  1068. package/sources/utils/toSnakeCase.ts +40 -0
  1069. package/sources/utils/toolCommand.test.ts +23 -0
  1070. package/sources/utils/toolCommand.ts +35 -0
  1071. package/sources/utils/toolComparison.test.ts +101 -0
  1072. package/sources/utils/toolComparison.ts +73 -0
  1073. package/sources/utils/toolErrorParser.test.ts +126 -0
  1074. package/sources/utils/toolErrorParser.ts +102 -0
  1075. package/sources/utils/trimIdent.ts +27 -0
  1076. package/sources/utils/truncateForLogs.ts +37 -0
  1077. package/sources/utils/versionUtils.test.ts +58 -0
  1078. package/sources/utils/versionUtils.ts +69 -0
  1079. package/sources/utils/web/faviconGenerator.ts +39 -0
  1080. package/sources/utils/worktree.ts +192 -0
  1081. package/sources/wire/index.ts +97 -0
  1082. package/src-tauri/Cargo.lock +5978 -0
  1083. package/src-tauri/Cargo.toml +27 -0
  1084. package/src-tauri/build.rs +3 -0
  1085. package/src-tauri/capabilities/default.json +27 -0
  1086. package/src-tauri/deny.toml +53 -0
  1087. package/src-tauri/entitlements.plist +24 -0
  1088. package/src-tauri/icons/128x128.png +0 -0
  1089. package/src-tauri/icons/128x128@2x.png +0 -0
  1090. package/src-tauri/icons/32x32.png +0 -0
  1091. package/src-tauri/icons/64x64.png +0 -0
  1092. package/src-tauri/icons/Square107x107Logo.png +0 -0
  1093. package/src-tauri/icons/Square142x142Logo.png +0 -0
  1094. package/src-tauri/icons/Square150x150Logo.png +0 -0
  1095. package/src-tauri/icons/Square284x284Logo.png +0 -0
  1096. package/src-tauri/icons/Square30x30Logo.png +0 -0
  1097. package/src-tauri/icons/Square310x310Logo.png +0 -0
  1098. package/src-tauri/icons/Square44x44Logo.png +0 -0
  1099. package/src-tauri/icons/Square71x71Logo.png +0 -0
  1100. package/src-tauri/icons/Square89x89Logo.png +0 -0
  1101. package/src-tauri/icons/StoreLogo.png +0 -0
  1102. package/src-tauri/icons/icon.icns +0 -0
  1103. package/src-tauri/icons/icon.ico +0 -0
  1104. package/src-tauri/icons/icon.png +0 -0
  1105. package/src-tauri/src/lib.rs +18 -0
  1106. package/src-tauri/src/main.rs +6 -0
  1107. package/src-tauri/tauri.conf.json +51 -0
  1108. package/src-tauri/tauri.dev.conf.json +20 -0
  1109. package/src-tauri/tauri.preview.conf.json +20 -0
  1110. package/tsconfig.json +45 -0
  1111. package/vitest.config.ts +26 -0
@@ -0,0 +1,993 @@
1
+ /**
2
+ * Japanese translations for the NasTech app
3
+ * Values can be:
4
+ * - String constants for static text
5
+ * - Functions with typed object parameters for dynamic text
6
+ */
7
+
8
+ import { TranslationStructure } from "../_default";
9
+
10
+ /**
11
+ * Japanese plural helper function
12
+ * Japanese doesn't have grammatical plurals, so this just returns the appropriate form
13
+ * @param options - Object containing count, singular, and plural forms
14
+ * @returns The appropriate form based on count
15
+ */
16
+ function plural({ count, singular, plural }: { count: number; singular: string; plural: string }): string {
17
+ return count === 1 ? singular : plural;
18
+ }
19
+
20
+ export const ja: TranslationStructure = {
21
+ tabs: {
22
+ // Tab navigation labels
23
+ inbox: '受信トレイ',
24
+ sessions: 'ターミナル',
25
+ settings: '設定',
26
+ },
27
+
28
+ inbox: {
29
+ // Inbox screen
30
+ emptyTitle: '受信トレイは空です',
31
+ emptyDescription: '友達と接続してセッションを共有しましょう',
32
+ updates: '更新',
33
+ },
34
+
35
+ common: {
36
+ // Simple string constants
37
+ cancel: 'キャンセル',
38
+ authenticate: '認証',
39
+ save: '保存',
40
+ error: 'エラー',
41
+ success: '成功',
42
+ ok: 'OK',
43
+ continue: '続行',
44
+ back: '戻る',
45
+ create: '作成',
46
+ rename: '名前を変更',
47
+ reset: 'リセット',
48
+ logout: 'ログアウト',
49
+ yes: 'はい',
50
+ no: 'いいえ',
51
+ discard: '破棄',
52
+ version: 'バージョン',
53
+ copied: 'コピーしました',
54
+ copy: 'コピー',
55
+ scanning: 'スキャン中...',
56
+ urlPlaceholder: 'https://example.com',
57
+ home: 'ホーム',
58
+ message: 'メッセージ',
59
+ files: 'ファイル',
60
+ fileViewer: 'ファイルビューアー',
61
+ loading: '読み込み中...',
62
+ retry: '再試行',
63
+ delete: '削除',
64
+ optional: '任意',
65
+ saveAs: '名前を付けて保存',
66
+ },
67
+
68
+ profile: {
69
+ userProfile: 'ユーザープロフィール',
70
+ details: '詳細',
71
+ firstName: '名',
72
+ lastName: '姓',
73
+ username: 'ユーザー名',
74
+ status: 'ステータス',
75
+ },
76
+
77
+ status: {
78
+ connected: '接続済み',
79
+ connecting: '接続中',
80
+ disconnected: '切断済み',
81
+ error: 'エラー',
82
+ online: 'オンライン',
83
+ offline: 'オフライン',
84
+ lastSeen: ({ time }: { time: string }) => `最終アクセス: ${time}`,
85
+ permissionRequired: '権限が必要です',
86
+ activeNow: 'アクティブ',
87
+ unknown: '不明',
88
+ unread: '新しい結果',
89
+ },
90
+
91
+ time: {
92
+ justNow: 'たった今',
93
+ minutesAgo: ({ count }: { count: number }) => `${count}分前`,
94
+ hoursAgo: ({ count }: { count: number }) => `${count}時間前`,
95
+ daysAgo: ({ count }: { count: number }) => `${count}日前`,
96
+ },
97
+
98
+ connect: {
99
+ restoreAccount: 'アカウントを復元',
100
+ enterSecretKey: 'シークレットキーを入力してください',
101
+ invalidSecretKey: 'シークレットキーが無効です。確認して再試行してください。',
102
+ enterUrlManually: 'URLを手動で入力',
103
+ },
104
+
105
+ settings: {
106
+ title: '設定',
107
+ connectedAccounts: '接続済みアカウント',
108
+ connectAccount: 'アカウントを接続',
109
+ github: 'GitHub',
110
+ machines: 'マシン',
111
+ showOfflineMachines: ({ count }: { count: number }) => `${count} 台のオフラインマシンを表示`,
112
+ hideOfflineMachines: 'オフラインマシンを非表示',
113
+ features: '機能',
114
+ social: 'ソーシャル',
115
+ account: 'アカウント',
116
+ accountSubtitle: 'アカウントの詳細を管理',
117
+ appearance: '外観',
118
+ appearanceSubtitle: 'アプリの見た目をカスタマイズ',
119
+ voiceAssistant: '音声アシスタント',
120
+ voiceAssistantSubtitle: '音声操作の設定',
121
+ featuresTitle: '機能',
122
+ featuresSubtitle: 'アプリ機能の有効/無効を切り替え',
123
+ developer: '開発者',
124
+ developerTools: '開発者ツール',
125
+ about: 'このアプリについて',
126
+ aboutFooter: 'NasTechはCodexとClaude Codeのモバイルクライアントです。完全なエンドツーエンド暗号化を採用し、アカウントはデバイスにのみ保存されます。Anthropicとは提携していません。',
127
+ whatsNew: '新機能',
128
+ whatsNewSubtitle: '最新のアップデートと改善を確認',
129
+ reportIssue: '問題を報告',
130
+ privacyPolicy: 'プライバシーポリシー',
131
+ termsOfService: '利用規約',
132
+ eula: 'EULA',
133
+ supportUs: '開発を支援',
134
+ supportUsSubtitlePro: 'ご支援ありがとうございます!',
135
+ supportUsSubtitle: 'プロジェクト開発を支援',
136
+ scanQrCodeToAuthenticate: 'QRコードをスキャンして認証',
137
+ githubConnected: ({ login }: { login: string }) => `@${login}として接続中`,
138
+ connectGithubAccount: 'GitHubアカウントを接続',
139
+ claudeAuthSuccess: 'Claudeへの接続に成功しました',
140
+ exchangingTokens: 'トークンを交換中...',
141
+ usage: '使用状況',
142
+ usageSubtitle: 'API使用量とコストを確認',
143
+ // Dynamic settings messages
144
+ accountConnected: ({ service }: { service: string }) => `${service}アカウントが接続されました`,
145
+ machineStatus: ({ name, status }: { name: string; status: 'online' | 'offline' }) =>
146
+ `${name}は${status === 'online' ? 'オンライン' : 'オフライン'}です`,
147
+ featureToggled: ({ feature, enabled }: { feature: string; enabled: boolean }) =>
148
+ `${feature}を${enabled ? '有効' : '無効'}にしました`,
149
+ },
150
+
151
+ settingsAppearance: {
152
+ // Appearance settings screen
153
+ theme: 'テーマ',
154
+ themeDescription: 'お好みの配色を選択',
155
+ themeOptions: {
156
+ adaptive: '自動',
157
+ light: 'ライト',
158
+ dark: 'ダーク',
159
+ },
160
+ themeDescriptions: {
161
+ adaptive: 'システム設定に合わせる',
162
+ light: '常にライトテーマを使用',
163
+ dark: '常にダークテーマを使用',
164
+ },
165
+ display: '表示',
166
+ displayDescription: 'レイアウトと間隔を調整',
167
+ inlineToolCalls: 'ツール呼び出しをインライン表示',
168
+ inlineToolCallsDescription: 'チャットメッセージ内にツール呼び出しを直接表示',
169
+ expandTodoLists: 'Todoリストを展開',
170
+ expandTodoListsDescription: '変更点だけでなくすべてのTodoを表示',
171
+ showLineNumbersInDiffs: '差分に行番号を表示',
172
+ showLineNumbersInDiffsDescription: 'コード差分に行番号を表示',
173
+ showLineNumbersInToolViews: 'ツールビューに行番号を表示',
174
+ showLineNumbersInToolViewsDescription: 'ツールビューの差分に行番号を表示',
175
+ wrapLinesInDiffs: '差分で行を折り返し',
176
+ wrapLinesInDiffsDescription: '差分表示で水平スクロールの代わりに長い行を折り返す',
177
+ diffStyle: '差分表示',
178
+ diffStyleDescription: '差分を1列(unified)または横並び(split)で表示します。split 表示は Web 専用です。',
179
+ diffStyleOptions: {
180
+ unified: 'Unified',
181
+ split: 'Split',
182
+ },
183
+ alwaysShowContextSize: '常にコンテキストサイズを表示',
184
+ alwaysShowContextSizeDescription: '上限に近づいていなくてもコンテキスト使用量を表示',
185
+ avatarStyle: 'アバタースタイル',
186
+ avatarStyleDescription: 'セッションアバターの外観を選択',
187
+ avatarOptions: {
188
+ pixelated: 'ピクセル',
189
+ gradient: 'グラデーション',
190
+ brutalist: 'ブルータリスト',
191
+ },
192
+ showFlavorIcons: 'AIプロバイダーアイコンを表示',
193
+ showFlavorIconsDescription: 'セッションアバターにAIプロバイダーアイコンを表示',
194
+ },
195
+
196
+ settingsFeatures: {
197
+ // Features settings screen
198
+ experiments: '実験的機能',
199
+ experimentsDescription: '開発中の実験的機能を有効にします。これらの機能は不安定であったり、予告なく変更される場合があります。',
200
+ experimentalFeatures: '実験的機能',
201
+ experimentalFeaturesEnabled: '実験的機能が有効です',
202
+ experimentalFeaturesDisabled: '安定版機能のみを使用',
203
+ webFeatures: 'Web機能',
204
+ webFeaturesDescription: 'Webバージョンでのみ利用可能な機能。',
205
+ enterToSend: 'Enterで送信',
206
+ enterToSendEnabled: 'Enterで送信(Shift+Enterで改行)',
207
+ enterToSendDisabled: 'Enterで改行',
208
+ commandPalette: 'コマンドパレット',
209
+ commandPaletteEnabled: '⌘Kで開く',
210
+ commandPaletteDisabled: 'クイックコマンドアクセスは無効',
211
+ markdownCopyV2: 'Markdownコピー v2',
212
+ markdownCopyV2Subtitle: '長押しでコピーモーダルを開く',
213
+ hideInactiveSessions: '非アクティブセッションを非表示',
214
+ hideInactiveSessionsSubtitle: 'アクティブなチャットのみをリストに表示',
215
+ groupToolCalls: 'ツール呼び出しをグループ化',
216
+ groupToolCallsSubtitle: '連続するツール呼び出しを1つのコンテナにまとめる',
217
+ privacy: 'プライバシー',
218
+ privacyDescription: 'すべての分析とテレメトリを完全に無効にします。PostHogやその他のトラッキングサービスにデータは送信されません。',
219
+ disableAnalytics: '分析を無効化',
220
+ analyticsDisabled: 'すべてのトラッキングとテレメトリが無効',
221
+ analyticsEnabled: '匿名の使用状況分析がアクティブ',
222
+ imageUpload: '画像アップロード',
223
+ imageUploadSubtitle: 'メッセージに画像を添付してClaudeに分析させる',
224
+ },
225
+
226
+ errors: {
227
+ networkError: 'ネットワークエラーが発生しました',
228
+ serverError: 'サーバーエラーが発生しました',
229
+ unknownError: '不明なエラーが発生しました',
230
+ connectionTimeout: '接続がタイムアウトしました',
231
+ authenticationFailed: '認証に失敗しました',
232
+ permissionDenied: '権限がありません',
233
+ fileNotFound: 'ファイルが見つかりません',
234
+ invalidFormat: 'フォーマットが無効です',
235
+ operationFailed: '操作に失敗しました',
236
+ tryAgain: '再試行してください',
237
+ contactSupport: '問題が続く場合はサポートにお問い合わせください',
238
+ sessionNotFound: 'セッションが見つかりません',
239
+ voiceSessionFailed: '音声セッションの開始に失敗しました',
240
+ voiceServiceUnavailable: '音声サービスは一時的に利用できません',
241
+ voiceLimitReachedTitle: '音声の上限に達しました',
242
+ voiceHardLimitReached: ({ hours }: { hours: number }) => `今月${hours}時間以上の音声を使用しました。これは許可される最大量です。音声設定で独自の ElevenLabs エージェントを設定して、自分のクォータを使用できます。`,
243
+ voiceConversationLimitReached: '今月の音声会話の最大数に達しました。将来的にオンデマンドの音声利用を追加する可能性があります。この制限に達した場合は、github.com/nastech-ai/nastech/issues で issue を作成してください。',
244
+ oauthInitializationFailed: 'OAuth フローの初期化に失敗しました',
245
+ tokenStorageFailed: '認証トークンの保存に失敗しました',
246
+ oauthStateMismatch: 'セキュリティ検証に失敗しました。再試行してください',
247
+ tokenExchangeFailed: '認可コードの交換に失敗しました',
248
+ oauthAuthorizationDenied: '認可が拒否されました',
249
+ webViewLoadFailed: '認証ページの読み込みに失敗しました',
250
+ failedToLoadProfile: 'ユーザープロフィールの読み込みに失敗しました',
251
+ userNotFound: 'ユーザーが見つかりません',
252
+ sessionDeleted: 'セッションは削除されました',
253
+ sessionDeletedDescription: 'このセッションは完全に削除されました',
254
+
255
+ // Error functions with context
256
+ fieldError: ({ field, reason }: { field: string; reason: string }) =>
257
+ `${field}: ${reason}`,
258
+ validationError: ({ field, min, max }: { field: string; min: number; max: number }) =>
259
+ `${field}は${min}から${max}の間である必要があります`,
260
+ retryIn: ({ seconds }: { seconds: number }) =>
261
+ `${seconds}秒後に再試行`,
262
+ errorWithCode: ({ message, code }: { message: string; code: number | string }) =>
263
+ `${message} (エラー ${code})`,
264
+ disconnectServiceFailed: ({ service }: { service: string }) =>
265
+ `${service}の切断に失敗しました`,
266
+ connectServiceFailed: ({ service }: { service: string }) =>
267
+ `${service}の接続に失敗しました。再試行してください。`,
268
+ failedToLoadFriends: '友達リストの読み込みに失敗しました',
269
+ failedToAcceptRequest: '友達リクエストの承認に失敗しました',
270
+ failedToRejectRequest: '友達リクエストの拒否に失敗しました',
271
+ failedToRemoveFriend: '友達の削除に失敗しました',
272
+ searchFailed: '検索に失敗しました。再試行してください。',
273
+ failedToSendRequest: '友達リクエストの送信に失敗しました',
274
+ },
275
+
276
+ newSession: {
277
+ title: '新しいセッションを開始',
278
+ machineOffline: 'マシンがオフラインです',
279
+ switchMachinesHint: '• 上のマシンをクリックしてマシンを切り替えてください',
280
+ },
281
+
282
+ sessionHistory: {
283
+ // Used by session history screen
284
+ title: 'セッション履歴',
285
+ empty: 'セッションが見つかりません',
286
+ today: '今日',
287
+ yesterday: '昨日',
288
+ daysAgo: ({ count }: { count: number }) => `${count}日前`,
289
+ viewAll: 'すべてのセッションを表示',
290
+ },
291
+
292
+ session: {
293
+ inputPlaceholder: 'メッセージを入力...',
294
+ inactiveArchived: 'このセッションは非アクティブです。',
295
+ resumeFromTerminal: 'ターミナルから再開するには:',
296
+ newChat: '新規チャット',
297
+ forkAction: 'セッションをフォーク',
298
+ forkSubtitle: '同じコンテキストで新しいセッションを続行',
299
+ duplicateAction: 'メッセージから複製…',
300
+ duplicateSubtitle: '選んだ地点まで巻き戻してやり直す',
301
+ forkFromHere: 'ここからフォーク',
302
+ duplicateSheetTitle: '巻き戻しポイントを選択',
303
+ duplicateSheetSubtitle: '新しいセッションは選んだターン全体(あなたのメッセージとエージェントの応答)を保持し、それ以降のメッセージは破棄します。',
304
+ duplicateSheetConfirm: '複製',
305
+ duplicateSheetEmpty: 'このセッションには巻き戻し可能なメッセージがまだありません。',
306
+ duplicateRowDisabled: 'このメッセージは巻き戻しポイントに使えません。',
307
+ forkedFromLabel: 'フォーク元',
308
+ forkedFromSubtitle: 'フォーク元のセッションを開く',
309
+ forkErrorOffline: 'マシンがオフラインです。セッションのマシンがオンラインの間のみフォークできます。',
310
+ forkErrorMissingUuid: '選んだ巻き戻しポイントがソースセッションに存在しません — 切り詰めなしのフォークをお試しください。',
311
+ forkErrorMissingMetadata: 'フォークに必要なセッションのメタデータがありません。',
312
+ forkErrorGeneric: 'セッションのフォークに失敗しました。',
313
+ forkClaudeOnly: 'フォークは現在 Claude セッションのみ対応しています。',
314
+ },
315
+
316
+ commandPalette: {
317
+ placeholder: 'コマンドを入力または検索...',
318
+ },
319
+
320
+ server: {
321
+ // Used by Server Configuration screen (app/(app)/server.tsx)
322
+ serverConfiguration: 'サーバー設定',
323
+ enterServerUrl: 'サーバーURLを入力してください',
324
+ notValidNasTechServer: '有効なNasTech Serverではありません',
325
+ changeServer: 'サーバーを変更',
326
+ continueWithServer: 'このサーバーで続行しますか?',
327
+ resetToDefault: 'デフォルトにリセット',
328
+ resetServerDefault: 'サーバーをデフォルトにリセットしますか?',
329
+ validating: '検証中...',
330
+ validatingServer: 'サーバーを検証中...',
331
+ serverReturnedError: 'サーバーがエラーを返しました',
332
+ failedToConnectToServer: 'サーバーへの接続に失敗しました',
333
+ currentlyUsingCustomServer: '現在カスタムサーバーを使用中',
334
+ customServerUrlLabel: 'カスタムサーバーURL',
335
+ advancedFeatureFooter: "これは高度な機能です。何をしているか理解している場合のみサーバーを変更してください。サーバー変更後は再度ログインが必要です。"
336
+ },
337
+
338
+ sessionInfo: {
339
+ // Used by Session Info screen (app/(app)/session/[id]/info.tsx)
340
+ killSession: 'セッションを終了',
341
+ killSessionConfirm: 'このセッションを終了してもよろしいですか?',
342
+ archiveSession: 'セッションをアーカイブ',
343
+ archiveSessionConfirm: 'このセッションをアーカイブしてもよろしいですか?',
344
+ nastechSessionIdCopied: 'NasTech Session IDがクリップボードにコピーされました',
345
+ failedToCopySessionId: 'NasTech Session IDのコピーに失敗しました',
346
+ nastechSessionId: 'NasTech Session ID',
347
+ claudeCodeSessionId: 'Claude Code Session ID',
348
+ claudeCodeSessionIdCopied: 'Claude Code Session IDがクリップボードにコピーされました',
349
+ codexThreadId: 'Codex Thread ID',
350
+ codexThreadIdCopied: 'Codex Thread IDがクリップボードにコピーされました',
351
+ aiProvider: 'AIプロバイダー',
352
+ failedToCopyClaudeCodeSessionId: 'Claude Code Session IDのコピーに失敗しました',
353
+ failedToCopyCodexThreadId: 'Codex Thread IDのコピーに失敗しました',
354
+ metadataCopied: 'メタデータがクリップボードにコピーされました',
355
+ failedToCopyMetadata: 'メタデータのコピーに失敗しました',
356
+ failedToKillSession: 'セッションの終了に失敗しました',
357
+ failedToArchiveSession: 'セッションのアーカイブに失敗しました',
358
+ connectionStatus: '接続状態',
359
+ created: '作成日時',
360
+ lastUpdated: '最終更新',
361
+ sequence: 'シーケンス',
362
+ quickActions: 'クイックアクション',
363
+ viewMachine: 'マシンを表示',
364
+ viewMachineSubtitle: 'マシンの詳細とセッションを表示',
365
+ resumeSession: 'Resume Session',
366
+ resumeSessionSubtitle: 'Resume this session on the same machine',
367
+ resumeSessionSameMachineOnly: 'This session can only be resumed on the same machine it started on.',
368
+ resumeSessionMachineOffline: 'This machine is offline. Resume is only available while it is online.',
369
+ resumeSessionNeedsNasTechAgent: 'Resume is unavailable on this machine. Run `nastech-agent auth login` to enable it.',
370
+ resumeSessionMissingMachine: 'This session is missing its machine metadata, so it cannot be resumed.',
371
+ resumeSessionMissingBackendId: 'This session does not have a resumable Claude or Codex identifier.',
372
+ resumeSessionUnexpectedDirectoryPrompt: 'Resume cannot create directories. Start the session manually from its original path.',
373
+ killSessionSubtitle: 'セッションを即座に終了',
374
+ archiveSessionSubtitle: 'このセッションをアーカイブして停止',
375
+ metadata: 'メタデータ',
376
+ host: 'ホスト',
377
+ path: 'パス',
378
+ operatingSystem: 'オペレーティングシステム',
379
+ processId: 'プロセスID',
380
+ nastechHome: 'NasTech Home',
381
+ copyMetadata: 'メタデータをコピー',
382
+ agentState: 'エージェント状態',
383
+ controlledByUser: 'ユーザーによる制御',
384
+ pendingRequests: '保留中のリクエスト',
385
+ activity: 'アクティビティ',
386
+ thinking: '思考中',
387
+ thinkingSince: '思考開始時刻',
388
+ cliVersion: 'CLIバージョン',
389
+ cliVersionOutdated: 'CLIの更新が必要',
390
+ cliVersionOutdatedMessage: ({ currentVersion, requiredVersion }: { currentVersion: string; requiredVersion: string }) =>
391
+ `バージョン ${currentVersion} がインストールされています。${requiredVersion} 以降に更新してください`,
392
+ updateCliInstructions: 'pip install -U nastech-agent を実行してください',
393
+ deleteSession: 'セッションを削除',
394
+ deleteSessionSubtitle: 'このセッションを完全に削除',
395
+ deleteSessionConfirm: 'セッションを完全に削除しますか?',
396
+ deleteSessionWarning: 'この操作は取り消せません。このセッションに関連するすべてのメッセージとデータが完全に削除されます。',
397
+ failedToDeleteSession: 'セッションの削除に失敗しました',
398
+ sessionDeleted: 'セッションが正常に削除されました',
399
+ worktreeCleanupTitle: 'Worktreeを削除しますか?',
400
+ worktreeCleanupMessage: 'Worktreeにコミットされていない変更はありません。Worktreeのファイルを削除しますか?',
401
+ worktreeCleanupDelete: 'Worktreeを削除',
402
+ worktreeCleanupKeep: 'ファイルを保持',
403
+
404
+ },
405
+
406
+ components: {
407
+ emptyMainScreen: {
408
+ // Used by EmptyMainScreen component
409
+ readyToCode: 'コーディングを始めますか?',
410
+ installCli: 'Install NasTech CLI',
411
+ runIt: '実行する',
412
+ scanQrCode: 'QRコードをスキャン',
413
+ openCamera: 'カメラを開く',
414
+ },
415
+ },
416
+
417
+ agentInput: {
418
+ permissionMode: {
419
+ title: '権限モード',
420
+ default: 'デフォルト',
421
+ acceptEdits: '編集を許可',
422
+ plan: 'プランモード',
423
+ dontAsk: '確認しない',
424
+ bypassPermissions: 'Yoloモード',
425
+ badgeAcceptAllEdits: 'すべての編集を許可',
426
+ badgeBypassAllPermissions: 'すべての権限をバイパス',
427
+ badgePlanMode: 'プランモード',
428
+ },
429
+ agent: {
430
+ claude: 'Claude',
431
+ codex: 'Codex',
432
+ gemini: 'Gemini',
433
+ openclaw: 'OpenClaw',
434
+ },
435
+ model: {
436
+ title: 'モデル',
437
+ configureInCli: 'CLIの設定でモデルを構成',
438
+ },
439
+ effort: {
440
+ title: 'エフォート',
441
+ },
442
+ codexPermissionMode: {
443
+ title: 'CODEX権限モード',
444
+ default: 'CLI設定',
445
+ readOnly: '読み取り専用モード',
446
+ safeYolo: 'セーフYOLO',
447
+ yolo: 'YOLO',
448
+ badgeReadOnly: '読み取り専用モード',
449
+ badgeSafeYolo: 'セーフYOLO',
450
+ badgeYolo: 'YOLO',
451
+ },
452
+ codexModel: {
453
+ title: 'CODEXモデル',
454
+ gpt5CodexLow: 'gpt-5-codex 低',
455
+ gpt5CodexMedium: 'gpt-5-codex 中',
456
+ gpt5CodexHigh: 'gpt-5-codex 高',
457
+ gpt5Minimal: 'GPT-5 最小',
458
+ gpt5Low: 'GPT-5 低',
459
+ gpt5Medium: 'GPT-5 中',
460
+ gpt5High: 'GPT-5 高',
461
+ },
462
+ geminiPermissionMode: {
463
+ title: 'GEMINI権限モード',
464
+ default: 'デフォルト',
465
+ autoEdit: '自動編集',
466
+ yolo: 'YOLO',
467
+ plan: 'プラン',
468
+ badgeAutoEdit: '自動編集',
469
+ badgeYolo: 'YOLO',
470
+ badgePlan: 'プラン',
471
+ },
472
+ context: {
473
+ remaining: ({ percent }: { percent: number }) => `残り ${percent}%`,
474
+ },
475
+ suggestion: {
476
+ fileLabel: 'ファイル',
477
+ folderLabel: 'フォルダ',
478
+ },
479
+ noMachinesAvailable: 'マシンなし',
480
+ },
481
+
482
+ machineLauncher: {
483
+ showLess: '折りたたむ',
484
+ showAll: ({ count }: { count: number }) => `すべて表示 (${count}パス)`,
485
+ enterCustomPath: 'カスタムパスを入力',
486
+ offlineUnableToSpawn: 'オフラインのため新しいセッションを生成できません',
487
+ },
488
+
489
+ sidebar: {
490
+ sessionsTitle: 'NasTech',
491
+ showArchived: 'アーカイブを表示',
492
+ hideArchived: 'アーカイブを非表示',
493
+ newSession: '新しいセッション',
494
+ },
495
+
496
+ zen: {
497
+ toggle: 'Zenモード',
498
+ },
499
+
500
+ toolView: {
501
+ input: '入力',
502
+ output: '出力',
503
+ },
504
+
505
+ toolGroup: {
506
+ editedFiles: ({ count }: { count: number }) => `${count}個のファイルを編集`,
507
+ readFiles: ({ count }: { count: number }) => `${count}個のファイルを読み取り`,
508
+ ranCommands: ({ count }: { count: number }) => `${count}個のコマンドを実行`,
509
+ searched: ({ count }: { count: number }) => `${count}回検索`,
510
+ fetchedUrls: ({ count }: { count: number }) => `${count}個のURLを取得`,
511
+ ranTasks: ({ count }: { count: number }) => `${count}個のタスクを実行`,
512
+ usedTools: ({ count }: { count: number }) => `${count}個のツールを使用`,
513
+ },
514
+
515
+ tools: {
516
+ fullView: {
517
+ description: '説明',
518
+ inputParams: '入力パラメータ',
519
+ output: '出力',
520
+ error: 'エラー',
521
+ completed: 'ツールが正常に完了しました',
522
+ noOutput: '出力がありません',
523
+ running: 'ツールを実行中...',
524
+ rawJsonDevMode: 'Raw JSON (開発モード)',
525
+ },
526
+ taskView: {
527
+ initializing: 'エージェントを初期化中...',
528
+ moreTools: ({ count }: { count: number }) => `+${count} 個のツール`,
529
+ },
530
+ askUserQuestion: {
531
+ submit: '回答を送信',
532
+ multipleQuestions: ({ count }: { count: number }) => `${count}件の質問`,
533
+ other: 'その他',
534
+ otherDescription: '自分の回答を入力',
535
+ otherPlaceholder: '回答を入力...',
536
+ },
537
+ multiEdit: {
538
+ editNumber: ({ index, total }: { index: number; total: number }) => `編集 ${index}/${total}`,
539
+ replaceAll: 'すべて置換',
540
+ },
541
+ names: {
542
+ task: 'タスク',
543
+ terminal: 'ターミナル',
544
+ searchFiles: 'ファイル検索',
545
+ search: '検索',
546
+ searchContent: 'コンテンツ検索',
547
+ listFiles: 'ファイル一覧',
548
+ planProposal: 'プラン提案',
549
+ readFile: 'ファイル読み取り',
550
+ editFile: 'ファイル編集',
551
+ writeFile: 'ファイル書き込み',
552
+ fetchUrl: 'URL取得',
553
+ readNotebook: 'ノートブック読み取り',
554
+ editNotebook: 'ノートブック編集',
555
+ todoList: 'Todoリスト',
556
+ webSearch: 'Web検索',
557
+ reasoning: '推論',
558
+ applyChanges: 'ファイルを更新',
559
+ viewDiff: '現在のファイル変更',
560
+ question: '質問',
561
+ },
562
+ desc: {
563
+ terminalCmd: ({ cmd }: { cmd: string }) => `ターミナル(cmd: ${cmd})`,
564
+ searchPattern: ({ pattern }: { pattern: string }) => `検索(pattern: ${pattern})`,
565
+ searchPath: ({ basename }: { basename: string }) => `検索(path: ${basename})`,
566
+ fetchUrlHost: ({ host }: { host: string }) => `URL取得(url: ${host})`,
567
+ editNotebookMode: ({ path, mode }: { path: string; mode: string }) => `ノートブック編集(file: ${path}, mode: ${mode})`,
568
+ todoListCount: ({ count }: { count: number }) => `Todoリスト(count: ${count})`,
569
+ webSearchQuery: ({ query }: { query: string }) => `Web検索(query: ${query})`,
570
+ grepPattern: ({ pattern }: { pattern: string }) => `grep(pattern: ${pattern})`,
571
+ multiEditEdits: ({ path, count }: { path: string; count: number }) => `${path} (${count}件の編集)`,
572
+ readingFile: ({ file }: { file: string }) => `${file}を読み取り中`,
573
+ writingFile: ({ file }: { file: string }) => `${file}に書き込み中`,
574
+ modifyingFile: ({ file }: { file: string }) => `${file}を変更中`,
575
+ modifyingFiles: ({ count }: { count: number }) => `${count}ファイルを変更中`,
576
+ modifyingMultipleFiles: ({ file, count }: { file: string; count: number }) => `${file} 他${count}件`,
577
+ showingDiff: '変更を表示中',
578
+ }
579
+ },
580
+
581
+ files: {
582
+ changes: '変更',
583
+ searchPlaceholder: 'ファイルを検索...',
584
+ detachedHead: 'detached HEAD',
585
+ summary: ({ staged, unstaged }: { staged: number; unstaged: number }) => `ステージ済み ${staged} • 未ステージ ${unstaged}`,
586
+ notRepo: 'Gitリポジトリではありません',
587
+ notUnderGit: 'このディレクトリはGitバージョン管理下にありません',
588
+ searching: 'ファイルを検索中...',
589
+ noFilesFound: 'ファイルが見つかりません',
590
+ noFilesInProject: 'プロジェクトにファイルがありません',
591
+ tryDifferentTerm: '別の検索語を試してください',
592
+ searchResults: ({ count }: { count: number }) => `検索結果 (${count})`,
593
+ projectRoot: 'プロジェクトルート',
594
+ stagedChanges: ({ count }: { count: number }) => `ステージ済みの変更 (${count})`,
595
+ unstagedChanges: ({ count }: { count: number }) => `未ステージの変更 (${count})`,
596
+ // File viewer strings
597
+ loadingFile: ({ fileName }: { fileName: string }) => `${fileName}を読み込み中...`,
598
+ binaryFile: 'バイナリファイル',
599
+ cannotDisplayBinary: 'バイナリファイルの内容を表示できません',
600
+ diff: '差分',
601
+ file: 'ファイル',
602
+ fileEmpty: 'ファイルは空です',
603
+ noChanges: '表示する変更はありません',
604
+ noChangesTitle: '変更なし',
605
+ noChangesSubtitle: 'ワーキングツリーはクリーンです',
606
+ deleted: '削除済み',
607
+ changedFiles: ({ count }: { count: number }) => `${count}件の変更ファイル`,
608
+ allFiles: 'すべてのファイル',
609
+ editFile: '編集',
610
+ saveFile: '保存',
611
+ failedToRead: 'ファイルの読み取りに失敗しました',
612
+ failedToSave: 'ファイルの保存に失敗しました',
613
+ fileConflict: 'ファイルの競合',
614
+ fileConflictDescription: '編集中にデバイス上でファイルが変更されました。最新版を表示するには再読み込みしてください。',
615
+ reload: '再読み込み',
616
+ overwrite: '上書き',
617
+ },
618
+
619
+ settingsVoice: {
620
+ // Voice settings screen
621
+ languageTitle: '言語',
622
+ languageDescription: '音声アシスタントの操作に使用する言語を選択します。この設定はすべてのデバイスで同期されます。',
623
+ preferredLanguage: '優先言語',
624
+ preferredLanguageSubtitle: '音声アシスタントの応答に使用する言語',
625
+ language: {
626
+ searchPlaceholder: '言語を検索...',
627
+ title: '言語',
628
+ footer: ({ count }: { count: number }) => `${count}言語が利用可能`,
629
+ autoDetect: '自動検出',
630
+ },
631
+ // Bring your own agent
632
+ byoTitle: '自分のエージェントを使う',
633
+ byoDescription: 'NasTech のデフォルトの代わりに、独自の ElevenLabs エージェントを使用します。サブスクリプション不要 — 自分の ElevenLabs アカウントで直接接続できます。エージェントには2つのクライアントツールを定義する必要があります: messageClaudeCode(コーディングエージェントにテキストを送信)と processPermissionRequest(ツール使用を許可または拒否)。セッションコンテキストは {{initialConversationContext}} 動的変数を通じて受信されます。',
634
+ customAgentId: 'ElevenLabs Agent ID',
635
+ customAgentIdNotSet: '未設定',
636
+ customAgentIdDescription: 'ElevenLabs Agent ID を入力してください。空のままにすると NasTech のデフォルトが使用されます。',
637
+ customAgentIdPlaceholder: 'e.g. abc123def456',
638
+ bypassToken: '直接接続',
639
+ bypassTokenSubtitle: 'NasTech サーバーをスキップし、ElevenLabs に直接接続',
640
+ promptGuideTitle: 'エージェントプロンプトガイド',
641
+ promptGuideDescription: 'ElevenLabs エージェントには以下が必要です:\n\n• ツール: messageClaudeCode — パラメータ: message (string)。アクティブなコーディングセッションにメッセージを送信します。\n• ツール: processPermissionRequest — パラメータ: decision ("allow" または "deny")。保留中のツール許可を承認または拒否します。\n• 動的変数: {{initialConversationContext}} — 開始時にセッション履歴とコンテキストを受信します。\n\nエージェントはユーザーとコーディングエージェント間の音声ブリッジとして機能します。簡潔に、話しかけられた時のみ応答し、コーディングエージェントが作業を完了したら報告する必要があります。',
642
+ usageTitle: '使用状況(過去30日間)',
643
+ usageFooter: '過去30日間に使用した音声時間。無料プラン: 20分。サブスクリプション: 5時間。月間最大100会話。',
644
+ usageLabel: '音声時間',
645
+ conversationsLabel: '会話',
646
+ usageUsed: ({ used, limit }: { used: string; limit: string }) => `${limit}中${used}使用済み`,
647
+ supportTitle: '音声をアップグレード',
648
+ supportSubtitle: '音声時間を増やして開発を支援',
649
+ },
650
+
651
+ settingsAccount: {
652
+ // Account settings screen
653
+ accountInformation: 'アカウント情報',
654
+ status: 'ステータス',
655
+ statusActive: 'アクティブ',
656
+ statusNotAuthenticated: '未認証',
657
+ anonymousId: '匿名ID',
658
+ publicId: '公開ID',
659
+ notAvailable: '利用不可',
660
+ linkNewDevice: '新しいデバイスをリンク',
661
+ linkNewDeviceSubtitle: 'QRコードをスキャンしてデバイスをリンク',
662
+ profile: 'プロフィール',
663
+ name: '名前',
664
+ github: 'GitHub',
665
+ tapToDisconnect: 'タップして切断',
666
+ server: 'サーバー',
667
+ backup: 'バックアップ',
668
+ backupDescription: 'シークレットキーはアカウントを復元する唯一の方法です。パスワードマネージャーなどの安全な場所に保存してください。',
669
+ secretKey: 'シークレットキー',
670
+ tapToReveal: 'タップして表示',
671
+ tapToHide: 'タップして非表示',
672
+ secretKeyLabel: 'シークレットキー (タップでコピー)',
673
+ secretKeyCopied: 'シークレットキーがクリップボードにコピーされました。安全な場所に保管してください!',
674
+ secretKeyCopyFailed: 'シークレットキーのコピーに失敗しました',
675
+ privacy: 'プライバシー',
676
+ privacyDescription: '匿名の使用データを共有してアプリの改善にご協力ください。個人情報は収集されません。',
677
+ analytics: 'アナリティクス',
678
+ analyticsDisabled: 'データは共有されません',
679
+ analyticsEnabled: '匿名の使用データが共有されます',
680
+ dangerZone: '危険ゾーン',
681
+ logout: 'ログアウト',
682
+ logoutSubtitle: 'サインアウトしてローカルデータを消去',
683
+ logoutConfirm: 'ログアウトしてもよろしいですか?シークレットキーのバックアップを取っていることを確認してください!',
684
+ },
685
+
686
+ settingsLanguage: {
687
+ // Language settings screen
688
+ title: '言語',
689
+ description: 'アプリインターフェースの言語を選択します。この設定はすべてのデバイスで同期されます。',
690
+ currentLanguage: '現在の言語',
691
+ automatic: '自動',
692
+ automaticSubtitle: 'デバイス設定から検出',
693
+ needsRestart: '言語が変更されました',
694
+ needsRestartMessage: '新しい言語設定を適用するにはアプリの再起動が必要です。',
695
+ restartNow: '今すぐ再起動',
696
+ },
697
+
698
+ connectButton: {
699
+ authenticate: 'ターミナルを認証',
700
+ authenticateWithUrlPaste: 'URLペーストでターミナルを認証',
701
+ pasteAuthUrl: 'ターミナルから認証URLを貼り付け',
702
+ },
703
+
704
+ updateBanner: {
705
+ updateAvailable: 'アップデートが利用可能',
706
+ pressToApply: 'タップしてアップデートを適用',
707
+ whatsNew: "新機能",
708
+ seeLatest: '最新のアップデートと改善を確認',
709
+ nativeUpdateAvailable: 'アプリのアップデートが利用可能',
710
+ tapToUpdateAppStore: 'タップしてApp Storeで更新',
711
+ tapToUpdatePlayStore: 'タップしてPlay Storeで更新',
712
+ },
713
+
714
+ changelog: {
715
+ // Used by the changelog screen
716
+ version: ({ version }: { version: number }) => `バージョン ${version}`,
717
+ noEntriesAvailable: '変更履歴はありません。',
718
+ },
719
+
720
+ terminal: {
721
+ // Used by terminal connection screens
722
+ webBrowserRequired: 'Webブラウザが必要です',
723
+ webBrowserRequiredDescription: 'ターミナル接続リンクはセキュリティ上の理由からWebブラウザでのみ開くことができます。QRコードスキャナーを使用するか、コンピューターでこのリンクを開いてください。',
724
+ processingConnection: '接続を処理中...',
725
+ invalidConnectionLink: '無効な接続リンク',
726
+ invalidConnectionLinkDescription: '接続リンクが見つからないか無効です。URLを確認して再試行してください。',
727
+ connectTerminal: 'ターミナルを接続',
728
+ terminalRequestDescription: 'ターミナルがNasTechアカウントへの接続を要求しています。これにより、ターミナルは安全にメッセージを送受信できるようになります。',
729
+ connectionDetails: '接続の詳細',
730
+ publicKey: '公開鍵',
731
+ encryption: '暗号化',
732
+ endToEndEncrypted: 'エンドツーエンド暗号化',
733
+ acceptConnection: '接続を承認',
734
+ connecting: '接続中...',
735
+ reject: '拒否',
736
+ security: 'セキュリティ',
737
+ securityFooter: 'この接続リンクはブラウザ内で安全に処理され、サーバーには送信されませんでした。あなたのプライベートデータは安全に保たれ、メッセージを復号できるのはあなただけです。',
738
+ securityFooterDevice: 'この接続はデバイス上で安全に処理され、サーバーには送信されませんでした。あなたのプライベートデータは安全に保たれ、メッセージを復号できるのはあなただけです。',
739
+ clientSideProcessing: 'クライアントサイド処理',
740
+ linkProcessedLocally: 'リンクはブラウザ内でローカルに処理されました',
741
+ linkProcessedOnDevice: 'リンクはデバイス上でローカルに処理されました',
742
+ },
743
+
744
+ modals: {
745
+ // Used across connect flows and settings
746
+ authenticateTerminal: 'ターミナルを認証',
747
+ pasteUrlFromTerminal: 'ターミナルから認証URLを貼り付けてください',
748
+ deviceLinkedSuccessfully: 'デバイスが正常にリンクされました',
749
+ terminalConnectedSuccessfully: 'ターミナルが正常に接続されました',
750
+ invalidAuthUrl: '無効な認証URL',
751
+ developerMode: '開発者モード',
752
+ developerModeEnabled: '開発者モードが有効になりました',
753
+ developerModeDisabled: '開発者モードが無効になりました',
754
+ disconnectGithub: 'GitHubを切断',
755
+ disconnectGithubConfirm: 'GitHubアカウントを切断してもよろしいですか?',
756
+ disconnectService: ({ service }: { service: string }) =>
757
+ `${service}を切断`,
758
+ disconnectServiceConfirm: ({ service }: { service: string }) =>
759
+ `${service}をアカウントから切断してもよろしいですか?`,
760
+ disconnect: '切断',
761
+ failedToConnectTerminal: 'ターミナルの接続に失敗しました',
762
+ cameraPermissionsRequiredToConnectTerminal: 'ターミナルの接続にはカメラの権限が必要です',
763
+ failedToLinkDevice: 'デバイスのリンクに失敗しました',
764
+ cameraPermissionsRequiredToScanQr: 'QRコードのスキャンにはカメラの権限が必要です'
765
+ },
766
+
767
+ navigation: {
768
+ // Navigation titles and screen headers
769
+ connectTerminal: 'ターミナルを接続',
770
+ linkNewDevice: '新しいデバイスをリンク',
771
+ restoreWithSecretKey: 'シークレットキーで復元',
772
+ whatsNew: "新機能",
773
+ friends: '友達',
774
+ },
775
+
776
+ welcome: {
777
+ // Main welcome screen for unauthenticated users
778
+ title: 'CodexとClaude Codeのモバイルクライアント',
779
+ subtitle: 'エンドツーエンド暗号化され、アカウントはデバイスにのみ保存されます。',
780
+ createAccount: 'アカウントを作成',
781
+ linkOrRestoreAccount: 'アカウントをリンクまたは復元',
782
+ loginWithMobileApp: 'モバイルアプリでログイン',
783
+ },
784
+
785
+ review: {
786
+ // Used by utils/requestReview.ts
787
+ enjoyingApp: 'アプリを気に入っていただけましたか?',
788
+ feedbackPrompt: "ご意見をお聞かせください!",
789
+ yesILoveIt: 'はい、気に入りました!',
790
+ notReally: 'あまり...'
791
+ },
792
+
793
+ items: {
794
+ // Used by Item component for copy toast
795
+ copiedToClipboard: ({ label }: { label: string }) => `${label}がクリップボードにコピーされました`
796
+ },
797
+
798
+ machine: {
799
+ launchNewSessionInDirectory: 'ディレクトリで新しいセッションを起動',
800
+ offlineUnableToSpawn: 'マシンがオフラインのためランチャーは無効です',
801
+ offlineHelp: '• コンピューターがオンラインであることを確認してください\n• `nastech daemon status`を実行して診断してください\n• 最新のCLIバージョンを使用していますか?`pip install -U nastech-agent`でアップグレードしてください',
802
+ daemon: 'デーモン',
803
+ status: 'ステータス',
804
+ stopDaemon: 'デーモンを停止',
805
+ lastKnownPid: '最後に確認されたPID',
806
+ lastKnownHttpPort: '最後に確認されたHTTPポート',
807
+ startedAt: '開始時刻',
808
+ cliVersion: 'CLIバージョン',
809
+ daemonStateVersion: 'デーモン状態バージョン',
810
+ activeSessions: ({ count }: { count: number }) => `アクティブセッション (${count})`,
811
+ machineGroup: 'マシン',
812
+ host: 'ホスト',
813
+ machineId: 'マシンID',
814
+ username: 'ユーザー名',
815
+ homeDirectory: 'ホームディレクトリ',
816
+ platform: 'プラットフォーム',
817
+ architecture: 'アーキテクチャ',
818
+ lastSeen: '最終確認',
819
+ never: 'なし',
820
+ metadataVersion: 'メタデータバージョン',
821
+ cliAvailability: 'CLI利用可否',
822
+ cliInstalled: 'インストール済み',
823
+ cliNotFound: '未検出',
824
+ lastDetected: '最終検出',
825
+ untitledSession: '無題のセッション',
826
+ back: '戻る',
827
+ dangerZone: '危険ゾーン',
828
+ delete: 'マシンを削除',
829
+ deleteFooter: 'このマシンをアカウントから削除します。セッション履歴は保持されますが、このマシンで新しいセッションを起動できなくなります。',
830
+ deleteConfirmTitle: 'このマシンを削除しますか?',
831
+ deleteConfirmMessage: 'マシンがアカウントから削除されます。セッション履歴は保持されますが、デーモンを再接続するまで新しいセッションを起動できません。',
832
+ deleteFailed: 'マシンの削除に失敗しました。',
833
+ },
834
+
835
+ message: {
836
+ switchedToMode: ({ mode }: { mode: string }) => `${mode}モードに切り替えました`,
837
+ unknownEvent: '不明なイベント',
838
+ usageLimitUntil: ({ time }: { time: string }) => `${time}まで使用制限中`,
839
+ unknownTime: '不明な時間',
840
+ },
841
+
842
+ codex: {
843
+ // Codex permission dialog buttons
844
+ permissions: {
845
+ yesForSession: "はい、このセッションでは確認しない",
846
+ stopAndExplain: '停止して、何をすべきか説明',
847
+ }
848
+ },
849
+
850
+ claude: {
851
+ // Claude permission dialog buttons
852
+ permissions: {
853
+ yesAllowAllEdits: 'はい、このセッション中のすべての編集を許可',
854
+ yesAllowEverything: 'はい、このセッション中のすべてを許可',
855
+ yesForTool: "はい、このツールについては確認しない",
856
+ noTellClaude: 'いいえ、フィードバックを提供',
857
+ }
858
+ },
859
+
860
+ textSelection: {
861
+ // Text selection screen
862
+ selectText: 'テキスト範囲を選択',
863
+ title: 'テキストを選択',
864
+ noTextProvided: 'テキストが提供されていません',
865
+ textNotFound: 'テキストが見つからないか期限切れです',
866
+ textCopied: 'テキストがクリップボードにコピーされました',
867
+ failedToCopy: 'テキストのクリップボードへのコピーに失敗しました',
868
+ noTextToCopy: 'コピーできるテキストがありません',
869
+ },
870
+
871
+ markdown: {
872
+ // Markdown copy functionality
873
+ codeCopied: 'コードをコピーしました',
874
+ copyFailed: 'コピーに失敗しました',
875
+ mermaidRenderFailed: 'Mermaidダイアグラムのレンダリングに失敗しました',
876
+ },
877
+
878
+ artifacts: {
879
+ // Artifacts feature
880
+ title: 'アーティファクト',
881
+ countSingular: '1件のアーティファクト',
882
+ countPlural: ({ count }: { count: number }) => `${count}件のアーティファクト`,
883
+ empty: 'アーティファクトはまだありません',
884
+ emptyDescription: '最初のアーティファクトを作成して始めましょう',
885
+ new: '新規アーティファクト',
886
+ edit: 'アーティファクトを編集',
887
+ delete: '削除',
888
+ updateError: 'アーティファクトの更新に失敗しました。再試行してください。',
889
+ notFound: 'アーティファクトが見つかりません',
890
+ discardChanges: '変更を破棄しますか?',
891
+ discardChangesDescription: '保存されていない変更があります。破棄してもよろしいですか?',
892
+ deleteConfirm: 'アーティファクトを削除しますか?',
893
+ deleteConfirmDescription: 'この操作は取り消せません',
894
+ titleLabel: 'タイトル',
895
+ titlePlaceholder: 'アーティファクトのタイトルを入力',
896
+ bodyLabel: 'コンテンツ',
897
+ bodyPlaceholder: 'ここにコンテンツを書いてください...',
898
+ emptyFieldsError: 'タイトルまたはコンテンツを入力してください',
899
+ createError: 'アーティファクトの作成に失敗しました。再試行してください。',
900
+ save: '保存',
901
+ saving: '保存中...',
902
+ loading: 'アーティファクトを読み込み中...',
903
+ error: 'アーティファクトの読み込みに失敗しました',
904
+ },
905
+
906
+ friends: {
907
+ // Friends feature
908
+ title: '友達',
909
+ manageFriends: '友達とつながりを管理',
910
+ searchTitle: '友達を探す',
911
+ pendingRequests: '友達リクエスト',
912
+ myFriends: 'マイフレンド',
913
+ noFriendsYet: "まだ友達がいません",
914
+ findFriends: '友達を探す',
915
+ remove: '削除',
916
+ pendingRequest: '保留中',
917
+ sentOn: ({ date }: { date: string }) => `送信日: ${date}`,
918
+ accept: '承認',
919
+ reject: '拒否',
920
+ addFriend: '友達を追加',
921
+ alreadyFriends: '既に友達です',
922
+ requestPending: 'リクエスト保留中',
923
+ searchInstructions: '友達を検索するにはユーザー名を入力してください',
924
+ searchPlaceholder: 'ユーザー名を入力...',
925
+ searching: '検索中...',
926
+ userNotFound: 'ユーザーが見つかりません',
927
+ noUserFound: 'そのユーザー名のユーザーが見つかりません',
928
+ checkUsername: 'ユーザー名を確認して再試行してください',
929
+ howToFind: '友達を見つける方法',
930
+ findInstructions: 'ユーザー名で友達を検索します。友達リクエストを送信するには、両方のユーザーがGitHubを接続している必要があります。',
931
+ requestSent: '友達リクエストが送信されました!',
932
+ requestAccepted: '友達リクエストが承認されました!',
933
+ requestRejected: '友達リクエストが拒否されました',
934
+ friendRemoved: '友達が削除されました',
935
+ confirmRemove: '友達を削除',
936
+ confirmRemoveMessage: 'この友達を削除してもよろしいですか?',
937
+ cannotAddYourself: '自分自身に友達リクエストを送信することはできません',
938
+ bothMustHaveGithub: '友達になるには、両方のユーザーがGitHubを接続している必要があります',
939
+ status: {
940
+ none: '未接続',
941
+ requested: 'リクエスト送信済み',
942
+ pending: 'リクエスト保留中',
943
+ friend: '友達',
944
+ rejected: '拒否済み',
945
+ },
946
+ acceptRequest: 'リクエストを承認',
947
+ removeFriend: '友達を削除',
948
+ removeFriendConfirm: ({ name }: { name: string }) => `${name}さんを友達から削除してもよろしいですか?`,
949
+ requestSentDescription: ({ name }: { name: string }) => `${name}さんに友達リクエストが送信されました`,
950
+ requestFriendship: '友達リクエストを送信',
951
+ cancelRequest: '友達リクエストをキャンセル',
952
+ cancelRequestConfirm: ({ name }: { name: string }) => `${name}さんへの友達リクエストをキャンセルしますか?`,
953
+ denyRequest: '友達リクエストを拒否',
954
+ nowFriendsWith: ({ name }: { name: string }) => `${name}さんと友達になりました`,
955
+ },
956
+
957
+ usage: {
958
+ // Usage panel strings
959
+ today: '今日',
960
+ last7Days: '過去7日間',
961
+ last30Days: '過去30日間',
962
+ totalTokens: '合計トークン',
963
+ totalCost: '合計コスト',
964
+ tokens: 'トークン',
965
+ cost: 'コスト',
966
+ usageOverTime: '使用量の推移',
967
+ byModel: 'モデル別',
968
+ noData: '使用データがありません',
969
+ },
970
+
971
+ imageUpload: {
972
+ permissionTitle: 'フォトライブラリへのアクセス',
973
+ permissionMessage: 'メッセージに画像を添付するには、フォトライブラリへのアクセスを許可してください。',
974
+ limitTitle: '画像の上限に達しました',
975
+ limitMessage: ({ max }: { max: number }) => `1メッセージに添付できる画像は最大${max}枚です。`,
976
+ fileTooLargeTitle: 'ファイルが大きすぎます',
977
+ fileTooLargeMessage: ({ name, maxMb }: { name: string; maxMb: number }) => `"${name}"は${maxMb}MBの制限を超えているため追加されませんでした。`,
978
+ uploadFailedTitle: 'アップロードに失敗しました',
979
+ uploadFailedMessage: ({ count }: { count: number }) => count === 1
980
+ ? '1枚の画像をアップロードできず、送信されませんでした。'
981
+ : `${count}枚の画像をアップロードできず、送信されませんでした。`,
982
+ notSupportedTitle: '画像はサポートされていません',
983
+ notSupportedMessage: 'このエージェントは画像の添付に対応していません。テキストのみが送信されました。',
984
+ },
985
+
986
+ feed: {
987
+ // Feed notifications for friend requests and acceptances
988
+ friendRequestFrom: ({ name }: { name: string }) => `${name}さんから友達リクエストが届きました`,
989
+ friendRequestGeneric: '新しい友達リクエスト',
990
+ friendAccepted: ({ name }: { name: string }) => `${name}さんと友達になりました`,
991
+ friendAcceptedGeneric: '友達リクエストが承認されました',
992
+ }
993
+ } as const;