@popcraft/cli 0.42.1 → 0.42.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/popcraft.mjs +770 -107
- package/package.json +2 -2
package/dist/popcraft.mjs
CHANGED
|
@@ -1196,7 +1196,7 @@ function operations(spec = openapi) {
|
|
|
1196
1196
|
}
|
|
1197
1197
|
async function call(target2, method, path, opts = {}) {
|
|
1198
1198
|
const qs = new URLSearchParams(opts.query ?? {}).toString();
|
|
1199
|
-
const headers = { "user-agent": `popcraft-cli/${"0.42.
|
|
1199
|
+
const headers = { "user-agent": `popcraft-cli/${"0.42.3"}`, ...opts.headers };
|
|
1200
1200
|
if (target2.token) headers.authorization = `Bearer ${target2.token}`;
|
|
1201
1201
|
if (opts.contentType) headers["content-type"] = opts.contentType;
|
|
1202
1202
|
try {
|
|
@@ -8633,6 +8633,7 @@ var init_headless = __esm({
|
|
|
8633
8633
|
SIGNIN_DOMAINS = /* @__PURE__ */ new Set(["file", "collab", "library", "version", "plan", "photo", "media", "integration"]);
|
|
8634
8634
|
APP_ONLY = /* @__PURE__ */ new Set([
|
|
8635
8635
|
"ai.open",
|
|
8636
|
+
"agent.continue",
|
|
8636
8637
|
"panel.open",
|
|
8637
8638
|
"panel.toggle",
|
|
8638
8639
|
"dialog.open",
|
|
@@ -32082,11 +32083,14 @@ var init_en2 = __esm({
|
|
|
32082
32083
|
"agentPanel.atTheStartOfA": "at the start of a message to pick a skill.",
|
|
32083
32084
|
"agentPanel.changeTheAgentModel": "Change the agent model",
|
|
32084
32085
|
"agentPanel.chats": "Chats",
|
|
32086
|
+
"agentPanel.continue": "Continue",
|
|
32087
|
+
"agentPanel.continueHint": "Pick the turn up where it stopped",
|
|
32085
32088
|
"agentPanel.createAndEditSkillsAnd": "Create and edit skills and agent profiles",
|
|
32086
32089
|
"agentPanel.deleteChat": "Delete chat",
|
|
32087
32090
|
"agentPanel.manage": "Manage",
|
|
32088
32091
|
"agentPanel.messageCount": "{count, plural, one {# message} other {# messages}}",
|
|
32089
32092
|
"agentPanel.newChat": "New chat",
|
|
32093
|
+
"agentPanel.resuming": "Resuming\u2026",
|
|
32090
32094
|
"agentPanel.sendEnter": "Send (Enter)",
|
|
32091
32095
|
"agentPanel.skill": "Skill: {name}",
|
|
32092
32096
|
"agentPanel.skills": "Skills",
|
|
@@ -34420,6 +34424,10 @@ var init_en2 = __esm({
|
|
|
34420
34424
|
"mentionInput.someone": "Someone",
|
|
34421
34425
|
"mentionMenu.removeMention": "Remove mention",
|
|
34422
34426
|
"messageParts.fromPlugin": "From the {plugin} plugin",
|
|
34427
|
+
"messageParts.noticeNoChange": "The agent finished without changing the document",
|
|
34428
|
+
"messageParts.noticeNudge": "Nothing has changed yet \u2014 asked the agent to make the change ({count} of {max})",
|
|
34429
|
+
"messageParts.noticeReadBudget": "Enough reading \u2014 asked the agent to start making the change",
|
|
34430
|
+
"messageParts.noticeResumed": "Resumed where it left off",
|
|
34423
34431
|
"messageParts.plan": "Plan",
|
|
34424
34432
|
"messageParts.pluginTool": "{plugin} \xB7 {tool}",
|
|
34425
34433
|
"messageParts.renderedView": "Rendered view",
|
|
@@ -35016,6 +35024,7 @@ var init_en2 = __esm({
|
|
|
35016
35024
|
"planBadge.freePlan": "Free plan",
|
|
35017
35025
|
"planDialog.aICredits": "AI credits",
|
|
35018
35026
|
"planDialog.aICreditsLeft": "AI credits left",
|
|
35027
|
+
"planDialog.appleIdTeamSlotTaken": "An Apple Account can hold one personal and one team subscription in PopCraft. The team subscription on this Apple Account is already on another team.",
|
|
35019
35028
|
"planDialog.billedToTheTeamSelected": "Once your plan's AI credits are used up, AI is pay as you go, billed by usage.",
|
|
35020
35029
|
"planDialog.billedYearly": "{price} billed yearly",
|
|
35021
35030
|
"planDialog.billing": "Billing period",
|
|
@@ -37081,6 +37090,11 @@ var require_es = __commonJS({
|
|
|
37081
37090
|
"audioMeter.thisTimelineHasNoSound": "Esta l\xEDnea de tiempo a\xFAn no tiene sonido: a\xF1ade audio en sus pistas para impulsarlo.",
|
|
37082
37091
|
"backgroundTasks.backgroundTasks": "Tareas en segundo plano{value}",
|
|
37083
37092
|
"backgroundTasks.cancelThisBackgroundTask": "Cancelar esta tarea en segundo plano",
|
|
37093
|
+
"backgroundTasks.hideSteps": "Ocultar sus pasos",
|
|
37094
|
+
"backgroundTasks.noStepsYet": "A\xFAn no hay pasos.",
|
|
37095
|
+
"backgroundTasks.queued": "En cola",
|
|
37096
|
+
"backgroundTasks.showSteps": "Mostrar sus pasos",
|
|
37097
|
+
"backgroundTasks.stepRunning": "Ejecut\xE1ndose\u2026",
|
|
37084
37098
|
"bezierEditor.asCSS": "Como CSS",
|
|
37085
37099
|
"bezierEditor.copyThisCurve": "Copiar esta curva",
|
|
37086
37100
|
"bezierEditor.curve": "Curva",
|
|
@@ -39192,7 +39206,9 @@ var require_es = __commonJS({
|
|
|
39192
39206
|
"mentionInput.addReaction": "A\xF1adir reacci\xF3n",
|
|
39193
39207
|
"mentionInput.someone": "Alguien",
|
|
39194
39208
|
"mentionMenu.removeMention": "Eliminar menci\xF3n",
|
|
39209
|
+
"messageParts.fromPlugin": "Del plugin {plugin}",
|
|
39195
39210
|
"messageParts.plan": "Plan",
|
|
39211
|
+
"messageParts.pluginTool": "{plugin} \xB7 {tool}",
|
|
39196
39212
|
"messageParts.renderedView": "Vista renderizada",
|
|
39197
39213
|
"messageParts.thinking": "Pensando",
|
|
39198
39214
|
"minimap.minimapTapOrDragTo": "Minimapa \u2014 toca o arrastra para mover la vista, doble toque para ajustar la p\xE1gina",
|
|
@@ -39787,6 +39803,7 @@ var require_es = __commonJS({
|
|
|
39787
39803
|
"planBadge.freePlan": "Plan gratuito",
|
|
39788
39804
|
"planDialog.aICredits": "Cr\xE9ditos de IA",
|
|
39789
39805
|
"planDialog.aICreditsLeft": "Cr\xE9ditos de IA restantes",
|
|
39806
|
+
"planDialog.appleIdTeamSlotTaken": "Una cuenta de Apple puede tener una suscripci\xF3n personal y una de equipo en PopCraft. La suscripci\xF3n de equipo de esta cuenta de Apple ya est\xE1 en otro equipo.",
|
|
39790
39807
|
"planDialog.billedToTheTeamSelected": "Una vez que se agoten los cr\xE9ditos de IA de tu plan, la IA se facturar\xE1 por uso.",
|
|
39791
39808
|
"planDialog.billedYearly": "{price} facturado anualmente",
|
|
39792
39809
|
"planDialog.billing": "Per\xEDodo de facturaci\xF3n",
|
|
@@ -39867,6 +39884,8 @@ var require_es = __commonJS({
|
|
|
39867
39884
|
"pluginImport.noImporterIsInstalledFor": "No hay ning\xFAn importador instalado para \u201C{name}\u201D",
|
|
39868
39885
|
"pluginImport.openAFileToImport": "Abrir un archivo para importar en",
|
|
39869
39886
|
"pluginImport.producedNoLayers": "\u201C{name}\u201D no produjo capas",
|
|
39887
|
+
"pluginOverlays.addAgentTools": "Dar al agente de IA {count, plural, one {# herramienta} other {# herramientas}} que ejecutan este plugin",
|
|
39888
|
+
"pluginOverlays.addsAgentTools": "A\xF1ade {count, plural, one {# herramienta de agente} other {# herramientas de agente}}",
|
|
39870
39889
|
"pluginOverlays.addsExport": "A\xF1ade Archivo \u203A Exportar \u203A {label}",
|
|
39871
39890
|
"pluginOverlays.allowAndRun": "Permitir y ejecutar",
|
|
39872
39891
|
"pluginOverlays.allowTo": "Permitir a \u201C{name}\u201D:",
|
|
@@ -41850,6 +41869,11 @@ var require_fr = __commonJS({
|
|
|
41850
41869
|
"audioMeter.thisTimelineHasNoSound": "Cette timeline n\u2019a pas encore de son : ajoutez de l\u2019audio sur ses pistes pour l\u2019activer.",
|
|
41851
41870
|
"backgroundTasks.backgroundTasks": "T\xE2ches en arri\xE8re-plan{value}",
|
|
41852
41871
|
"backgroundTasks.cancelThisBackgroundTask": "Annuler cette t\xE2che en arri\xE8re-plan",
|
|
41872
|
+
"backgroundTasks.hideSteps": "Masquer ses \xE9tapes",
|
|
41873
|
+
"backgroundTasks.noStepsYet": "Aucune \xE9tape pour l\u2019instant.",
|
|
41874
|
+
"backgroundTasks.queued": "En attente",
|
|
41875
|
+
"backgroundTasks.showSteps": "Afficher ses \xE9tapes",
|
|
41876
|
+
"backgroundTasks.stepRunning": "Ex\xE9cution en cours\u2026",
|
|
41853
41877
|
"bezierEditor.asCSS": "En CSS",
|
|
41854
41878
|
"bezierEditor.copyThisCurve": "Copier cette courbe",
|
|
41855
41879
|
"bezierEditor.curve": "Courbe",
|
|
@@ -43961,7 +43985,9 @@ var require_fr = __commonJS({
|
|
|
43961
43985
|
"mentionInput.addReaction": "Ajouter une r\xE9action",
|
|
43962
43986
|
"mentionInput.someone": "Quelqu\u2019un",
|
|
43963
43987
|
"mentionMenu.removeMention": "Supprimer la mention",
|
|
43988
|
+
"messageParts.fromPlugin": "Du plug-in {plugin}",
|
|
43964
43989
|
"messageParts.plan": "Plan",
|
|
43990
|
+
"messageParts.pluginTool": "{plugin} \xB7 {tool}",
|
|
43965
43991
|
"messageParts.renderedView": "Vue rendue",
|
|
43966
43992
|
"messageParts.thinking": "R\xE9flexion",
|
|
43967
43993
|
"minimap.minimapTapOrDragTo": "Minicarte \u2014 touchez ou faites glisser pour d\xE9placer la vue, double-touchez pour ajuster \xE0 la page",
|
|
@@ -44556,6 +44582,7 @@ var require_fr = __commonJS({
|
|
|
44556
44582
|
"planBadge.freePlan": "Forfait gratuit",
|
|
44557
44583
|
"planDialog.aICredits": "Cr\xE9dits IA",
|
|
44558
44584
|
"planDialog.aICreditsLeft": "Cr\xE9dits IA restants",
|
|
44585
|
+
"planDialog.appleIdTeamSlotTaken": "Un compte Apple peut contenir un abonnement personnel et un abonnement d\u2019\xE9quipe dans PopCraft. L\u2019abonnement d\u2019\xE9quipe de ce compte Apple est d\xE9j\xE0 utilis\xE9 par une autre \xE9quipe.",
|
|
44559
44586
|
"planDialog.billedToTheTeamSelected": "Une fois les cr\xE9dits IA de votre forfait \xE9puis\xE9s, l\u2019IA est factur\xE9e \xE0 l\u2019utilisation.",
|
|
44560
44587
|
"planDialog.billedYearly": "{price} factur\xE9 annuellement",
|
|
44561
44588
|
"planDialog.billing": "P\xE9riode de facturation",
|
|
@@ -44636,6 +44663,8 @@ var require_fr = __commonJS({
|
|
|
44636
44663
|
"pluginImport.noImporterIsInstalledFor": "Aucun importateur n\u2019est install\xE9 pour \xAB {name} \xBB",
|
|
44637
44664
|
"pluginImport.openAFileToImport": "Ouvrir un fichier \xE0 importer dans",
|
|
44638
44665
|
"pluginImport.producedNoLayers": "\xAB {name} \xBB n\u2019a produit aucune couche",
|
|
44666
|
+
"pluginOverlays.addAgentTools": "Donner \xE0 l\u2019agent IA {count, plural, one {# outil} other {# outils}} qui ex\xE9cutent ce plug-in",
|
|
44667
|
+
"pluginOverlays.addsAgentTools": "Ajoute {count, plural, one {# outil d\u2019agent} other {# outils d\u2019agent}}",
|
|
44639
44668
|
"pluginOverlays.addsExport": "Ajoute Fichier \u203A Exporter \u203A {label}",
|
|
44640
44669
|
"pluginOverlays.allowAndRun": "Autoriser et ex\xE9cuter",
|
|
44641
44670
|
"pluginOverlays.allowTo": "Autoriser \xAB {name} \xBB \xE0 :",
|
|
@@ -46619,6 +46648,11 @@ var require_de = __commonJS({
|
|
|
46619
46648
|
"audioMeter.thisTimelineHasNoSound": "Diese Zeitleiste hat noch keinen Ton: F\xFCge Audio auf ihren Spuren hinzu, um dies zu steuern.",
|
|
46620
46649
|
"backgroundTasks.backgroundTasks": "Hintergrundaufgaben{value}",
|
|
46621
46650
|
"backgroundTasks.cancelThisBackgroundTask": "Diese Hintergrundaufgabe abbrechen",
|
|
46651
|
+
"backgroundTasks.hideSteps": "Schritte ausblenden",
|
|
46652
|
+
"backgroundTasks.noStepsYet": "Noch keine Schritte.",
|
|
46653
|
+
"backgroundTasks.queued": "In Warteschlange",
|
|
46654
|
+
"backgroundTasks.showSteps": "Schritte anzeigen",
|
|
46655
|
+
"backgroundTasks.stepRunning": "Wird ausgef\xFChrt\u2026",
|
|
46622
46656
|
"bezierEditor.asCSS": "Als CSS",
|
|
46623
46657
|
"bezierEditor.copyThisCurve": "Diese Kurve kopieren",
|
|
46624
46658
|
"bezierEditor.curve": "Kurve",
|
|
@@ -48730,7 +48764,9 @@ var require_de = __commonJS({
|
|
|
48730
48764
|
"mentionInput.addReaction": "Reaktion hinzuf\xFCgen",
|
|
48731
48765
|
"mentionInput.someone": "Jemand",
|
|
48732
48766
|
"mentionMenu.removeMention": "Erw\xE4hnung entfernen",
|
|
48767
|
+
"messageParts.fromPlugin": "Vom {plugin}-Plugin",
|
|
48733
48768
|
"messageParts.plan": "Plan",
|
|
48769
|
+
"messageParts.pluginTool": "{plugin} \xB7 {tool}",
|
|
48734
48770
|
"messageParts.renderedView": "Gerenderte Ansicht",
|
|
48735
48771
|
"messageParts.thinking": "Denke nach",
|
|
48736
48772
|
"minimap.minimapTapOrDragTo": "Minikarte \u2014 tippe oder ziehe, um die Ansicht zu verschieben, doppeltippe, um die Seite anzupassen",
|
|
@@ -49325,6 +49361,7 @@ var require_de = __commonJS({
|
|
|
49325
49361
|
"planBadge.freePlan": "Kostenloser Plan",
|
|
49326
49362
|
"planDialog.aICredits": "KI-Guthaben",
|
|
49327
49363
|
"planDialog.aICreditsLeft": "Verbleibendes KI-Guthaben",
|
|
49364
|
+
"planDialog.appleIdTeamSlotTaken": "Ein Apple-Konto kann in PopCraft ein pers\xF6nliches und ein Team-Abonnement enthalten. Das Team-Abonnement auf diesem Apple-Konto geh\xF6rt bereits zu einem anderen Team.",
|
|
49328
49365
|
"planDialog.billedToTheTeamSelected": "Sobald die AI-Guthaben deines Plans aufgebraucht sind, wird AI nach dem Pay-as-you-go-Prinzip basierend auf der Nutzung abgerechnet.",
|
|
49329
49366
|
"planDialog.billedYearly": "{price} j\xE4hrlich abgerechnet",
|
|
49330
49367
|
"planDialog.billing": "Abrechnungszeitraum",
|
|
@@ -49405,6 +49442,8 @@ var require_de = __commonJS({
|
|
|
49405
49442
|
"pluginImport.noImporterIsInstalledFor": "F\xFCr \u201E{name}\u201C ist kein Importeur installiert.",
|
|
49406
49443
|
"pluginImport.openAFileToImport": "\xD6ffne eine Datei zum Importieren.",
|
|
49407
49444
|
"pluginImport.producedNoLayers": "\u201E{name}\u201C hat keine Ebenen erzeugt.",
|
|
49445
|
+
"pluginOverlays.addAgentTools": "Gib dem KI-Agenten {count, plural, one {# Werkzeug} other {# Werkzeuge}}, die dieses Plugin ausf\xFChren",
|
|
49446
|
+
"pluginOverlays.addsAgentTools": "F\xFCgt {count, plural, one {# Agenten-Werkzeug} other {# Agenten-Werkzeuge}} hinzu",
|
|
49408
49447
|
"pluginOverlays.addsExport": "F\xFCgt Datei \u203A Exportieren \u203A {label} hinzu",
|
|
49409
49448
|
"pluginOverlays.allowAndRun": "Zulassen und ausf\xFChren",
|
|
49410
49449
|
"pluginOverlays.allowTo": "\u201E{name}\u201C erlauben, zu:",
|
|
@@ -51388,6 +51427,11 @@ var require_it = __commonJS({
|
|
|
51388
51427
|
"audioMeter.thisTimelineHasNoSound": "Questa timeline non ha ancora audio: aggiungi audio sulle sue tracce per attivarla.",
|
|
51389
51428
|
"backgroundTasks.backgroundTasks": "Operazioni in background{value}",
|
|
51390
51429
|
"backgroundTasks.cancelThisBackgroundTask": "Annulla questa operazione in background",
|
|
51430
|
+
"backgroundTasks.hideSteps": "Nascondi i passaggi",
|
|
51431
|
+
"backgroundTasks.noStepsYet": "Nessun passaggio.",
|
|
51432
|
+
"backgroundTasks.queued": "In coda",
|
|
51433
|
+
"backgroundTasks.showSteps": "Mostra i passaggi",
|
|
51434
|
+
"backgroundTasks.stepRunning": "In esecuzione\u2026",
|
|
51391
51435
|
"bezierEditor.asCSS": "Come CSS",
|
|
51392
51436
|
"bezierEditor.copyThisCurve": "Copia questa curva",
|
|
51393
51437
|
"bezierEditor.curve": "Curva",
|
|
@@ -53499,7 +53543,9 @@ var require_it = __commonJS({
|
|
|
53499
53543
|
"mentionInput.addReaction": "Aggiungi reazione",
|
|
53500
53544
|
"mentionInput.someone": "Qualcuno",
|
|
53501
53545
|
"mentionMenu.removeMention": "Rimuovi menzione",
|
|
53546
|
+
"messageParts.fromPlugin": "Dal plugin {plugin}",
|
|
53502
53547
|
"messageParts.plan": "Piano",
|
|
53548
|
+
"messageParts.pluginTool": "{plugin} \xB7 {tool}",
|
|
53503
53549
|
"messageParts.renderedView": "Vista renderizzata",
|
|
53504
53550
|
"messageParts.thinking": "Elaborazione\u2026",
|
|
53505
53551
|
"minimap.minimapTapOrDragTo": "Minimappa \u2014 tocca o trascina per spostare la vista, tocca due volte per adattare la pagina",
|
|
@@ -54094,6 +54140,7 @@ var require_it = __commonJS({
|
|
|
54094
54140
|
"planBadge.freePlan": "Piano gratuito",
|
|
54095
54141
|
"planDialog.aICredits": "Crediti AI",
|
|
54096
54142
|
"planDialog.aICreditsLeft": "Crediti AI rimanenti",
|
|
54143
|
+
"planDialog.appleIdTeamSlotTaken": "Un account Apple pu\xF2 contenere un abbonamento personale e uno di team in PopCraft. L\u2019abbonamento di team su questo account Apple \xE8 gi\xE0 associato a un altro team.",
|
|
54097
54144
|
"planDialog.billedToTheTeamSelected": "Una volta esauriti i crediti AI del tuo piano, l\u2019AI \xE8 a consumo, fatturata in base all\u2019utilizzo.",
|
|
54098
54145
|
"planDialog.billedYearly": "{price} fatturato annualmente",
|
|
54099
54146
|
"planDialog.billing": "Periodo di fatturazione",
|
|
@@ -54174,6 +54221,8 @@ var require_it = __commonJS({
|
|
|
54174
54221
|
"pluginImport.noImporterIsInstalledFor": "Nessun importatore \xE8 installato per \u201C{name}\u201D",
|
|
54175
54222
|
"pluginImport.openAFileToImport": "Apri un file da importare in",
|
|
54176
54223
|
"pluginImport.producedNoLayers": "\u201C{name}\u201D non ha prodotto livelli",
|
|
54224
|
+
"pluginOverlays.addAgentTools": "Dai all\u2019agente AI {count, plural, one {# strumento} other {# strumenti}} che eseguono questo plugin",
|
|
54225
|
+
"pluginOverlays.addsAgentTools": "Aggiunge {count, plural, one {# strumento agente} other {# strumenti agente}}",
|
|
54177
54226
|
"pluginOverlays.addsExport": "Aggiunge File \u203A Esporta \u203A {label}",
|
|
54178
54227
|
"pluginOverlays.allowAndRun": "Consenti ed esegui",
|
|
54179
54228
|
"pluginOverlays.allowTo": "Consenti a \u201C{name}\u201D di:",
|
|
@@ -56157,6 +56206,11 @@ var require_pt_BR = __commonJS({
|
|
|
56157
56206
|
"audioMeter.thisTimelineHasNoSound": "Esta linha do tempo ainda n\xE3o tem som: adicione \xE1udio em suas pistas para impulsionar isso.",
|
|
56158
56207
|
"backgroundTasks.backgroundTasks": "Tarefas em segundo plano{value}",
|
|
56159
56208
|
"backgroundTasks.cancelThisBackgroundTask": "Cancelar esta tarefa em segundo plano",
|
|
56209
|
+
"backgroundTasks.hideSteps": "Ocultar seus passos",
|
|
56210
|
+
"backgroundTasks.noStepsYet": "Nenhum passo ainda.",
|
|
56211
|
+
"backgroundTasks.queued": "Na fila",
|
|
56212
|
+
"backgroundTasks.showSteps": "Mostrar seus passos",
|
|
56213
|
+
"backgroundTasks.stepRunning": "Executando\u2026",
|
|
56160
56214
|
"bezierEditor.asCSS": "Como CSS",
|
|
56161
56215
|
"bezierEditor.copyThisCurve": "Copiar esta curva",
|
|
56162
56216
|
"bezierEditor.curve": "Curva",
|
|
@@ -58268,7 +58322,9 @@ var require_pt_BR = __commonJS({
|
|
|
58268
58322
|
"mentionInput.addReaction": "Adicionar rea\xE7\xE3o",
|
|
58269
58323
|
"mentionInput.someone": "Algu\xE9m",
|
|
58270
58324
|
"mentionMenu.removeMention": "Remover men\xE7\xE3o",
|
|
58325
|
+
"messageParts.fromPlugin": "Do plugin {plugin}",
|
|
58271
58326
|
"messageParts.plan": "Plano",
|
|
58327
|
+
"messageParts.pluginTool": "{plugin} \xB7 {tool}",
|
|
58272
58328
|
"messageParts.renderedView": "Visualiza\xE7\xE3o renderizada",
|
|
58273
58329
|
"messageParts.thinking": "Pensando",
|
|
58274
58330
|
"minimap.minimapTapOrDragTo": "Minimapa \u2014 toque ou arraste para mover a visualiza\xE7\xE3o, toque duas vezes para ajustar \xE0 p\xE1gina",
|
|
@@ -58863,6 +58919,7 @@ var require_pt_BR = __commonJS({
|
|
|
58863
58919
|
"planBadge.freePlan": "Plano Gr\xE1tis",
|
|
58864
58920
|
"planDialog.aICredits": "Cr\xE9ditos de IA",
|
|
58865
58921
|
"planDialog.aICreditsLeft": "Cr\xE9ditos de IA restantes",
|
|
58922
|
+
"planDialog.appleIdTeamSlotTaken": "Uma Conta Apple pode ter uma assinatura pessoal e uma assinatura de equipe no PopCraft. A assinatura de equipe nesta Conta Apple j\xE1 est\xE1 em outra equipe.",
|
|
58866
58923
|
"planDialog.billedToTheTeamSelected": "Assim que os cr\xE9ditos de IA do seu plano acabarem, a IA \xE9 paga conforme o uso, faturada pela utiliza\xE7\xE3o.",
|
|
58867
58924
|
"planDialog.billedYearly": "{price} cobrado anualmente",
|
|
58868
58925
|
"planDialog.billing": "Per\xEDodo de cobran\xE7a",
|
|
@@ -58943,6 +59000,8 @@ var require_pt_BR = __commonJS({
|
|
|
58943
59000
|
"pluginImport.noImporterIsInstalledFor": "Nenhum importador est\xE1 instalado para \u201C{name}\u201D",
|
|
58944
59001
|
"pluginImport.openAFileToImport": "Abrir um arquivo para importar para",
|
|
58945
59002
|
"pluginImport.producedNoLayers": "\u201C{name}\u201D n\xE3o produziu nenhuma camada",
|
|
59003
|
+
"pluginOverlays.addAgentTools": "Dar ao agente de IA {count, plural, one {uma # ferramenta} other {# ferramentas}} que executam este plugin",
|
|
59004
|
+
"pluginOverlays.addsAgentTools": "Adiciona {count, plural, one {uma # ferramenta de agente} other {# ferramentas de agente}}",
|
|
58946
59005
|
"pluginOverlays.addsExport": "Adiciona Arquivo \u203A Exportar \u203A {label}",
|
|
58947
59006
|
"pluginOverlays.allowAndRun": "Permitir e executar",
|
|
58948
59007
|
"pluginOverlays.allowTo": "Permitir que \u201C{name}\u201D:",
|
|
@@ -60926,6 +60985,11 @@ var require_ja = __commonJS({
|
|
|
60926
60985
|
"audioMeter.thisTimelineHasNoSound": "\u3053\u306E\u30BF\u30A4\u30E0\u30E9\u30A4\u30F3\u306B\u306F\u307E\u3060\u30B5\u30A6\u30F3\u30C9\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u30EC\u30FC\u30F3\u306B\u30AA\u30FC\u30C7\u30A3\u30AA\u3092\u8FFD\u52A0\u3057\u3066\u99C6\u52D5\u3055\u305B\u3066\u304F\u3060\u3055\u3044\u3002",
|
|
60927
60986
|
"backgroundTasks.backgroundTasks": "\u30D0\u30C3\u30AF\u30B0\u30E9\u30A6\u30F3\u30C9\u30BF\u30B9\u30AF{value}",
|
|
60928
60987
|
"backgroundTasks.cancelThisBackgroundTask": "\u3053\u306E\u30D0\u30C3\u30AF\u30B0\u30E9\u30A6\u30F3\u30C9\u30BF\u30B9\u30AF\u3092\u30AD\u30E3\u30F3\u30BB\u30EB",
|
|
60988
|
+
"backgroundTasks.hideSteps": "\u30B9\u30C6\u30C3\u30D7\u3092\u975E\u8868\u793A",
|
|
60989
|
+
"backgroundTasks.noStepsYet": "\u307E\u3060\u30B9\u30C6\u30C3\u30D7\u304C\u3042\u308A\u307E\u305B\u3093\u3002",
|
|
60990
|
+
"backgroundTasks.queued": "\u5F85\u6A5F\u4E2D",
|
|
60991
|
+
"backgroundTasks.showSteps": "\u30B9\u30C6\u30C3\u30D7\u3092\u8868\u793A",
|
|
60992
|
+
"backgroundTasks.stepRunning": "\u5B9F\u884C\u4E2D\u2026",
|
|
60929
60993
|
"bezierEditor.asCSS": "CSS\u3068\u3057\u3066",
|
|
60930
60994
|
"bezierEditor.copyThisCurve": "\u3053\u306E\u30AB\u30FC\u30D6\u3092\u30B3\u30D4\u30FC",
|
|
60931
60995
|
"bezierEditor.curve": "\u30AB\u30FC\u30D6",
|
|
@@ -63037,7 +63101,9 @@ var require_ja = __commonJS({
|
|
|
63037
63101
|
"mentionInput.addReaction": "\u30EA\u30A2\u30AF\u30B7\u30E7\u30F3\u3092\u8FFD\u52A0",
|
|
63038
63102
|
"mentionInput.someone": "\u8AB0\u304B",
|
|
63039
63103
|
"mentionMenu.removeMention": "\u30E1\u30F3\u30B7\u30E7\u30F3\u3092\u524A\u9664",
|
|
63104
|
+
"messageParts.fromPlugin": "{plugin}\u30D7\u30E9\u30B0\u30A4\u30F3\u304B\u3089",
|
|
63040
63105
|
"messageParts.plan": "\u30D7\u30E9\u30F3",
|
|
63106
|
+
"messageParts.pluginTool": "{plugin} \xB7 {tool}",
|
|
63041
63107
|
"messageParts.renderedView": "\u30EC\u30F3\u30C0\u30EA\u30F3\u30B0\u30D3\u30E5\u30FC",
|
|
63042
63108
|
"messageParts.thinking": "\u8003\u3048\u4E2D",
|
|
63043
63109
|
"minimap.minimapTapOrDragTo": "\u30DF\u30CB\u30DE\u30C3\u30D7 \u2014 \u30BF\u30C3\u30D7\u307E\u305F\u306F\u30C9\u30E9\u30C3\u30B0\u3067\u8868\u793A\u3092\u79FB\u52D5\u3001\u30C0\u30D6\u30EB\u30BF\u30C3\u30D7\u3067\u30DA\u30FC\u30B8\u5168\u4F53\u3092\u8868\u793A",
|
|
@@ -63632,6 +63698,7 @@ var require_ja = __commonJS({
|
|
|
63632
63698
|
"planBadge.freePlan": "\u7121\u6599\u30D7\u30E9\u30F3",
|
|
63633
63699
|
"planDialog.aICredits": "AI\u30AF\u30EC\u30B8\u30C3\u30C8",
|
|
63634
63700
|
"planDialog.aICreditsLeft": "\u6B8B\u308AAI\u30AF\u30EC\u30B8\u30C3\u30C8",
|
|
63701
|
+
"planDialog.appleIdTeamSlotTaken": "Apple\u30A2\u30AB\u30A6\u30F3\u30C8\u3067\u306F\u3001PopCraft\u3067\u500B\u4EBA\u7528\u3068\u30C1\u30FC\u30E0\u7528\u306E\u30B5\u30D6\u30B9\u30AF\u30EA\u30D7\u30B7\u30E7\u30F3\u3092\u305D\u308C\u305E\u308C1\u3064\u305A\u3064\u4FDD\u6301\u3067\u304D\u307E\u3059\u3002\u3053\u306EApple\u30A2\u30AB\u30A6\u30F3\u30C8\u306E\u30C1\u30FC\u30E0\u30B5\u30D6\u30B9\u30AF\u30EA\u30D7\u30B7\u30E7\u30F3\u306F\u3001\u3059\u3067\u306B\u5225\u306E\u30C1\u30FC\u30E0\u3067\u4F7F\u7528\u3055\u308C\u3066\u3044\u307E\u3059\u3002",
|
|
63635
63702
|
"planDialog.billedToTheTeamSelected": "\u30D7\u30E9\u30F3\u306EAI\u30AF\u30EC\u30B8\u30C3\u30C8\u3092\u4F7F\u3044\u5207\u308B\u3068\u3001AI\u306F\u5F93\u91CF\u8AB2\u91D1\u5236\u3068\u306A\u308A\u3001\u4F7F\u7528\u91CF\u306B\u5FDC\u3058\u3066\u8ACB\u6C42\u3055\u308C\u307E\u3059\u3002",
|
|
63636
63703
|
"planDialog.billedYearly": "{price} / \u5E74\u6255\u3044",
|
|
63637
63704
|
"planDialog.billing": "\u8ACB\u6C42\u671F\u9593",
|
|
@@ -63712,6 +63779,8 @@ var require_ja = __commonJS({
|
|
|
63712
63779
|
"pluginImport.noImporterIsInstalledFor": "\u300C{name}\u300D\u7528\u306E\u30A4\u30F3\u30DD\u30FC\u30BF\u30FC\u304C\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u3066\u3044\u307E\u305B\u3093",
|
|
63713
63780
|
"pluginImport.openAFileToImport": "\u30A4\u30F3\u30DD\u30FC\u30C8\u3059\u308B\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u304F",
|
|
63714
63781
|
"pluginImport.producedNoLayers": "\u300C{name}\u300D\u306F\u30EC\u30A4\u30E4\u30FC\u3092\u751F\u6210\u3057\u307E\u305B\u3093\u3067\u3057\u305F",
|
|
63782
|
+
"pluginOverlays.addAgentTools": "AI\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u306B\u3001\u3053\u306E\u30D7\u30E9\u30B0\u30A4\u30F3\u3092\u5B9F\u884C\u3059\u308B{count, plural, other {# \u500B\u306E\u30C4\u30FC\u30EB}}\u3092\u4ED8\u4E0E\u3059\u308B",
|
|
63783
|
+
"pluginOverlays.addsAgentTools": "{count, plural, other {# \u500B\u306E\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u30C4\u30FC\u30EB}}\u3092\u8FFD\u52A0",
|
|
63715
63784
|
"pluginOverlays.addsExport": "\u30D5\u30A1\u30A4\u30EB \u203A \u66F8\u304D\u51FA\u3057 \u203A {label} \u3092\u8FFD\u52A0",
|
|
63716
63785
|
"pluginOverlays.allowAndRun": "\u8A31\u53EF\u3057\u3066\u5B9F\u884C",
|
|
63717
63786
|
"pluginOverlays.allowTo": "\u300C{name}\u300D\u306B\u4EE5\u4E0B\u3092\u8A31\u53EF\u3057\u307E\u3059:",
|
|
@@ -65695,6 +65764,11 @@ var require_ko = __commonJS({
|
|
|
65695
65764
|
"audioMeter.thisTimelineHasNoSound": "\uC774 \uD0C0\uC784\uB77C\uC778\uC5D0\uB294 \uC544\uC9C1 \uC18C\uB9AC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4. \uC774 \uAE30\uB2A5\uC744 \uC0AC\uC6A9\uD558\uB824\uBA74 \uB808\uC778\uC5D0 \uC624\uB514\uC624\uB97C \uCD94\uAC00\uD558\uC138\uC694.",
|
|
65696
65765
|
"backgroundTasks.backgroundTasks": "\uBC31\uADF8\uB77C\uC6B4\uB4DC \uC791\uC5C5{value}",
|
|
65697
65766
|
"backgroundTasks.cancelThisBackgroundTask": "\uC774 \uBC31\uADF8\uB77C\uC6B4\uB4DC \uC791\uC5C5 \uCDE8\uC18C",
|
|
65767
|
+
"backgroundTasks.hideSteps": "\uB2E8\uACC4 \uC228\uAE30\uAE30",
|
|
65768
|
+
"backgroundTasks.noStepsYet": "\uC544\uC9C1 \uB2E8\uACC4\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.",
|
|
65769
|
+
"backgroundTasks.queued": "\uB300\uAE30 \uC911",
|
|
65770
|
+
"backgroundTasks.showSteps": "\uB2E8\uACC4 \uD45C\uC2DC",
|
|
65771
|
+
"backgroundTasks.stepRunning": "\uC2E4\uD589 \uC911\u2026",
|
|
65698
65772
|
"bezierEditor.asCSS": "CSS\uB85C",
|
|
65699
65773
|
"bezierEditor.copyThisCurve": "\uC774 \uACE1\uC120 \uBCF5\uC0AC",
|
|
65700
65774
|
"bezierEditor.curve": "\uACE1\uC120",
|
|
@@ -67806,7 +67880,9 @@ var require_ko = __commonJS({
|
|
|
67806
67880
|
"mentionInput.addReaction": "\uBC18\uC751 \uCD94\uAC00",
|
|
67807
67881
|
"mentionInput.someone": "\uB204\uAD70\uAC00",
|
|
67808
67882
|
"mentionMenu.removeMention": "\uBA58\uC158 \uC81C\uAC70",
|
|
67883
|
+
"messageParts.fromPlugin": "{plugin} \uD50C\uB7EC\uADF8\uC778\uC5D0\uC11C",
|
|
67809
67884
|
"messageParts.plan": "\uACC4\uD68D",
|
|
67885
|
+
"messageParts.pluginTool": "{plugin} \xB7 {tool}",
|
|
67810
67886
|
"messageParts.renderedView": "\uB80C\uB354\uB9C1\uB41C \uBCF4\uAE30",
|
|
67811
67887
|
"messageParts.thinking": "\uC0DD\uAC01 \uC911",
|
|
67812
67888
|
"minimap.minimapTapOrDragTo": "\uBBF8\uB2C8\uB9F5 \u2014 \uD0ED\uD558\uAC70\uB098 \uB4DC\uB798\uADF8\uD558\uC5EC \uBDF0 \uC774\uB3D9, \uB450 \uBC88 \uD0ED\uD558\uC5EC \uD398\uC774\uC9C0\uC5D0 \uB9DE\uCD94\uAE30",
|
|
@@ -68401,6 +68477,7 @@ var require_ko = __commonJS({
|
|
|
68401
68477
|
"planBadge.freePlan": "\uBB34\uB8CC \uD50C\uB79C",
|
|
68402
68478
|
"planDialog.aICredits": "AI \uD06C\uB808\uB527",
|
|
68403
68479
|
"planDialog.aICreditsLeft": "\uB0A8\uC740 AI \uD06C\uB808\uB527",
|
|
68480
|
+
"planDialog.appleIdTeamSlotTaken": "Apple \uACC4\uC815 \uD558\uB098\uB2F9 PopCraft\uC5D0\uC11C \uAC1C\uC778 \uAD6C\uB3C5 \uD558\uB098\uC640 \uD300 \uAD6C\uB3C5 \uD558\uB098\uB97C \uAC00\uC9C8 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uC774 Apple \uACC4\uC815\uC758 \uD300 \uAD6C\uB3C5\uC740 \uC774\uBBF8 \uB2E4\uB978 \uD300\uC5D0 \uD560\uB2F9\uB418\uC5B4 \uC788\uC2B5\uB2C8\uB2E4.",
|
|
68404
68481
|
"planDialog.billedToTheTeamSelected": "\uD50C\uB79C\uC758 AI \uD06C\uB808\uB527\uC744 \uBAA8\uB450 \uC0AC\uC6A9\uD558\uBA74 AI\uB294 \uC0AC\uC6A9\uD55C \uB9CC\uD07C \uC9C0\uBD88\uD558\uB294 \uBC29\uC2DD\uC774\uBA70, \uC0AC\uC6A9\uB7C9\uC5D0 \uB530\uB77C \uCCAD\uAD6C\uB429\uB2C8\uB2E4.",
|
|
68405
68482
|
"planDialog.billedYearly": "\uC5F0\uAC04 {price} \uCCAD\uAD6C",
|
|
68406
68483
|
"planDialog.billing": "\uACB0\uC81C \uC8FC\uAE30",
|
|
@@ -68481,6 +68558,8 @@ var require_ko = __commonJS({
|
|
|
68481
68558
|
"pluginImport.noImporterIsInstalledFor": "\u201C{name}\u201D\uC5D0 \uB300\uD55C \uAC00\uC838\uC624\uAE30 \uB3C4\uAD6C\uAC00 \uC124\uCE58\uB418\uC5B4 \uC788\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4",
|
|
68482
68559
|
"pluginImport.openAFileToImport": "\uAC00\uC838\uC62C \uD30C\uC77C\uC744 \uC5FD\uB2C8\uB2E4.",
|
|
68483
68560
|
"pluginImport.producedNoLayers": "\u201C{name}\u201D\uC5D0\uC11C \uB808\uC774\uC5B4\uB97C \uC0DD\uC131\uD558\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4.",
|
|
68561
|
+
"pluginOverlays.addAgentTools": "AI \uC5D0\uC774\uC804\uD2B8\uC5D0 \uC774 \uD50C\uB7EC\uADF8\uC778\uC744 \uC2E4\uD589\uD558\uB294 {count, plural, other {#\uAC1C \uB3C4\uAD6C}}\uB97C \uBD80\uC5EC\uD569\uB2C8\uB2E4.",
|
|
68562
|
+
"pluginOverlays.addsAgentTools": "{count, plural, other {#\uAC1C \uC5D0\uC774\uC804\uD2B8 \uB3C4\uAD6C}}\uB97C \uCD94\uAC00\uD569\uB2C8\uB2E4.",
|
|
68484
68563
|
"pluginOverlays.addsExport": "\uD30C\uC77C \u203A \uB0B4\uBCF4\uB0B4\uAE30 \u203A {label}\uC744(\uB97C) \uCD94\uAC00\uD569\uB2C8\uB2E4.",
|
|
68485
68564
|
"pluginOverlays.allowAndRun": "\uD5C8\uC6A9 \uBC0F \uC2E4\uD589",
|
|
68486
68565
|
"pluginOverlays.allowTo": "\u201C{name}\u201D\uC5D0 \uB2E4\uC74C\uC744 \uD5C8\uC6A9\uD569\uB2C8\uB2E4:",
|
|
@@ -70464,6 +70543,11 @@ var require_zh_CN = __commonJS({
|
|
|
70464
70543
|
"audioMeter.thisTimelineHasNoSound": "\u6B64\u65F6\u95F4\u8F74\u5C1A\u65E0\u58F0\u97F3\uFF1A\u8BF7\u5728\u5176\u8F68\u9053\u4E0A\u6DFB\u52A0\u97F3\u9891\u4EE5\u9A71\u52A8\u3002",
|
|
70465
70544
|
"backgroundTasks.backgroundTasks": "\u540E\u53F0\u4EFB\u52A1{value}",
|
|
70466
70545
|
"backgroundTasks.cancelThisBackgroundTask": "\u53D6\u6D88\u6B64\u540E\u53F0\u4EFB\u52A1",
|
|
70546
|
+
"backgroundTasks.hideSteps": "\u9690\u85CF\u5176\u6B65\u9AA4",
|
|
70547
|
+
"backgroundTasks.noStepsYet": "\u6682\u65E0\u6B65\u9AA4\u3002",
|
|
70548
|
+
"backgroundTasks.queued": "\u5DF2\u6392\u961F",
|
|
70549
|
+
"backgroundTasks.showSteps": "\u663E\u793A\u5176\u6B65\u9AA4",
|
|
70550
|
+
"backgroundTasks.stepRunning": "\u6B63\u5728\u8FD0\u884C\u2026",
|
|
70467
70551
|
"bezierEditor.asCSS": "\u4F5C\u4E3A CSS",
|
|
70468
70552
|
"bezierEditor.copyThisCurve": "\u590D\u5236\u6B64\u66F2\u7EBF",
|
|
70469
70553
|
"bezierEditor.curve": "\u66F2\u7EBF",
|
|
@@ -72575,7 +72659,9 @@ var require_zh_CN = __commonJS({
|
|
|
72575
72659
|
"mentionInput.addReaction": "\u6DFB\u52A0\u56DE\u5E94",
|
|
72576
72660
|
"mentionInput.someone": "\u67D0\u4EBA",
|
|
72577
72661
|
"mentionMenu.removeMention": "\u79FB\u9664\u63D0\u53CA",
|
|
72662
|
+
"messageParts.fromPlugin": "\u6765\u81EA {plugin} \u63D2\u4EF6",
|
|
72578
72663
|
"messageParts.plan": "\u8BA1\u5212",
|
|
72664
|
+
"messageParts.pluginTool": "{plugin} \xB7 {tool}",
|
|
72579
72665
|
"messageParts.renderedView": "\u6E32\u67D3\u89C6\u56FE",
|
|
72580
72666
|
"messageParts.thinking": "\u601D\u8003\u4E2D",
|
|
72581
72667
|
"minimap.minimapTapOrDragTo": "\u8FF7\u4F60\u5730\u56FE \u2014 \u8F7B\u89E6\u6216\u62D6\u52A8\u4EE5\u79FB\u52A8\u89C6\u56FE\uFF0C\u53CC\u51FB\u4EE5\u9002\u5E94\u9875\u9762",
|
|
@@ -73170,6 +73256,7 @@ var require_zh_CN = __commonJS({
|
|
|
73170
73256
|
"planBadge.freePlan": "\u514D\u8D39\u5957\u9910",
|
|
73171
73257
|
"planDialog.aICredits": "AI \u79EF\u5206",
|
|
73172
73258
|
"planDialog.aICreditsLeft": "\u5269\u4F59 AI \u79EF\u5206",
|
|
73259
|
+
"planDialog.appleIdTeamSlotTaken": "\u4E00\u4E2A Apple \u8D26\u6237\u5728 PopCraft \u4E2D\u53EF\u4EE5\u6301\u6709\u4E00\u4E2A\u4E2A\u4EBA\u8BA2\u9605\u548C\u4E00\u4E2A\u56E2\u961F\u8BA2\u9605\u3002\u6B64 Apple \u8D26\u6237\u4E0A\u7684\u56E2\u961F\u8BA2\u9605\u5DF2\u5C5E\u4E8E\u53E6\u4E00\u4E2A\u56E2\u961F\u3002",
|
|
73173
73260
|
"planDialog.billedToTheTeamSelected": "\u5F53\u60A8\u7684\u5957\u9910AI\u70B9\u6570\u7528\u5C3D\u540E\uFF0CAI\u5C06\u6309\u91CF\u4ED8\u8D39\uFF0C\u6839\u636E\u4F7F\u7528\u91CF\u8BA1\u8D39\u3002",
|
|
73174
73261
|
"planDialog.billedYearly": "{price} / \u5E74",
|
|
73175
73262
|
"planDialog.billing": "\u8BA1\u8D39\u5468\u671F",
|
|
@@ -73250,6 +73337,8 @@ var require_zh_CN = __commonJS({
|
|
|
73250
73337
|
"pluginImport.noImporterIsInstalledFor": "\u672A\u5B89\u88C5\u201C{name}\u201D\u7684\u5BFC\u5165\u5668",
|
|
73251
73338
|
"pluginImport.openAFileToImport": "\u6253\u5F00\u6587\u4EF6\u4EE5\u5BFC\u5165\u5230",
|
|
73252
73339
|
"pluginImport.producedNoLayers": "\u201C{name}\u201D \u672A\u751F\u6210\u4EFB\u4F55\u56FE\u5C42",
|
|
73340
|
+
"pluginOverlays.addAgentTools": "\u4E3A AI \u4EE3\u7406\u63D0\u4F9B {count, plural, other {# \u4E2A\u5DE5\u5177}} \u6765\u8FD0\u884C\u6B64\u63D2\u4EF6",
|
|
73341
|
+
"pluginOverlays.addsAgentTools": "\u6DFB\u52A0 {count, plural, other {# \u4E2A\u4EE3\u7406\u5DE5\u5177}}",
|
|
73253
73342
|
"pluginOverlays.addsExport": "\u6DFB\u52A0\u201C\u6587\u4EF6 \u203A \u5BFC\u51FA \u203A {label}\u201D",
|
|
73254
73343
|
"pluginOverlays.allowAndRun": "\u5141\u8BB8\u5E76\u8FD0\u884C",
|
|
73255
73344
|
"pluginOverlays.allowTo": "\u5141\u8BB8\u201C{name}\u201D\u6267\u884C\u4EE5\u4E0B\u64CD\u4F5C\uFF1A",
|
|
@@ -75233,6 +75322,11 @@ var require_zh_TW = __commonJS({
|
|
|
75233
75322
|
"audioMeter.thisTimelineHasNoSound": "\u6B64\u6642\u9593\u8EF8\u5C1A\u7121\u8072\u97F3\uFF1A\u5728\u5176\u97F3\u8A0A\u8ECC\u9053\u4E0A\u65B0\u589E\u97F3\u8A0A\u4EE5\u9A45\u52D5\u6B64\u529F\u80FD\u3002",
|
|
75234
75323
|
"backgroundTasks.backgroundTasks": "\u80CC\u666F\u4EFB\u52D9{value}",
|
|
75235
75324
|
"backgroundTasks.cancelThisBackgroundTask": "\u53D6\u6D88\u6B64\u80CC\u666F\u4EFB\u52D9",
|
|
75325
|
+
"backgroundTasks.hideSteps": "\u96B1\u85CF\u6B65\u9A5F",
|
|
75326
|
+
"backgroundTasks.noStepsYet": "\u5C1A\u7121\u6B65\u9A5F\u3002",
|
|
75327
|
+
"backgroundTasks.queued": "\u5DF2\u6392\u5165\u4F47\u5217",
|
|
75328
|
+
"backgroundTasks.showSteps": "\u986F\u793A\u6B65\u9A5F",
|
|
75329
|
+
"backgroundTasks.stepRunning": "\u6B63\u5728\u57F7\u884C\u2026",
|
|
75236
75330
|
"bezierEditor.asCSS": "\u4F5C\u70BA CSS",
|
|
75237
75331
|
"bezierEditor.copyThisCurve": "\u8907\u88FD\u6B64\u66F2\u7DDA",
|
|
75238
75332
|
"bezierEditor.curve": "\u66F2\u7DDA",
|
|
@@ -77344,7 +77438,9 @@ var require_zh_TW = __commonJS({
|
|
|
77344
77438
|
"mentionInput.addReaction": "\u65B0\u589E\u56DE\u61C9",
|
|
77345
77439
|
"mentionInput.someone": "\u67D0\u4EBA",
|
|
77346
77440
|
"mentionMenu.removeMention": "\u79FB\u9664\u63D0\u53CA",
|
|
77441
|
+
"messageParts.fromPlugin": "\u4F86\u81EA {plugin} \u5916\u639B\u7A0B\u5F0F",
|
|
77347
77442
|
"messageParts.plan": "\u8A08\u756B",
|
|
77443
|
+
"messageParts.pluginTool": "{plugin} \xB7 {tool}",
|
|
77348
77444
|
"messageParts.renderedView": "\u6E32\u67D3\u8996\u5716",
|
|
77349
77445
|
"messageParts.thinking": "\u601D\u8003\u4E2D",
|
|
77350
77446
|
"minimap.minimapTapOrDragTo": "\u8FF7\u4F60\u5730\u5716 \u2014 \u9EDE\u64CA\u6216\u62D6\u66F3\u4EE5\u79FB\u52D5\u8996\u5716\uFF0C\u96D9\u64CA\u4EE5\u9069\u61C9\u9801\u9762",
|
|
@@ -77939,6 +78035,7 @@ var require_zh_TW = __commonJS({
|
|
|
77939
78035
|
"planBadge.freePlan": "\u514D\u8CBB\u65B9\u6848",
|
|
77940
78036
|
"planDialog.aICredits": "AI \u9EDE\u6578",
|
|
77941
78037
|
"planDialog.aICreditsLeft": "\u5269\u9918 AI \u9EDE\u6578",
|
|
78038
|
+
"planDialog.appleIdTeamSlotTaken": "\u4E00\u500B Apple \u5E33\u865F\u5728 PopCraft \u4E2D\u53EF\u64C1\u6709\u4E00\u4EFD\u500B\u4EBA\u8A02\u95B1\u548C\u4E00\u4EFD\u5718\u968A\u8A02\u95B1\u3002\u6B64 Apple \u5E33\u865F\u7684\u5718\u968A\u8A02\u95B1\u5DF2\u7528\u65BC\u53E6\u4E00\u500B\u5718\u968A\u3002",
|
|
77942
78039
|
"planDialog.billedToTheTeamSelected": "\u7576\u60A8\u7684\u65B9\u6848\u7684 AI \u9EDE\u6578\u7528\u76E1\u5F8C\uFF0CAI \u5C07\u63A1\u96A8\u7528\u96A8\u4ED8\u5236\uFF0C\u4E26\u6839\u64DA\u7528\u91CF\u8A08\u8CBB\u3002",
|
|
77943
78040
|
"planDialog.billedYearly": "{price} (\u6309\u5E74\u8A08\u8CBB)",
|
|
77944
78041
|
"planDialog.billing": "\u8A08\u8CBB\u9031\u671F",
|
|
@@ -78019,6 +78116,8 @@ var require_zh_TW = __commonJS({
|
|
|
78019
78116
|
"pluginImport.noImporterIsInstalledFor": "\u672A\u5B89\u88DD\u300C{name}\u300D\u7684\u532F\u5165\u5668",
|
|
78020
78117
|
"pluginImport.openAFileToImport": "\u958B\u555F\u6A94\u6848\u4EE5\u532F\u5165\u81F3",
|
|
78021
78118
|
"pluginImport.producedNoLayers": "\u300C{name}\u300D\u672A\u7522\u751F\u4EFB\u4F55\u5716\u5C64",
|
|
78119
|
+
"pluginOverlays.addAgentTools": "\u7D66\u4E88 AI \u4EE3\u7406\u7A0B\u5F0F {count, plural, other {# \u500B\u5DE5\u5177}}\uFF0C\u9019\u4E9B\u5DE5\u5177\u53EF\u57F7\u884C\u6B64\u5916\u639B\u7A0B\u5F0F",
|
|
78120
|
+
"pluginOverlays.addsAgentTools": "\u65B0\u589E {count, plural, other {# \u500B\u4EE3\u7406\u7A0B\u5F0F\u5DE5\u5177}}",
|
|
78022
78121
|
"pluginOverlays.addsExport": "\u65B0\u589E\u300C\u6A94\u6848\u300D\u203A\u300C\u532F\u51FA\u300D\u203A\u300C{label}\u300D",
|
|
78023
78122
|
"pluginOverlays.allowAndRun": "\u5141\u8A31\u4E26\u57F7\u884C",
|
|
78024
78123
|
"pluginOverlays.allowTo": "\u5141\u8A31\u300C{name}\u300D\u57F7\u884C\u4EE5\u4E0B\u64CD\u4F5C\uFF1A",
|
|
@@ -80002,6 +80101,11 @@ var require_ru = __commonJS({
|
|
|
80002
80101
|
"audioMeter.thisTimelineHasNoSound": "\u041D\u0430 \u044D\u0442\u043E\u0439 \u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0439 \u0448\u043A\u0430\u043B\u0435 \u043F\u043E\u043A\u0430 \u043D\u0435\u0442 \u0437\u0432\u0443\u043A\u0430: \u0434\u043E\u0431\u0430\u0432\u044C\u0442\u0435 \u0430\u0443\u0434\u0438\u043E \u043D\u0430 \u0435\u0435 \u0434\u043E\u0440\u043E\u0436\u043A\u0438, \u0447\u0442\u043E\u0431\u044B \u0430\u043A\u0442\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u044D\u0442\u043E.",
|
|
80003
80102
|
"backgroundTasks.backgroundTasks": "\u0424\u043E\u043D\u043E\u0432\u044B\u0435 \u0437\u0430\u0434\u0430\u0447\u0438{value}",
|
|
80004
80103
|
"backgroundTasks.cancelThisBackgroundTask": "\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u044D\u0442\u0443 \u0444\u043E\u043D\u043E\u0432\u0443\u044E \u0437\u0430\u0434\u0430\u0447\u0443",
|
|
80104
|
+
"backgroundTasks.hideSteps": "\u0421\u043A\u0440\u044B\u0442\u044C \u0448\u0430\u0433\u0438",
|
|
80105
|
+
"backgroundTasks.noStepsYet": "\u0428\u0430\u0433\u043E\u0432 \u043F\u043E\u043A\u0430 \u043D\u0435\u0442.",
|
|
80106
|
+
"backgroundTasks.queued": "\u0412 \u043E\u0447\u0435\u0440\u0435\u0434\u0438",
|
|
80107
|
+
"backgroundTasks.showSteps": "\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0448\u0430\u0433\u0438",
|
|
80108
|
+
"backgroundTasks.stepRunning": "\u0412\u044B\u043F\u043E\u043B\u043D\u044F\u0435\u0442\u0441\u044F\u2026",
|
|
80005
80109
|
"bezierEditor.asCSS": "\u041A\u0430\u043A CSS",
|
|
80006
80110
|
"bezierEditor.copyThisCurve": "\u0421\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u044D\u0442\u0443 \u043A\u0440\u0438\u0432\u0443\u044E",
|
|
80007
80111
|
"bezierEditor.curve": "\u041A\u0440\u0438\u0432\u0430\u044F",
|
|
@@ -82113,7 +82217,9 @@ var require_ru = __commonJS({
|
|
|
82113
82217
|
"mentionInput.addReaction": "\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0440\u0435\u0430\u043A\u0446\u0438\u044E",
|
|
82114
82218
|
"mentionInput.someone": "\u041A\u0442\u043E-\u0442\u043E",
|
|
82115
82219
|
"mentionMenu.removeMention": "\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0443\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435",
|
|
82220
|
+
"messageParts.fromPlugin": "\u0418\u0437 \u043F\u043B\u0430\u0433\u0438\u043D\u0430 \xAB{plugin}\xBB",
|
|
82116
82221
|
"messageParts.plan": "\u041F\u043B\u0430\u043D",
|
|
82222
|
+
"messageParts.pluginTool": "{plugin} \xB7 {tool}",
|
|
82117
82223
|
"messageParts.renderedView": "\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u043C\u044B\u0439 \u0432\u0438\u0434",
|
|
82118
82224
|
"messageParts.thinking": "\u041E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430\u2026",
|
|
82119
82225
|
"minimap.minimapTapOrDragTo": "\u041C\u0438\u043D\u0438\u043A\u0430\u0440\u0442\u0430 \u2014 \u043D\u0430\u0436\u043C\u0438\u0442\u0435 \u0438\u043B\u0438 \u043F\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u043F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u0432\u0438\u0434, \u0434\u0432\u0430\u0436\u0434\u044B \u043D\u0430\u0436\u043C\u0438\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u0443\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443",
|
|
@@ -82708,6 +82814,7 @@ var require_ru = __commonJS({
|
|
|
82708
82814
|
"planBadge.freePlan": "\u0411\u0435\u0441\u043F\u043B\u0430\u0442\u043D\u044B\u0439 \u043F\u043B\u0430\u043D",
|
|
82709
82815
|
"planDialog.aICredits": "\u041A\u0440\u0435\u0434\u0438\u0442\u044B \u0418\u0418",
|
|
82710
82816
|
"planDialog.aICreditsLeft": "\u041E\u0441\u0442\u0430\u043B\u043E\u0441\u044C \u043A\u0440\u0435\u0434\u0438\u0442\u043E\u0432 \u0418\u0418",
|
|
82817
|
+
"planDialog.appleIdTeamSlotTaken": "\u0423\u0447\u0451\u0442\u043D\u0430\u044F \u0437\u0430\u043F\u0438\u0441\u044C Apple \u043C\u043E\u0436\u0435\u0442 \u0441\u043E\u0434\u0435\u0440\u0436\u0430\u0442\u044C \u043E\u0434\u043D\u0443 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u0443\u044E \u0438 \u043E\u0434\u043D\u0443 \u043A\u043E\u043C\u0430\u043D\u0434\u043D\u0443\u044E \u043F\u043E\u0434\u043F\u0438\u0441\u043A\u0443 \u0432 PopCraft. \u041A\u043E\u043C\u0430\u043D\u0434\u043D\u0430\u044F \u043F\u043E\u0434\u043F\u0438\u0441\u043A\u0430 \u044D\u0442\u043E\u0439 \u0443\u0447\u0451\u0442\u043D\u043E\u0439 \u0437\u0430\u043F\u0438\u0441\u0438 Apple \u0443\u0436\u0435 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442\u0441\u044F \u0434\u0440\u0443\u0433\u043E\u0439 \u043A\u043E\u043C\u0430\u043D\u0434\u043E\u0439.",
|
|
82711
82818
|
"planDialog.billedToTheTeamSelected": "\u041A\u0430\u043A \u0442\u043E\u043B\u044C\u043A\u043E \u043A\u0440\u0435\u0434\u0438\u0442\u044B \u0418\u0418 \u0432\u0430\u0448\u0435\u0433\u043E \u043F\u043B\u0430\u043D\u0430 \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u0447\u0435\u0440\u043F\u0430\u043D\u044B, \u0418\u0418 \u0431\u0443\u0434\u0435\u0442 \u043E\u043F\u043B\u0430\u0447\u0438\u0432\u0430\u0442\u044C\u0441\u044F \u043F\u043E \u043C\u0435\u0440\u0435 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F, \u0441 \u0432\u044B\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043C \u0441\u0447\u0435\u0442\u0430 \u043F\u043E \u0444\u0430\u043A\u0442\u0443 \u043F\u043E\u0442\u0440\u0435\u0431\u043B\u0435\u043D\u0438\u044F.",
|
|
82712
82819
|
"planDialog.billedYearly": "{price} \u043F\u0440\u0438 \u0435\u0436\u0435\u0433\u043E\u0434\u043D\u043E\u0439 \u043E\u043F\u043B\u0430\u0442\u0435",
|
|
82713
82820
|
"planDialog.billing": "\u041F\u0435\u0440\u0438\u043E\u0434 \u043E\u043F\u043B\u0430\u0442\u044B",
|
|
@@ -82788,6 +82895,8 @@ var require_ru = __commonJS({
|
|
|
82788
82895
|
"pluginImport.noImporterIsInstalledFor": "\u0414\u043B\u044F \xAB{name}\xBB \u043D\u0435 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D \u0438\u043C\u043F\u043E\u0440\u0442\u0435\u0440",
|
|
82789
82896
|
"pluginImport.openAFileToImport": "\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0444\u0430\u0439\u043B \u0434\u043B\u044F \u0438\u043C\u043F\u043E\u0440\u0442\u0430 \u0432",
|
|
82790
82897
|
"pluginImport.producedNoLayers": "\xAB{name}\xBB \u043D\u0435 \u0441\u043E\u0437\u0434\u0430\u043B \u0441\u043B\u043E\u0435\u0432",
|
|
82898
|
+
"pluginOverlays.addAgentTools": "\u041F\u0440\u0435\u0434\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0418\u0418-\u0430\u0433\u0435\u043D\u0442\u0443 {count, plural, one {# \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442} few {# \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430} many {# \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432} other {# \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432}}, \u0437\u0430\u043F\u0443\u0441\u043A\u0430\u044E\u0449\u0438\u0439 \u044D\u0442\u043E\u0442 \u043F\u043B\u0430\u0433\u0438\u043D",
|
|
82899
|
+
"pluginOverlays.addsAgentTools": "\u0414\u043E\u0431\u0430\u0432\u043B\u044F\u0435\u0442 {count, plural, one {# \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 \u0430\u0433\u0435\u043D\u0442\u0430} few {# \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430 \u0430\u0433\u0435\u043D\u0442\u0430} many {# \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u0430\u0433\u0435\u043D\u0442\u0430} other {# \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u0430\u0433\u0435\u043D\u0442\u0430}}",
|
|
82791
82900
|
"pluginOverlays.addsExport": "\u0414\u043E\u0431\u0430\u0432\u043B\u044F\u0435\u0442 \u0424\u0430\u0439\u043B \u203A \u042D\u043A\u0441\u043F\u043E\u0440\u0442 \u203A {label}",
|
|
82792
82901
|
"pluginOverlays.allowAndRun": "\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044C \u0438 \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C",
|
|
82793
82902
|
"pluginOverlays.allowTo": "\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044C \xAB{name}\xBB:",
|
|
@@ -84771,6 +84880,11 @@ var require_ar = __commonJS({
|
|
|
84771
84880
|
"audioMeter.thisTimelineHasNoSound": "\u0644\u0627 \u064A\u062D\u062A\u0648\u064A \u0647\u0630\u0627 \u0627\u0644\u0645\u062E\u0637\u0637 \u0627\u0644\u0632\u0645\u0646\u064A \u0639\u0644\u0649 \u0635\u0648\u062A \u0628\u0639\u062F: \u0623\u0636\u0641 \u0635\u0648\u062A\u064B\u0627 \u0625\u0644\u0649 \u0645\u0633\u0627\u0631\u0627\u062A\u0647 \u0644\u062A\u0634\u063A\u064A\u0644\u0647.",
|
|
84772
84881
|
"backgroundTasks.backgroundTasks": "\u0645\u0647\u0627\u0645 \u0627\u0644\u062E\u0644\u0641\u064A\u0629{value}",
|
|
84773
84882
|
"backgroundTasks.cancelThisBackgroundTask": "\u0625\u0644\u063A\u0627\u0621 \u0645\u0647\u0645\u0629 \u0627\u0644\u062E\u0644\u0641\u064A\u0629 \u0647\u0630\u0647",
|
|
84883
|
+
"backgroundTasks.hideSteps": "\u0625\u062E\u0641\u0627\u0621 \u062E\u0637\u0648\u0627\u062A\u0647",
|
|
84884
|
+
"backgroundTasks.noStepsYet": "\u0644\u0627 \u062A\u0648\u062C\u062F \u062E\u0637\u0648\u0627\u062A \u0628\u0639\u062F.",
|
|
84885
|
+
"backgroundTasks.queued": "\u0641\u064A \u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u0627\u0646\u062A\u0638\u0627\u0631",
|
|
84886
|
+
"backgroundTasks.showSteps": "\u0625\u0638\u0647\u0627\u0631 \u062E\u0637\u0648\u0627\u062A\u0647",
|
|
84887
|
+
"backgroundTasks.stepRunning": "\u062C\u0627\u0631\u064D \u0627\u0644\u062A\u0634\u063A\u064A\u0644\u2026",
|
|
84774
84888
|
"bezierEditor.asCSS": "\u0643\u0640 CSS",
|
|
84775
84889
|
"bezierEditor.copyThisCurve": "\u0646\u0633\u062E \u0647\u0630\u0627 \u0627\u0644\u0645\u0646\u062D\u0646\u0649",
|
|
84776
84890
|
"bezierEditor.curve": "\u0645\u0646\u062D\u0646\u0649",
|
|
@@ -86882,7 +86996,9 @@ var require_ar = __commonJS({
|
|
|
86882
86996
|
"mentionInput.addReaction": "\u0625\u0636\u0627\u0641\u0629 \u0631\u062F \u0641\u0639\u0644",
|
|
86883
86997
|
"mentionInput.someone": "\u0634\u062E\u0635 \u0645\u0627",
|
|
86884
86998
|
"mentionMenu.removeMention": "\u0625\u0632\u0627\u0644\u0629 \u0627\u0644\u0625\u0634\u0627\u0631\u0629",
|
|
86999
|
+
"messageParts.fromPlugin": "\u0645\u0646 \u0627\u0644\u0645\u0643\u0648\u0646 \u0627\u0644\u0625\u0636\u0627\u0641\u064A {plugin}",
|
|
86885
87000
|
"messageParts.plan": "\u062E\u0637\u0629",
|
|
87001
|
+
"messageParts.pluginTool": "{plugin} \xB7 {tool}",
|
|
86886
87002
|
"messageParts.renderedView": "\u0639\u0631\u0636 \u0645\u064F\u0635\u064A\u0651\u064E\u0631",
|
|
86887
87003
|
"messageParts.thinking": "\u062C\u0627\u0631\u064A \u0627\u0644\u062A\u0641\u0643\u064A\u0631",
|
|
86888
87004
|
"minimap.minimapTapOrDragTo": "\u0627\u0644\u062E\u0631\u064A\u0637\u0629 \u0627\u0644\u0645\u0635\u063A\u0631\u0629 \u2014 \u0627\u0646\u0642\u0631 \u0623\u0648 \u0627\u0633\u062D\u0628 \u0644\u062A\u062D\u0631\u064A\u0643 \u0627\u0644\u0639\u0631\u0636\u060C \u0627\u0646\u0642\u0631 \u0645\u0631\u062A\u064A\u0646 \u0644\u0645\u0644\u0627\u0621\u0645\u0629 \u0627\u0644\u0635\u0641\u062D\u0629",
|
|
@@ -87477,6 +87593,7 @@ var require_ar = __commonJS({
|
|
|
87477
87593
|
"planBadge.freePlan": "\u0627\u0644\u062E\u0637\u0629 \u0627\u0644\u0645\u062C\u0627\u0646\u064A\u0629",
|
|
87478
87594
|
"planDialog.aICredits": "\u0631\u0635\u064A\u062F \u0627\u0644\u0630\u0643\u0627\u0621 \u0627\u0644\u0627\u0635\u0637\u0646\u0627\u0639\u064A",
|
|
87479
87595
|
"planDialog.aICreditsLeft": "\u0631\u0635\u064A\u062F \u0627\u0644\u0630\u0643\u0627\u0621 \u0627\u0644\u0627\u0635\u0637\u0646\u0627\u0639\u064A \u0627\u0644\u0645\u062A\u0628\u0642\u064A",
|
|
87596
|
+
"planDialog.appleIdTeamSlotTaken": "\u064A\u0645\u0643\u0646 \u0644\u062D\u0633\u0627\u0628 Apple \u0623\u0646 \u064A\u062D\u062A\u0648\u064A \u0639\u0644\u0649 \u0627\u0634\u062A\u0631\u0627\u0643 \u0634\u062E\u0635\u064A \u0648\u0627\u062D\u062F \u0648\u0627\u0634\u062A\u0631\u0627\u0643 \u0641\u0631\u064A\u0642 \u0648\u0627\u062D\u062F \u0641\u064A PopCraft. \u0627\u0634\u062A\u0631\u0627\u0643 \u0627\u0644\u0641\u0631\u064A\u0642 \u0639\u0644\u0649 \u062D\u0633\u0627\u0628 Apple \u0647\u0630\u0627 \u0645\u0648\u062C\u0648\u062F \u0628\u0627\u0644\u0641\u0639\u0644 \u0641\u064A \u0641\u0631\u064A\u0642 \u0622\u062E\u0631.",
|
|
87480
87597
|
"planDialog.billedToTheTeamSelected": "\u0628\u0645\u062C\u0631\u062F \u0627\u0633\u062A\u0646\u0641\u0627\u062F \u0623\u0631\u0635\u062F\u0629 \u0627\u0644\u0630\u0643\u0627\u0621 \u0627\u0644\u0627\u0635\u0637\u0646\u0627\u0639\u064A \u0644\u062E\u0637\u062A\u0643\u060C \u064A\u0635\u0628\u062D \u0627\u0644\u0630\u0643\u0627\u0621 \u0627\u0644\u0627\u0635\u0637\u0646\u0627\u0639\u064A \u0628\u0646\u0638\u0627\u0645 \u0627\u0644\u062F\u0641\u0639 \u062D\u0633\u0628 \u0627\u0644\u0627\u0633\u062A\u062E\u062F\u0627\u0645\u060C \u0648\u062A\u062A\u0645 \u0627\u0644\u0641\u0648\u062A\u0631\u0629 \u0628\u0646\u0627\u0621\u064B \u0639\u0644\u0649 \u0627\u0644\u0627\u0633\u062A\u0647\u0644\u0627\u0643.",
|
|
87481
87598
|
"planDialog.billedYearly": "{price} \u062A\u064F\u0641\u0648\u062A\u0631 \u0633\u0646\u0648\u064A\u064B\u0627",
|
|
87482
87599
|
"planDialog.billing": "\u0641\u062A\u0631\u0629 \u0627\u0644\u0641\u0648\u062A\u0631\u0629",
|
|
@@ -87557,6 +87674,8 @@ var require_ar = __commonJS({
|
|
|
87557
87674
|
"pluginImport.noImporterIsInstalledFor": "\u0644\u0627 \u064A\u0648\u062C\u062F \u0645\u0633\u062A\u0648\u0631\u062F \u0645\u062B\u0628\u062A \u0644\u0640 \u201C{name}\u201D",
|
|
87558
87675
|
"pluginImport.openAFileToImport": "\u0627\u0641\u062A\u062D \u0645\u0644\u0641\u064B\u0627 \u0644\u0644\u0627\u0633\u062A\u064A\u0631\u0627\u062F \u0625\u0644\u0649",
|
|
87559
87676
|
"pluginImport.producedNoLayers": "\u0644\u0645 \u064A\u0646\u062A\u062C \u201D{name}\u201C \u0623\u064A \u0637\u0628\u0642\u0627\u062A",
|
|
87677
|
+
"pluginOverlays.addAgentTools": "\u0627\u0645\u0646\u062D \u0648\u0643\u064A\u0644 \u0627\u0644\u0630\u0643\u0627\u0621 \u0627\u0644\u0627\u0635\u0637\u0646\u0627\u0639\u064A {count, plural, zero {\u0635\u0641\u0631 \u0623\u062F\u0627\u0629} one {# \u0623\u062F\u0627\u0629} two {# \u0623\u062F\u0627\u062A\u064A\u0646} few {# \u0623\u062F\u0648\u0627\u062A} many {# \u0623\u062F\u0627\u0629} other {# \u0623\u062F\u0627\u0629}} \u0627\u0644\u062A\u064A \u062A\u0634\u063A\u0644 \u0647\u0630\u0627 \u0627\u0644\u0645\u0643\u0648\u0646 \u0627\u0644\u0625\u0636\u0627\u0641\u064A",
|
|
87678
|
+
"pluginOverlays.addsAgentTools": "\u064A\u0636\u064A\u0641 {count, plural, zero {\u0635\u0641\u0631 \u0623\u062F\u0627\u0629 \u0648\u0643\u064A\u0644} one {# \u0623\u062F\u0627\u0629 \u0648\u0643\u064A\u0644} two {# \u0623\u062F\u0627\u062A\u064A \u0648\u0643\u064A\u0644} few {# \u0623\u062F\u0648\u0627\u062A \u0648\u0643\u064A\u0644} many {# \u0623\u062F\u0627\u0629 \u0648\u0643\u064A\u0644} other {# \u0623\u062F\u0627\u0629 \u0648\u0643\u064A\u0644}}",
|
|
87560
87679
|
"pluginOverlays.addsExport": "\u064A\u0636\u064A\u0641 \u0645\u0644\u0641 > \u062A\u0635\u062F\u064A\u0631 > {label}",
|
|
87561
87680
|
"pluginOverlays.allowAndRun": "\u0627\u0644\u0633\u0645\u0627\u062D \u0648\u0627\u0644\u062A\u0634\u063A\u064A\u0644",
|
|
87562
87681
|
"pluginOverlays.allowTo": "\u0627\u0644\u0633\u0645\u0627\u062D \u0644\u0640 \u201D{name}\u201C \u0628\u0640:",
|
|
@@ -89540,6 +89659,11 @@ var require_hi = __commonJS({
|
|
|
89540
89659
|
"audioMeter.thisTimelineHasNoSound": "\u0907\u0938 \u091F\u093E\u0907\u092E\u0932\u093E\u0907\u0928 \u092E\u0947\u0902 \u0905\u092D\u0940 \u0924\u0915 \u0915\u094B\u0908 \u0906\u0935\u093E\u091C\u093C \u0928\u0939\u0940\u0902 \u0939\u0948: \u0907\u0938\u0947 \u091A\u0932\u093E\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F \u0907\u0938\u0915\u0940 \u0932\u0947\u0928 \u092A\u0930 \u0911\u0921\u093F\u092F\u094B \u091C\u094B\u0921\u093C\u0947\u0902\u0964",
|
|
89541
89660
|
"backgroundTasks.backgroundTasks": "\u092C\u0948\u0915\u0917\u094D\u0930\u093E\u0909\u0902\u0921 \u0915\u093E\u0930\u094D\u092F{value}",
|
|
89542
89661
|
"backgroundTasks.cancelThisBackgroundTask": "\u0907\u0938 \u092C\u0948\u0915\u0917\u094D\u0930\u093E\u0909\u0902\u0921 \u0915\u093E\u0930\u094D\u092F \u0915\u094B \u0930\u0926\u094D\u0926 \u0915\u0930\u0947\u0902",
|
|
89662
|
+
"backgroundTasks.hideSteps": "\u0907\u0938\u0915\u0947 \u091A\u0930\u0923 \u091B\u093F\u092A\u093E\u090F\u0901",
|
|
89663
|
+
"backgroundTasks.noStepsYet": "\u0905\u092D\u0940 \u0924\u0915 \u0915\u094B\u0908 \u091A\u0930\u0923 \u0928\u0939\u0940\u0902\u0964",
|
|
89664
|
+
"backgroundTasks.queued": "\u0915\u0924\u093E\u0930\u092C\u0926\u094D\u0927",
|
|
89665
|
+
"backgroundTasks.showSteps": "\u0907\u0938\u0915\u0947 \u091A\u0930\u0923 \u0926\u093F\u0916\u093E\u090F\u0901",
|
|
89666
|
+
"backgroundTasks.stepRunning": "\u091A\u0932 \u0930\u0939\u093E \u0939\u0948\u2026",
|
|
89543
89667
|
"bezierEditor.asCSS": "CSS \u0915\u0947 \u0930\u0942\u092A \u092E\u0947\u0902",
|
|
89544
89668
|
"bezierEditor.copyThisCurve": "\u0907\u0938 \u0935\u0915\u094D\u0930 \u0915\u094B \u0915\u0949\u092A\u0940 \u0915\u0930\u0947\u0902",
|
|
89545
89669
|
"bezierEditor.curve": "\u0935\u0915\u094D\u0930",
|
|
@@ -91651,7 +91775,9 @@ var require_hi = __commonJS({
|
|
|
91651
91775
|
"mentionInput.addReaction": "\u092A\u094D\u0930\u0924\u093F\u0915\u094D\u0930\u093F\u092F\u093E \u091C\u094B\u0921\u093C\u0947\u0902",
|
|
91652
91776
|
"mentionInput.someone": "\u0915\u094B\u0908",
|
|
91653
91777
|
"mentionMenu.removeMention": "\u0909\u0932\u094D\u0932\u0947\u0916 \u0939\u091F\u093E\u090F\u0901",
|
|
91778
|
+
"messageParts.fromPlugin": "{plugin} \u092A\u094D\u0932\u0917\u0907\u0928 \u0938\u0947",
|
|
91654
91779
|
"messageParts.plan": "\u092F\u094B\u091C\u0928\u093E",
|
|
91780
|
+
"messageParts.pluginTool": "{plugin} \xB7 {tool}",
|
|
91655
91781
|
"messageParts.renderedView": "\u0930\u0947\u0902\u0921\u0930 \u0915\u093F\u092F\u093E \u0917\u092F\u093E \u0926\u0943\u0936\u094D\u092F",
|
|
91656
91782
|
"messageParts.thinking": "\u0938\u094B\u091A \u0930\u0939\u093E \u0939\u0948",
|
|
91657
91783
|
"minimap.minimapTapOrDragTo": "\u092E\u093F\u0928\u0940\u092E\u0948\u092A \u2014 \u0926\u0943\u0936\u094D\u092F \u0915\u094B \u0938\u094D\u0925\u093E\u0928\u093E\u0902\u0924\u0930\u093F\u0924 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F \u091F\u0948\u092A \u0915\u0930\u0947\u0902 \u092F\u093E \u0916\u0940\u0902\u091A\u0947\u0902, \u092A\u0943\u0937\u094D\u0920 \u0915\u094B \u092B\u093C\u093F\u091F \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F \u0921\u092C\u0932-\u091F\u0948\u092A \u0915\u0930\u0947\u0902",
|
|
@@ -92246,6 +92372,7 @@ var require_hi = __commonJS({
|
|
|
92246
92372
|
"planBadge.freePlan": "\u0928\u093F\u0903\u0936\u0941\u0932\u094D\u0915 \u092A\u094D\u0932\u093E\u0928",
|
|
92247
92373
|
"planDialog.aICredits": "AI \u0915\u094D\u0930\u0947\u0921\u093F\u091F",
|
|
92248
92374
|
"planDialog.aICreditsLeft": "\u0936\u0947\u0937 AI \u0915\u094D\u0930\u0947\u0921\u093F\u091F",
|
|
92375
|
+
"planDialog.appleIdTeamSlotTaken": "\u090F\u0915 Apple \u0916\u093E\u0924\u0947 \u092E\u0947\u0902 PopCraft \u092E\u0947\u0902 \u090F\u0915 \u0935\u094D\u092F\u0915\u094D\u0924\u093F\u0917\u0924 \u0914\u0930 \u090F\u0915 \u091F\u0940\u092E \u0938\u0926\u0938\u094D\u092F\u0924\u093E \u0939\u094B \u0938\u0915\u0924\u0940 \u0939\u0948\u0964 \u0907\u0938 Apple \u0916\u093E\u0924\u0947 \u092A\u0930 \u091F\u0940\u092E \u0938\u0926\u0938\u094D\u092F\u0924\u093E \u092A\u0939\u0932\u0947 \u0938\u0947 \u0939\u0940 \u0915\u093F\u0938\u0940 \u0905\u0928\u094D\u092F \u091F\u0940\u092E \u092E\u0947\u0902 \u0939\u0948\u0964",
|
|
92249
92376
|
"planDialog.billedToTheTeamSelected": "\u0906\u092A\u0915\u0947 \u092A\u094D\u0932\u093E\u0928 \u0915\u0947 AI \u0915\u094D\u0930\u0947\u0921\u093F\u091F \u0938\u092E\u093E\u092A\u094D\u0924 \u0939\u094B\u0928\u0947 \u0915\u0947 \u092C\u093E\u0926, AI \u0909\u092A\u092F\u094B\u0917 \u0915\u0947 \u0905\u0928\u0941\u0938\u093E\u0930 \u092D\u0941\u0917\u0924\u093E\u0928 \u0915\u0930\u0947\u0902 \u0915\u0947 \u0906\u0927\u093E\u0930 \u092A\u0930 \u0915\u093E\u092E \u0915\u0930\u0947\u0917\u093E, \u091C\u093F\u0938\u0915\u093E \u092C\u093F\u0932 \u0909\u092A\u092F\u094B\u0917 \u0915\u0947 \u0906\u0927\u093E\u0930 \u092A\u0930 \u0932\u093F\u092F\u093E \u091C\u093E\u090F\u0917\u093E\u0964",
|
|
92250
92377
|
"planDialog.billedYearly": "{price} \u0915\u093E \u092C\u093F\u0932 \u0938\u093E\u0932\u093E\u0928\u093E",
|
|
92251
92378
|
"planDialog.billing": "\u092C\u093F\u0932\u093F\u0902\u0917 \u0905\u0935\u0927\u093F",
|
|
@@ -92326,6 +92453,8 @@ var require_hi = __commonJS({
|
|
|
92326
92453
|
"pluginImport.noImporterIsInstalledFor": "\u201C{name}\u201D \u0915\u0947 \u0932\u093F\u090F \u0915\u094B\u0908 \u0906\u092F\u093E\u0924\u0915 \u0938\u094D\u0925\u093E\u092A\u093F\u0924 \u0928\u0939\u0940\u0902 \u0939\u0948",
|
|
92327
92454
|
"pluginImport.openAFileToImport": "\u0906\u092F\u093E\u0924 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F \u090F\u0915 \u092B\u093C\u093E\u0907\u0932 \u0916\u094B\u0932\u0947\u0902",
|
|
92328
92455
|
"pluginImport.producedNoLayers": "\u201C{name}\u201D \u0928\u0947 \u0915\u094B\u0908 \u092A\u0930\u0924\u0947\u0902 \u0928\u0939\u0940\u0902 \u092C\u0928\u093E\u0908\u0902",
|
|
92456
|
+
"pluginOverlays.addAgentTools": "AI \u090F\u091C\u0947\u0902\u091F \u0915\u094B {count, plural, one {# \u091F\u0942\u0932} other {# \u091F\u0942\u0932}} \u0926\u0947\u0902 \u091C\u094B \u0907\u0938 \u092A\u094D\u0932\u0917\u0907\u0928 \u0915\u094B \u091A\u0932\u093E\u0924\u0947 \u0939\u0948\u0902",
|
|
92457
|
+
"pluginOverlays.addsAgentTools": "{count, plural, one {# \u090F\u091C\u0947\u0902\u091F \u091F\u0942\u0932} other {# \u090F\u091C\u0947\u0902\u091F \u091F\u0942\u0932}} \u091C\u094B\u0921\u093C\u0924\u093E \u0939\u0948",
|
|
92329
92458
|
"pluginOverlays.addsExport": "\u092B\u093C\u093E\u0907\u0932 \u203A \u0928\u093F\u0930\u094D\u092F\u093E\u0924 \u203A {label} \u091C\u094B\u0921\u093C\u0924\u093E \u0939\u0948",
|
|
92330
92459
|
"pluginOverlays.allowAndRun": "\u0905\u0928\u0941\u092E\u0924\u093F \u0926\u0947\u0902 \u0914\u0930 \u091A\u0932\u093E\u090F\u0901",
|
|
92331
92460
|
"pluginOverlays.allowTo": "\u201C{name}\u201D \u0915\u094B \u0907\u0938\u0915\u0940 \u0905\u0928\u0941\u092E\u0924\u093F \u0926\u0947\u0902:",
|
|
@@ -94362,6 +94491,7 @@ function hasMessage(key5) {
|
|
|
94362
94491
|
var current2, loading, listeners, formats, asts;
|
|
94363
94492
|
var init_runtime = __esm({
|
|
94364
94493
|
"lib/i18n/runtime.ts"() {
|
|
94494
|
+
"use strict";
|
|
94365
94495
|
init_intl_messageformat();
|
|
94366
94496
|
init_icu_messageformat_parser();
|
|
94367
94497
|
init_catalogs();
|
|
@@ -96321,7 +96451,6 @@ async function sha256Prefix(bytes2) {
|
|
|
96321
96451
|
}
|
|
96322
96452
|
var init_media_hash = __esm({
|
|
96323
96453
|
"lib/storage/media-hash.ts"() {
|
|
96324
|
-
"use strict";
|
|
96325
96454
|
}
|
|
96326
96455
|
});
|
|
96327
96456
|
|
|
@@ -96704,7 +96833,6 @@ function releaseMediaMemory(hash3) {
|
|
|
96704
96833
|
var key2, peaksKey, objectUrls, sourceKey, remoteResolver, MEDIA_FETCH_TIMEOUT_MS, SHIPPED_MEDIA_PATH, notShipped, MEDIA_SCHEME, isImageDataUrl, memory, pendingLoads, sourceAliases, PAINT_KEYS, URL_KEYS;
|
|
96705
96834
|
var init_media_store = __esm({
|
|
96706
96835
|
"lib/storage/media-store.ts"() {
|
|
96707
|
-
"use strict";
|
|
96708
96836
|
init_media_types();
|
|
96709
96837
|
init_idb();
|
|
96710
96838
|
init_media_hash();
|
|
@@ -247766,7 +247894,6 @@ function repairCompositions(comps, nodes) {
|
|
|
247766
247894
|
var isObj5, finite6, optFinite, isVec2, TIMELINE_COLOR_IDS, TIMELINE_COLORS, UNITS, ORDERS, PROP_KEYS, ANIMATOR_ID, MOTION_TYPES, TRANSITIONS, isFraction, MEDIA_HASH;
|
|
247767
247895
|
var init_invariants = __esm({
|
|
247768
247896
|
"lib/motion/invariants.ts"() {
|
|
247769
|
-
"use strict";
|
|
247770
247897
|
init_easing();
|
|
247771
247898
|
init_properties();
|
|
247772
247899
|
init_markers();
|
|
@@ -247863,7 +247990,6 @@ function resyncText(doc2, ids2) {
|
|
|
247863
247990
|
var isVirtualId;
|
|
247864
247991
|
var init_invariants2 = __esm({
|
|
247865
247992
|
"lib/document/invariants.ts"() {
|
|
247866
|
-
"use strict";
|
|
247867
247993
|
init_auto_layout();
|
|
247868
247994
|
init_scene_graph();
|
|
247869
247995
|
init_text_bounds();
|
|
@@ -262550,7 +262676,6 @@ function invalidateMe() {
|
|
|
262550
262676
|
var ApiError, inFlight, fileUrl, meInFlight, provisioned, ME_TTL_MS, cloudApi;
|
|
262551
262677
|
var init_api4 = __esm({
|
|
262552
262678
|
"lib/client/cloud/api.ts"() {
|
|
262553
|
-
"use strict";
|
|
262554
262679
|
init_session();
|
|
262555
262680
|
init_plan_limit();
|
|
262556
262681
|
init_purchases();
|
|
@@ -262561,6 +262686,9 @@ var init_api4 = __esm({
|
|
|
262561
262686
|
this.code = code;
|
|
262562
262687
|
this.body = body;
|
|
262563
262688
|
}
|
|
262689
|
+
status;
|
|
262690
|
+
code;
|
|
262691
|
+
body;
|
|
262564
262692
|
/** `{ limit, max, used, tier, upgradeTo }` when a plan limit blocked the request (`code === 'plan_limit'`). */
|
|
262565
262693
|
get planLimit() {
|
|
262566
262694
|
if (this.code !== "plan_limit") return null;
|
|
@@ -262820,7 +262948,6 @@ function planEntryAction({ home }) {
|
|
|
262820
262948
|
var STORAGE_KEY2, useHyperyTeam, TEAM_PROMPT_ENABLED, TEAM_PROMPTED_KEY, PROMPTED_KEY, useTeamPrompt, started;
|
|
262821
262949
|
var init_team = __esm({
|
|
262822
262950
|
"lib/client/cloud/team.ts"() {
|
|
262823
|
-
"use strict";
|
|
262824
262951
|
init_esm();
|
|
262825
262952
|
init_api4();
|
|
262826
262953
|
init_session();
|
|
@@ -305384,13 +305511,13 @@ var init_output = __esm({
|
|
|
305384
305511
|
* prefer the `'target'` event for those cases.
|
|
305385
305512
|
*/
|
|
305386
305513
|
get target() {
|
|
305387
|
-
const
|
|
305514
|
+
const errorMessage4 = "Output.target cannot be used when using PathedTarget with an async callback. Use the 'target' event instead.";
|
|
305388
305515
|
if (this._rootTargetPromise) {
|
|
305389
|
-
throw new TypeError(
|
|
305516
|
+
throw new TypeError(errorMessage4);
|
|
305390
305517
|
}
|
|
305391
305518
|
const rootTargetResult = this._getRootTarget();
|
|
305392
305519
|
if (isThenable(rootTargetResult)) {
|
|
305393
|
-
throw new TypeError(
|
|
305520
|
+
throw new TypeError(errorMessage4);
|
|
305394
305521
|
}
|
|
305395
305522
|
return rootTargetResult;
|
|
305396
305523
|
}
|
|
@@ -311366,6 +311493,7 @@ async function dispatchShaped(key5, options) {
|
|
|
311366
311493
|
var onViolation;
|
|
311367
311494
|
var init_dispatch = __esm({
|
|
311368
311495
|
"lib/commands/dispatch.ts"() {
|
|
311496
|
+
"use strict";
|
|
311369
311497
|
init_errors();
|
|
311370
311498
|
init_registry();
|
|
311371
311499
|
init_confirm();
|
|
@@ -314555,18 +314683,18 @@ function textItems(node2, ctx2, raw = node2) {
|
|
|
314555
314683
|
}
|
|
314556
314684
|
embed.splice(0, embed.length, ...withSpaces);
|
|
314557
314685
|
}
|
|
314558
|
-
const
|
|
314686
|
+
const runs2 = /* @__PURE__ */ new Map();
|
|
314559
314687
|
for (const g of embed) {
|
|
314560
314688
|
const size6 = g.fontSize;
|
|
314561
314689
|
const key5 = `${size6}`;
|
|
314562
|
-
let run4 =
|
|
314690
|
+
let run4 = runs2.get(key5);
|
|
314563
314691
|
if (!run4) {
|
|
314564
314692
|
run4 = { size: size6, color: color4, alpha: alpha2, glyphs: [] };
|
|
314565
|
-
|
|
314693
|
+
runs2.set(key5, run4);
|
|
314566
314694
|
}
|
|
314567
314695
|
run4.glyphs.push({ font: g.font, gid: g.gid, codePoints: [], x: g.penX ?? g.x, y: g.baseline ?? g.y });
|
|
314568
314696
|
}
|
|
314569
|
-
items.push({ t: "text", runs: [...
|
|
314697
|
+
items.push({ t: "text", runs: [...runs2.values()] });
|
|
314570
314698
|
}
|
|
314571
314699
|
const outlineCmds = (gs) => ctx2.textCurves ? glyphCmds(gs) : ringsCmds(glyphInstancesToRings(gs));
|
|
314572
314700
|
const glyphRule = ctx2.textCurves ? "nonzero" : "evenodd";
|
|
@@ -317334,6 +317462,7 @@ function videoPixelSize(resolution, aspect) {
|
|
|
317334
317462
|
var VIDEO_ASPECTS, VIDEO_RESOLUTIONS, SEEDANCE_ASPECTS, range, VIDEO_MODELS, DEFAULT_VIDEO_MODEL, videoModel, VIDEO_LIMITS;
|
|
317335
317463
|
var init_video_models = __esm({
|
|
317336
317464
|
"lib/ai/video-models.ts"() {
|
|
317465
|
+
"use strict";
|
|
317337
317466
|
VIDEO_ASPECTS = ["16:9", "9:16", "1:1", "4:3", "3:4", "21:9"];
|
|
317338
317467
|
VIDEO_RESOLUTIONS = ["480p", "720p", "1080p"];
|
|
317339
317468
|
SEEDANCE_ASPECTS = ["16:9", "9:16", "1:1", "4:3", "3:4", "21:9"];
|
|
@@ -320541,6 +320670,7 @@ function buildDesignContext(doc2, maxChars = AI_LIMITS.maxContextChars) {
|
|
|
320541
320670
|
var hex8;
|
|
320542
320671
|
var init_context = __esm({
|
|
320543
320672
|
"lib/ai/context.ts"() {
|
|
320673
|
+
"use strict";
|
|
320544
320674
|
init_limits();
|
|
320545
320675
|
hex8 = (c2) => "#" + [c2.r, c2.g, c2.b].map((v) => Math.round(Math.max(0, Math.min(1, v)) * 255).toString(16).padStart(2, "0")).join("");
|
|
320546
320676
|
}
|
|
@@ -320880,6 +321010,7 @@ function outerSizeFor(want, inner, outer) {
|
|
|
320880
321010
|
var AUDIENCE_PRESETS, DEFAULT_AUDIENCE_RESOLUTION, MIN_SIDE, MAX_SIDE, FIT_OPEN_SIZE, clampSide, formatResolution, sameResolution, captureSize;
|
|
320881
321011
|
var init_resolution = __esm({
|
|
320882
321012
|
"lib/slides/audience/resolution.ts"() {
|
|
321013
|
+
"use strict";
|
|
320883
321014
|
init_stage_view();
|
|
320884
321015
|
AUDIENCE_PRESETS = [
|
|
320885
321016
|
{ id: "720p", label: "1280 \xD7 720 (720p)", resolution: { kind: "fixed", width: 1280, height: 720 } },
|
|
@@ -323162,11 +323293,11 @@ function textRuns(t3) {
|
|
|
323162
323293
|
const text = t3.characters ?? "";
|
|
323163
323294
|
const segs = [...t3.styledSegments ?? []].filter((s) => s.end > s.start).sort((a, b) => a.start - b.start);
|
|
323164
323295
|
if (!segs.length && !t3.link) return void 0;
|
|
323165
|
-
const
|
|
323296
|
+
const runs2 = [];
|
|
323166
323297
|
const push2 = (from2, to, seg) => {
|
|
323167
323298
|
if (to <= from2) return;
|
|
323168
323299
|
const link2 = seg?.link ?? t3.link;
|
|
323169
|
-
|
|
323300
|
+
runs2.push({ text: text.slice(from2, to), style: seg ? runStyle(seg) : {}, ...link2 ? { link: link2 } : {} });
|
|
323170
323301
|
};
|
|
323171
323302
|
let at4 = 0;
|
|
323172
323303
|
for (const s of segs) {
|
|
@@ -323176,7 +323307,7 @@ function textRuns(t3) {
|
|
|
323176
323307
|
at4 = Math.max(at4, end);
|
|
323177
323308
|
}
|
|
323178
323309
|
push2(at4, text.length);
|
|
323179
|
-
return
|
|
323310
|
+
return runs2;
|
|
323180
323311
|
}
|
|
323181
323312
|
var init_richtext = __esm({
|
|
323182
323313
|
"lib/io/web/richtext.ts"() {
|
|
@@ -323937,8 +324068,8 @@ function buildPlainTree(doc2, nodeId2, opts = {}, start2, hooks = {}) {
|
|
|
323937
324068
|
...t3.letterSpacing ? { letterSpacing: t3.letterSpacing } : {},
|
|
323938
324069
|
...t3.lineHeight !== "AUTO" ? { lineHeight: t3.lineHeight } : {}
|
|
323939
324070
|
};
|
|
323940
|
-
const
|
|
323941
|
-
if (
|
|
324071
|
+
const runs2 = textRuns(t3);
|
|
324072
|
+
if (runs2) web.runs = runs2;
|
|
323942
324073
|
}
|
|
323943
324074
|
const tl = timeline?.get(node2.id);
|
|
323944
324075
|
const mo = tl ?? motion?.children.get(node2.id);
|
|
@@ -327685,7 +327816,7 @@ var init_package = __esm({
|
|
|
327685
327816
|
"packages/runtime/package.json"() {
|
|
327686
327817
|
package_default = {
|
|
327687
327818
|
name: "@popcraft/runtime",
|
|
327688
|
-
version: "0.42.
|
|
327819
|
+
version: "0.42.3",
|
|
327689
327820
|
description: "What code exported from PopCraft shares: the meaning of expressions (operators and functions) and, as it grows, the parts of a design's behaviour that are common code rather than generated React.",
|
|
327690
327821
|
license: "MIT",
|
|
327691
327822
|
homepage: "https://popcraft.app/docs/exporting/nextjs",
|
|
@@ -352351,6 +352482,7 @@ function exportsOf(source3) {
|
|
|
352351
352482
|
var CODE_LIMITS, packageOf;
|
|
352352
352483
|
var init_source2 = __esm({
|
|
352353
352484
|
"lib/code/source.ts"() {
|
|
352485
|
+
"use strict";
|
|
352354
352486
|
CODE_LIMITS = { modules: 100, sourceLength: 2e5, packages: 12 };
|
|
352355
352487
|
packageOf = (spec) => spec.split("/").slice(0, spec.startsWith("@") ? 2 : 1).join("/");
|
|
352356
352488
|
}
|
|
@@ -352393,6 +352525,7 @@ function compileModule(module2) {
|
|
|
352393
352525
|
var import_sucrase, BUILT_IN, memo4;
|
|
352394
352526
|
var init_compile2 = __esm({
|
|
352395
352527
|
"lib/code/compile.ts"() {
|
|
352528
|
+
"use strict";
|
|
352396
352529
|
import_sucrase = __toESM(require_dist2());
|
|
352397
352530
|
init_source2();
|
|
352398
352531
|
init_source2();
|
|
@@ -362435,7 +362568,7 @@ var init_theme_store = __esm({
|
|
|
362435
362568
|
init_tauri();
|
|
362436
362569
|
IDB_KEY = "popcraft-themes";
|
|
362437
362570
|
useThemeStore = create2((setState, getState2) => {
|
|
362438
|
-
const
|
|
362571
|
+
const persist2 = () => {
|
|
362439
362572
|
const { activeThemeId, userThemes, accent } = getState2();
|
|
362440
362573
|
void set3(IDB_KEY, { activeThemeId, userThemes, accent }).then(announceThemeChange, announceThemeChange);
|
|
362441
362574
|
};
|
|
@@ -362463,14 +362596,14 @@ var init_theme_store = __esm({
|
|
|
362463
362596
|
},
|
|
362464
362597
|
setAccent: (accent) => {
|
|
362465
362598
|
setState({ accent });
|
|
362466
|
-
|
|
362599
|
+
persist2();
|
|
362467
362600
|
},
|
|
362468
362601
|
setSystemAccent: (hex10) => {
|
|
362469
362602
|
if (hex10 !== getState2().systemAccent) setState({ systemAccent: hex10 });
|
|
362470
362603
|
},
|
|
362471
362604
|
setActiveTheme: (id3) => {
|
|
362472
362605
|
setState({ activeThemeId: id3, draft: {} });
|
|
362473
|
-
|
|
362606
|
+
persist2();
|
|
362474
362607
|
},
|
|
362475
362608
|
setDraftToken: (id3, value3) => setState((s) => {
|
|
362476
362609
|
const draft = { ...s.draft };
|
|
@@ -362482,14 +362615,14 @@ var init_theme_store = __esm({
|
|
|
362482
362615
|
saveUserTheme: (theme) => {
|
|
362483
362616
|
const t3 = validateTheme(theme);
|
|
362484
362617
|
setState((s) => ({ userThemes: [...s.userThemes.filter((u) => u.id !== t3.id), t3] }));
|
|
362485
|
-
|
|
362618
|
+
persist2();
|
|
362486
362619
|
},
|
|
362487
362620
|
removeUserTheme: (id3) => {
|
|
362488
362621
|
setState((s) => ({
|
|
362489
362622
|
userThemes: s.userThemes.filter((u) => u.id !== id3),
|
|
362490
362623
|
activeThemeId: s.activeThemeId === id3 ? INITIAL_THEME_ID : s.activeThemeId
|
|
362491
362624
|
}));
|
|
362492
|
-
|
|
362625
|
+
persist2();
|
|
362493
362626
|
},
|
|
362494
362627
|
commitDraft: (name2) => {
|
|
362495
362628
|
const s = getState2();
|
|
@@ -362510,7 +362643,7 @@ var init_theme_store = __esm({
|
|
|
362510
362643
|
};
|
|
362511
362644
|
s.saveUserTheme(theme);
|
|
362512
362645
|
setState({ activeThemeId: theme.id, draft: {} });
|
|
362513
|
-
|
|
362646
|
+
persist2();
|
|
362514
362647
|
return theme.id;
|
|
362515
362648
|
},
|
|
362516
362649
|
duplicateActive: (name2) => {
|
|
@@ -362526,7 +362659,7 @@ var init_theme_store = __esm({
|
|
|
362526
362659
|
};
|
|
362527
362660
|
s.saveUserTheme(theme);
|
|
362528
362661
|
setState({ activeThemeId: theme.id, draft: {} });
|
|
362529
|
-
|
|
362662
|
+
persist2();
|
|
362530
362663
|
return theme.id;
|
|
362531
362664
|
},
|
|
362532
362665
|
setUserThemeCss: (id3, css) => {
|
|
@@ -365305,7 +365438,7 @@ async function runAgentLoop(opts) {
|
|
|
365305
365438
|
onToolStart(info2) ?? null;
|
|
365306
365439
|
}
|
|
365307
365440
|
}
|
|
365308
|
-
let
|
|
365441
|
+
let runs2 = await (Promise.all(batch.map(async (info2) => {
|
|
365309
365442
|
{
|
|
365310
365443
|
try {
|
|
365311
365444
|
{
|
|
@@ -365320,7 +365453,7 @@ async function runAgentLoop(opts) {
|
|
|
365320
365453
|
}
|
|
365321
365454
|
}) ?? null) ?? null);
|
|
365322
365455
|
let onToolEnd = hook(hooks, "onToolEnd") ?? null;
|
|
365323
|
-
for (const run4 of
|
|
365456
|
+
for (const run4 of runs2) {
|
|
365324
365457
|
let actedHere = ((__v) => __v == null ? "null" : typeof __v)(run4.acted) === "boolean" ? run4.acted : actingNames.has(run4.name) ?? null;
|
|
365325
365458
|
if (run4.ok === true && actedHere) {
|
|
365326
365459
|
acted = true;
|
|
@@ -365440,7 +365573,7 @@ function createAgentRuntime(host) {
|
|
|
365440
365573
|
emit6({ type: "session", sessionId: s.id, status: s.status, profile: s.profile, description: s.description }) ?? null;
|
|
365441
365574
|
}
|
|
365442
365575
|
};
|
|
365443
|
-
let
|
|
365576
|
+
let persist2 = (s) => {
|
|
365444
365577
|
{
|
|
365445
365578
|
changed() ?? null;
|
|
365446
365579
|
if (host.store == null || ((__v) => __v == null ? "null" : typeof __v)(host.store) !== "object") {
|
|
@@ -365585,7 +365718,7 @@ function createAgentRuntime(host) {
|
|
|
365585
365718
|
parentQueue.push("Agent " + session3.id + " (" + session3.profile + ") " + (ok2 ? "finished" : "failed") + ":\n" + summary) ?? null;
|
|
365586
365719
|
}
|
|
365587
365720
|
sessionEvent(session3) ?? null;
|
|
365588
|
-
|
|
365721
|
+
persist2(session3) ?? null;
|
|
365589
365722
|
return { ok: ok2, summary, rounds };
|
|
365590
365723
|
}
|
|
365591
365724
|
};
|
|
@@ -365660,7 +365793,7 @@ function createAgentRuntime(host) {
|
|
|
365660
365793
|
}
|
|
365661
365794
|
s.status = "stopped";
|
|
365662
365795
|
s.endedAt = now2() ?? null;
|
|
365663
|
-
|
|
365796
|
+
persist2(s) ?? null;
|
|
365664
365797
|
return true;
|
|
365665
365798
|
}
|
|
365666
365799
|
};
|
|
@@ -365792,7 +365925,7 @@ function createAgentRuntime(host) {
|
|
|
365792
365925
|
}
|
|
365793
365926
|
if (session3.status === "running" || session3.status === "queued") {
|
|
365794
365927
|
session3.inbox.push(text) ?? null;
|
|
365795
|
-
|
|
365928
|
+
persist2(session3) ?? null;
|
|
365796
365929
|
return { kind: "queued", id: id3 };
|
|
365797
365930
|
}
|
|
365798
365931
|
let profile = profileById(session3.profile) ?? null;
|
|
@@ -365838,6 +365971,11 @@ var init_runtime5 = __esm({
|
|
|
365838
365971
|
});
|
|
365839
365972
|
|
|
365840
365973
|
// node_modules/.pnpm/@hyperyai+sdk@2.1.0_@types+react-dom@19.3.0_@types+react@19.3.0__@types+react@19.3.0_re_62022f8c0abbfd4c405f5fb20b5aa9ec/node_modules/@hyperyai/sdk/dist/agents/core/types.js
|
|
365974
|
+
function forceTool(name2) {
|
|
365975
|
+
{
|
|
365976
|
+
return { type: "function", function: { name: name2 } };
|
|
365977
|
+
}
|
|
365978
|
+
}
|
|
365841
365979
|
var init_types9 = __esm({
|
|
365842
365980
|
"node_modules/.pnpm/@hyperyai+sdk@2.1.0_@types+react-dom@19.3.0_@types+react@19.3.0__@types+react@19.3.0_re_62022f8c0abbfd4c405f5fb20b5aa9ec/node_modules/@hyperyai/sdk/dist/agents/core/types.js"() {
|
|
365843
365981
|
}
|
|
@@ -365900,14 +366038,119 @@ function sessionStore(kv, scope) {
|
|
|
365900
366038
|
} };
|
|
365901
366039
|
}
|
|
365902
366040
|
}
|
|
366041
|
+
function runStore(kv, scope) {
|
|
366042
|
+
{
|
|
366043
|
+
let prefix = (scope ?? "default") + ":run:";
|
|
366044
|
+
return { get: async (id3) => {
|
|
366045
|
+
{
|
|
366046
|
+
return await (kv.get(prefix + id3) ?? null);
|
|
366047
|
+
}
|
|
366048
|
+
}, save: async (run4) => {
|
|
366049
|
+
{
|
|
366050
|
+
await (kv.set(prefix + run4.id, run4) ?? null);
|
|
366051
|
+
}
|
|
366052
|
+
}, list: async () => {
|
|
366053
|
+
{
|
|
366054
|
+
return await (loadAll(kv, prefix) ?? null);
|
|
366055
|
+
}
|
|
366056
|
+
}, remove: async (id3) => {
|
|
366057
|
+
{
|
|
366058
|
+
await ((kv["delete"] ?? null)(prefix + id3) ?? null);
|
|
366059
|
+
}
|
|
366060
|
+
} };
|
|
366061
|
+
}
|
|
366062
|
+
}
|
|
365903
366063
|
var init_store = __esm({
|
|
365904
366064
|
"node_modules/.pnpm/@hyperyai+sdk@2.1.0_@types+react-dom@19.3.0_@types+react@19.3.0__@types+react@19.3.0_re_62022f8c0abbfd4c405f5fb20b5aa9ec/node_modules/@hyperyai/sdk/dist/agents/core/store.js"() {
|
|
365905
366065
|
}
|
|
365906
366066
|
});
|
|
365907
366067
|
|
|
365908
366068
|
// node_modules/.pnpm/@hyperyai+sdk@2.1.0_@types+react-dom@19.3.0_@types+react@19.3.0__@types+react@19.3.0_re_62022f8c0abbfd4c405f5fb20b5aa9ec/node_modules/@hyperyai/sdk/dist/agents/core/run.js
|
|
366069
|
+
function errorMessage3(err2) {
|
|
366070
|
+
{
|
|
366071
|
+
if (err2 != null && ((__v) => __v == null ? "null" : typeof __v)(err2) === "object" && ((__v) => __v == null ? "null" : typeof __v)(err2.message) === "string") {
|
|
366072
|
+
return err2.message;
|
|
366073
|
+
}
|
|
366074
|
+
return String(err2) ?? null;
|
|
366075
|
+
}
|
|
366076
|
+
}
|
|
366077
|
+
async function runPersistent(opts) {
|
|
366078
|
+
{
|
|
366079
|
+
let now2 = ((__v) => __v == null ? "null" : typeof __v)(opts.now) === "function" ? opts.now : () => {
|
|
366080
|
+
{
|
|
366081
|
+
return Date.now() ?? null;
|
|
366082
|
+
}
|
|
366083
|
+
};
|
|
366084
|
+
let existing = await (opts.runs.get(opts.id) ?? null);
|
|
366085
|
+
let createdAt = existing != null ? existing.createdAt : now2() ?? null;
|
|
366086
|
+
let record2 = (status3, checkpoint) => {
|
|
366087
|
+
{
|
|
366088
|
+
let todos = opts.todos != null && ((__v) => __v == null ? "null" : typeof __v)(opts.todos) === "object" ? opts.todos.get() ?? null : existing != null ? existing.todos ?? null : null;
|
|
366089
|
+
let meta3 = opts.meta ?? (existing != null ? existing.meta ?? null : null);
|
|
366090
|
+
return { id: opts.id, createdAt, updatedAt: now2() ?? null, meta: meta3, todos, status: status3, checkpoint };
|
|
366091
|
+
}
|
|
366092
|
+
};
|
|
366093
|
+
let first2 = existing != null ? existing.checkpoint : { messages: opts.messages, round: 0, acted: false, nudgesLeft: 0, done: false };
|
|
366094
|
+
await (opts.runs.save(record2("running", first2) ?? null) ?? null);
|
|
366095
|
+
let mark2 = async (status3, error62) => {
|
|
366096
|
+
{
|
|
366097
|
+
let saved = await (opts.runs.get(opts.id) ?? null);
|
|
366098
|
+
if (saved != null) {
|
|
366099
|
+
let next2 = { ...saved, status: status3, updatedAt: now2() ?? null };
|
|
366100
|
+
if (((__v) => __v == null ? "null" : typeof __v)(error62) === "string") {
|
|
366101
|
+
next2.error = error62;
|
|
366102
|
+
}
|
|
366103
|
+
await (opts.runs.save(next2) ?? null);
|
|
366104
|
+
}
|
|
366105
|
+
}
|
|
366106
|
+
};
|
|
366107
|
+
let outcome = null;
|
|
366108
|
+
try {
|
|
366109
|
+
{
|
|
366110
|
+
outcome = await (runAgentLoop({ ...opts, checkpoint: async (state) => {
|
|
366111
|
+
{
|
|
366112
|
+
await (opts.runs.save(record2(state.done ? "done" : "running", state) ?? null) ?? null);
|
|
366113
|
+
if (((__v) => __v == null ? "null" : typeof __v)(opts.checkpoint) === "function") {
|
|
366114
|
+
await (opts.checkpoint(state) ?? null);
|
|
366115
|
+
}
|
|
366116
|
+
}
|
|
366117
|
+
} }) ?? null);
|
|
366118
|
+
}
|
|
366119
|
+
} catch (err2) {
|
|
366120
|
+
{
|
|
366121
|
+
await (mark2("error", errorMessage3(err2) ?? null) ?? null);
|
|
366122
|
+
throw err2;
|
|
366123
|
+
}
|
|
366124
|
+
}
|
|
366125
|
+
if (outcome.stopped) {
|
|
366126
|
+
await (mark2("stopped", null) ?? null);
|
|
366127
|
+
}
|
|
366128
|
+
return outcome;
|
|
366129
|
+
}
|
|
366130
|
+
}
|
|
366131
|
+
async function interruptedRuns(runs2, activeIds) {
|
|
366132
|
+
{
|
|
366133
|
+
let active3 = new Set(activeIds ?? []) ?? null;
|
|
366134
|
+
return (await (runs2.list() ?? null)).filter((r) => {
|
|
366135
|
+
{
|
|
366136
|
+
return r.status === "running" && !(active3.has(r.id) ?? null);
|
|
366137
|
+
}
|
|
366138
|
+
}) ?? null;
|
|
366139
|
+
}
|
|
366140
|
+
}
|
|
366141
|
+
async function resumeRun(id3, runs2, options) {
|
|
366142
|
+
{
|
|
366143
|
+
let saved = await (runs2.get(id3) ?? null);
|
|
366144
|
+
if (saved == null) {
|
|
366145
|
+
throw { message: 'No saved run "' + id3 + '".', code: "not_found" };
|
|
366146
|
+
}
|
|
366147
|
+
let cp = saved.checkpoint;
|
|
366148
|
+
return await (runPersistent({ ...options, id: id3, runs: runs2, messages: cp.messages.concat([{ role: "user", content: "The session was interrupted and has resumed. Check the state of your work, then carry on where you left off." }]) ?? null, resumeState: { round: cp.round, acted: cp.acted, nudgesLeft: cp.nudgesLeft }, meta: options.meta ?? saved.meta ?? null }) ?? null);
|
|
366149
|
+
}
|
|
366150
|
+
}
|
|
365909
366151
|
var init_run = __esm({
|
|
365910
366152
|
"node_modules/.pnpm/@hyperyai+sdk@2.1.0_@types+react-dom@19.3.0_@types+react@19.3.0__@types+react@19.3.0_re_62022f8c0abbfd4c405f5fb20b5aa9ec/node_modules/@hyperyai/sdk/dist/agents/core/run.js"() {
|
|
366153
|
+
init_loop();
|
|
365911
366154
|
}
|
|
365912
366155
|
});
|
|
365913
366156
|
|
|
@@ -365997,11 +366240,6 @@ var init_stream_parse = __esm({
|
|
|
365997
366240
|
});
|
|
365998
366241
|
|
|
365999
366242
|
// lib/agent/gateway.ts
|
|
366000
|
-
async function streamChat(opts, handlers = {}, signal) {
|
|
366001
|
-
const call2 = createHyperyModel2({ ...session2, model: opts.model, maxTokens: opts.maxTokens, temperature: opts.temperature });
|
|
366002
|
-
const turn = await call2(opts.messages, opts.tools ?? [], handlers, signal);
|
|
366003
|
-
return { text: turn.text, reasoning: turn.reasoning ?? "", toolCalls: turn.toolCalls };
|
|
366004
|
-
}
|
|
366005
366243
|
var session2, agentModel;
|
|
366006
366244
|
var init_gateway = __esm({
|
|
366007
366245
|
"lib/agent/gateway.ts"() {
|
|
@@ -366030,11 +366268,192 @@ var init_gateway = __esm({
|
|
|
366030
366268
|
}
|
|
366031
366269
|
});
|
|
366032
366270
|
|
|
366033
|
-
// lib/agent/
|
|
366034
|
-
|
|
366035
|
-
|
|
366271
|
+
// lib/agent/turn-recovery.ts
|
|
366272
|
+
function wantsChange(text) {
|
|
366273
|
+
const body = text.trim();
|
|
366274
|
+
if (!body) return false;
|
|
366275
|
+
return !(body.endsWith("?") && QUESTION_START.test(body));
|
|
366276
|
+
}
|
|
366277
|
+
function createActionGuard(opts) {
|
|
366278
|
+
const maxReads = opts.maxReadRounds ?? MAX_READ_ROUNDS;
|
|
366279
|
+
const maxNudges = opts.nudges ?? ACTION_NUDGES;
|
|
366280
|
+
let readRounds = opts.initial?.readRounds ?? 0;
|
|
366281
|
+
let nudges = opts.initial?.nudges ?? 0;
|
|
366282
|
+
let acted = false;
|
|
366283
|
+
let actedThisRound = false;
|
|
366284
|
+
let ranThisRound = false;
|
|
366285
|
+
let notes = [];
|
|
366286
|
+
let choice = null;
|
|
366287
|
+
let budgetSpent = readRounds >= maxReads;
|
|
366288
|
+
return {
|
|
366289
|
+
onRun(run4, changed) {
|
|
366290
|
+
ranThisRound = true;
|
|
366291
|
+
if (run4.ok && changed) {
|
|
366292
|
+
acted = true;
|
|
366293
|
+
actedThisRound = true;
|
|
366294
|
+
}
|
|
366295
|
+
},
|
|
366296
|
+
onRoundEnd() {
|
|
366297
|
+
if (!opts.enabled || acted || !ranThisRound) {
|
|
366298
|
+
ranThisRound = false;
|
|
366299
|
+
actedThisRound = false;
|
|
366300
|
+
return;
|
|
366301
|
+
}
|
|
366302
|
+
if (!actedThisRound) readRounds++;
|
|
366303
|
+
ranThisRound = false;
|
|
366304
|
+
actedThisRound = false;
|
|
366305
|
+
if (!budgetSpent && readRounds >= maxReads) {
|
|
366306
|
+
budgetSpent = true;
|
|
366307
|
+
notes.push(READ_BUDGET_NOTE);
|
|
366308
|
+
choice = "required";
|
|
366309
|
+
}
|
|
366310
|
+
},
|
|
366311
|
+
onNudge() {
|
|
366312
|
+
nudges++;
|
|
366313
|
+
if (opts.enabled && nudges >= maxNudges && opts.writeTool) choice = forceTool(opts.writeTool);
|
|
366314
|
+
else if (opts.enabled) choice = "required";
|
|
366315
|
+
return nudges;
|
|
366316
|
+
},
|
|
366317
|
+
drain() {
|
|
366318
|
+
const out = notes;
|
|
366319
|
+
notes = [];
|
|
366320
|
+
return out;
|
|
366321
|
+
},
|
|
366322
|
+
toolChoice() {
|
|
366323
|
+
if (acted) return null;
|
|
366324
|
+
const c2 = choice;
|
|
366325
|
+
choice = null;
|
|
366326
|
+
return c2;
|
|
366327
|
+
},
|
|
366328
|
+
get acted() {
|
|
366329
|
+
return acted;
|
|
366330
|
+
},
|
|
366331
|
+
state: () => ({ readRounds, nudges, forced: budgetSpent })
|
|
366332
|
+
};
|
|
366333
|
+
}
|
|
366334
|
+
function createToolLedger(initial = null) {
|
|
366335
|
+
let done = { ...initial ?? {} };
|
|
366336
|
+
return {
|
|
366337
|
+
get: (id3) => done[id3],
|
|
366338
|
+
record: (run4) => {
|
|
366339
|
+
done = { ...done, [run4.id]: { id: run4.id, name: run4.name, argsText: run4.argsText, ok: run4.ok, summary: run4.summary, content: run4.content } };
|
|
366340
|
+
},
|
|
366341
|
+
entries: () => done,
|
|
366342
|
+
clear: () => {
|
|
366343
|
+
done = {};
|
|
366344
|
+
}
|
|
366345
|
+
};
|
|
366346
|
+
}
|
|
366347
|
+
async function runOnce(ledger, call2, run4) {
|
|
366348
|
+
const seen = ledger.get(call2.id);
|
|
366349
|
+
if (seen) return { ...seen, acted: false, replayed: true };
|
|
366350
|
+
const result = await run4();
|
|
366351
|
+
ledger.record(result);
|
|
366352
|
+
return result;
|
|
366353
|
+
}
|
|
366354
|
+
function resumeTranscript(checkpoint, pending8, ledger) {
|
|
366355
|
+
if (!pending8?.calls.length) return checkpoint;
|
|
366356
|
+
const answered = new Set(checkpoint.filter((m) => m.role === "tool").map((m) => m.tool_call_id));
|
|
366357
|
+
if (pending8.calls.every((c2) => answered.has(c2.id))) return checkpoint;
|
|
366358
|
+
const assistant = {
|
|
366359
|
+
role: "assistant",
|
|
366360
|
+
content: pending8.text,
|
|
366361
|
+
tool_calls: pending8.calls.map((c2) => ({ id: c2.id, type: "function", function: { name: c2.name, arguments: c2.argsText } }))
|
|
366362
|
+
};
|
|
366363
|
+
const answers = pending8.calls.map((c2) => ledger?.[c2.id]).filter((e) => !!e).map((e) => ({ role: "tool", tool_call_id: e.id, name: e.name, content: e.content }));
|
|
366364
|
+
return [...checkpoint, assistant, ...answers];
|
|
366365
|
+
}
|
|
366366
|
+
function whenResumable(signals = browserSignals(), signal, offlineWaitMs = 0) {
|
|
366367
|
+
if (!signals || signal?.aborted) return Promise.resolve();
|
|
366368
|
+
const visible2 = () => !signals.hidden() ? Promise.resolve() : new Promise((resolve7) => {
|
|
366369
|
+
const done = () => {
|
|
366370
|
+
off();
|
|
366371
|
+
signal?.removeEventListener("abort", done);
|
|
366372
|
+
resolve7();
|
|
366373
|
+
};
|
|
366374
|
+
const off = signals.subscribe(() => {
|
|
366375
|
+
if (!signals.hidden()) done();
|
|
366376
|
+
});
|
|
366377
|
+
signal?.addEventListener("abort", done);
|
|
366378
|
+
});
|
|
366379
|
+
return visible2().then(() => {
|
|
366380
|
+
if (!offlineWaitMs || signals.online() || signal?.aborted) return;
|
|
366381
|
+
return new Promise((resolve7) => {
|
|
366382
|
+
const done = () => {
|
|
366383
|
+
clearTimeout(timer);
|
|
366384
|
+
off();
|
|
366385
|
+
signal?.removeEventListener("abort", done);
|
|
366386
|
+
resolve7();
|
|
366387
|
+
};
|
|
366388
|
+
const timer = setTimeout(done, offlineWaitMs);
|
|
366389
|
+
const off = signals.subscribe(() => {
|
|
366390
|
+
if (signals.online()) done();
|
|
366391
|
+
});
|
|
366392
|
+
signal?.addEventListener("abort", done);
|
|
366393
|
+
});
|
|
366394
|
+
});
|
|
366395
|
+
}
|
|
366396
|
+
function isInterruption(err2, hidden2 = false) {
|
|
366397
|
+
if (hidden2) return true;
|
|
366398
|
+
const e = err2 ?? {};
|
|
366399
|
+
if (e.code === "ai_timeout") return true;
|
|
366400
|
+
if (typeof e.status === "number") return e.status >= 500 || e.status === 408;
|
|
366401
|
+
const text = `${String(e.name ?? "")} ${String(e.code ?? "")} ${String(e.message ?? "")}`.toLowerCase();
|
|
366402
|
+
return ["load failed", "failed to fetch", "network", "fetch failed", "econnreset", "socket", "stream", "stalled", "timed out", "timeout"].some((w) => text.includes(w));
|
|
366403
|
+
}
|
|
366404
|
+
function serialRuns(inner) {
|
|
366405
|
+
const latest = /* @__PURE__ */ new Map();
|
|
366406
|
+
let queue2 = Promise.resolve();
|
|
366407
|
+
return {
|
|
366408
|
+
peek: (id3) => latest.get(id3),
|
|
366409
|
+
get: async (id3) => latest.get(id3) ?? inner.get(id3),
|
|
366410
|
+
save: (rec) => {
|
|
366411
|
+
latest.set(rec.id, rec);
|
|
366412
|
+
const write3 = queue2.then(() => inner.save(rec));
|
|
366413
|
+
queue2 = write3.catch(() => {
|
|
366414
|
+
});
|
|
366415
|
+
return write3;
|
|
366416
|
+
},
|
|
366417
|
+
list: async () => {
|
|
366418
|
+
await queue2;
|
|
366419
|
+
return inner.list();
|
|
366420
|
+
},
|
|
366421
|
+
remove: (id3) => {
|
|
366422
|
+
latest.delete(id3);
|
|
366423
|
+
const write3 = queue2.then(() => inner.remove(id3));
|
|
366424
|
+
queue2 = write3.catch(() => {
|
|
366425
|
+
});
|
|
366426
|
+
return write3;
|
|
366427
|
+
}
|
|
366428
|
+
};
|
|
366429
|
+
}
|
|
366430
|
+
var ACTION_NUDGES, MAX_READ_ROUNDS, READ_BUDGET_NOTE, ACTION_NUDGE, QUESTION_START, browserSignals;
|
|
366431
|
+
var init_turn_recovery = __esm({
|
|
366432
|
+
"lib/agent/turn-recovery.ts"() {
|
|
366036
366433
|
"use strict";
|
|
366037
366434
|
init_agents();
|
|
366435
|
+
ACTION_NUDGES = 2;
|
|
366436
|
+
MAX_READ_ROUNDS = 4;
|
|
366437
|
+
READ_BUDGET_NOTE = "You have read enough to start. Make the change now with a tool that edits the document; read more only if a write fails.";
|
|
366438
|
+
ACTION_NUDGE = "Nothing has changed in the document yet. Make the change that was asked for now, with a tool that edits the document. If you truly cannot, say exactly what is blocking you.";
|
|
366439
|
+
QUESTION_START = /^(what|why|how|which|who|where|when|is|are|does|do|did|can you (explain|tell)|could you (explain|tell)|explain|describe|tell me|list|show me what)\b/i;
|
|
366440
|
+
browserSignals = () => {
|
|
366441
|
+
if (typeof document === "undefined" || typeof window === "undefined") return null;
|
|
366442
|
+
return {
|
|
366443
|
+
hidden: () => document.visibilityState === "hidden",
|
|
366444
|
+
online: () => typeof navigator === "undefined" || navigator.onLine !== false,
|
|
366445
|
+
subscribe: (fn) => {
|
|
366446
|
+
document.addEventListener("visibilitychange", fn);
|
|
366447
|
+
window.addEventListener("online", fn);
|
|
366448
|
+
window.addEventListener("pageshow", fn);
|
|
366449
|
+
return () => {
|
|
366450
|
+
document.removeEventListener("visibilitychange", fn);
|
|
366451
|
+
window.removeEventListener("online", fn);
|
|
366452
|
+
window.removeEventListener("pageshow", fn);
|
|
366453
|
+
};
|
|
366454
|
+
}
|
|
366455
|
+
};
|
|
366456
|
+
};
|
|
366038
366457
|
}
|
|
366039
366458
|
});
|
|
366040
366459
|
|
|
@@ -366797,10 +367216,10 @@ function fullestFrame(frames) {
|
|
|
366797
367216
|
return 0;
|
|
366798
367217
|
}
|
|
366799
367218
|
function posterSchedule(durations) {
|
|
366800
|
-
const
|
|
366801
|
-
const period = Math.max(0, ...
|
|
367219
|
+
const runs2 = durations.map((d) => Math.min(PREVIEW_MAX_MS2, Math.max(0, d)));
|
|
367220
|
+
const period = Math.max(0, ...runs2.map((r) => r + PREVIEW_HOLD_MS));
|
|
366802
367221
|
const count2 = Math.max(1, Math.ceil(period * PREVIEW_FPS / 1e3));
|
|
366803
|
-
const cells =
|
|
367222
|
+
const cells = runs2.map((run4) => Array.from({ length: count2 }, (_, i2) => Math.min(run4, i2 * 1e3 / PREVIEW_FPS % (run4 + PREVIEW_HOLD_MS))));
|
|
366804
367223
|
return { delay: Math.round(1e3 / PREVIEW_FPS), cells };
|
|
366805
367224
|
}
|
|
366806
367225
|
function blitRGBA(dst, dw, dh, src, sw, sh, x2, y) {
|
|
@@ -399919,6 +400338,7 @@ function record(source, namespaces, globals, limits) {
|
|
|
399919
400338
|
var HELPER_NAMES;
|
|
399920
400339
|
var init_helper_names = __esm({
|
|
399921
400340
|
"lib/agent/design-script/helper-names.ts"() {
|
|
400341
|
+
"use strict";
|
|
399922
400342
|
HELPER_NAMES = ["draw", "marks", "fit", "motion", "captions", "overlays", "texture", "pointer", "windows", "devices", "type", "beat", "web", "social", "video", "site", "effects"];
|
|
399923
400343
|
}
|
|
399924
400344
|
});
|
|
@@ -400021,6 +400441,7 @@ async function replay(rec, namespaces2) {
|
|
|
400021
400441
|
var BLOCKED, isRef2, isFn;
|
|
400022
400442
|
var init_replay = __esm({
|
|
400023
400443
|
"lib/agent/design-script/replay.ts"() {
|
|
400444
|
+
"use strict";
|
|
400024
400445
|
BLOCKED = /* @__PURE__ */ new Set(["constructor", "prototype", "__proto__", "caller", "callee", "arguments", "call", "apply", "bind"]);
|
|
400025
400446
|
isRef2 = (v) => !!v && typeof v === "object" && "$ref" in v && Array.isArray(v.path);
|
|
400026
400447
|
isFn = (v) => !!v && typeof v === "object" && "$fn" in v && Array.isArray(v.ops);
|
|
@@ -400301,7 +400722,6 @@ function designRecorder() {
|
|
|
400301
400722
|
var installed;
|
|
400302
400723
|
var init_recorders = __esm({
|
|
400303
400724
|
"lib/agent/design-script/recorders.ts"() {
|
|
400304
|
-
"use strict";
|
|
400305
400725
|
installed = null;
|
|
400306
400726
|
}
|
|
400307
400727
|
});
|
|
@@ -400510,10 +400930,14 @@ var init_live3 = __esm({
|
|
|
400510
400930
|
// lib/agent/runner.ts
|
|
400511
400931
|
var runner_exports = {};
|
|
400512
400932
|
__export(runner_exports, {
|
|
400933
|
+
agentRuns: () => agentRuns,
|
|
400934
|
+
continueTurn: () => continueTurn,
|
|
400513
400935
|
editorToolContext: () => editorToolContext,
|
|
400514
400936
|
needsEditableSession: () => needsEditableSession,
|
|
400515
400937
|
onChildTool: () => onChildTool,
|
|
400516
|
-
|
|
400938
|
+
resumeInterrupted: () => resumeInterrupted,
|
|
400939
|
+
runTurn: () => runTurn,
|
|
400940
|
+
setAgentRuns: () => setAgentRuns
|
|
400517
400941
|
});
|
|
400518
400942
|
function needsEditableSession(name2) {
|
|
400519
400943
|
const tool2 = getTool(name2);
|
|
@@ -400560,70 +400984,284 @@ async function runTurn(text, mentions = []) {
|
|
|
400560
400984
|
useAgentStore.setState({ error: { message: availability3.message, code: availability3.reason } });
|
|
400561
400985
|
return;
|
|
400562
400986
|
}
|
|
400563
|
-
|
|
400564
|
-
if (!model) {
|
|
400987
|
+
if (!agentModel2()) {
|
|
400565
400988
|
useAgentStore.setState({ error: { message: "Pick a chat model for the agent first.", code: "no_model" } });
|
|
400566
400989
|
return;
|
|
400567
400990
|
}
|
|
400568
400991
|
const skillId = mentions.find((m) => m.kind === "skill")?.id ?? useAgentStore.getState().skillId;
|
|
400569
|
-
const
|
|
400570
|
-
const checkpoint = rememberCheckpoint(before);
|
|
400992
|
+
const checkpoint = rememberCheckpoint(useEditorStore.getState().document);
|
|
400571
400993
|
const user2 = { id: newId2(), role: "user", parts: [{ type: "text", text }], createdAt: Date.now() };
|
|
400572
400994
|
appendMessage(user2);
|
|
400573
400995
|
const assistantId = newId2();
|
|
400574
|
-
appendMessage({ id: assistantId, role: "assistant", parts: [], createdAt: Date.now(), checkpoint }
|
|
400575
|
-
|
|
400576
|
-
const
|
|
400996
|
+
appendMessage({ id: assistantId, role: "assistant", parts: [], createdAt: Date.now(), checkpoint });
|
|
400997
|
+
const s = useAgentStore.getState();
|
|
400998
|
+
const meta3 = {
|
|
400999
|
+
documentId: s.documentId ?? useEditorStore.getState().document.id,
|
|
401000
|
+
threadId: s.activeThreadId ?? "",
|
|
401001
|
+
assistantId,
|
|
401002
|
+
skillId,
|
|
401003
|
+
mentions,
|
|
401004
|
+
wantsChange: wantsChange(text)
|
|
401005
|
+
};
|
|
401006
|
+
await drive(meta3, { messages: [systemMessage(skillId, mentions), ...historyMessages()], checkpoint });
|
|
401007
|
+
}
|
|
401008
|
+
async function resumeInterrupted(documentId) {
|
|
401009
|
+
if (useAgentStore.getState().running) return false;
|
|
401010
|
+
const store6 = agentRuns();
|
|
401011
|
+
let list2;
|
|
401012
|
+
try {
|
|
401013
|
+
list2 = await interruptedRuns(store6);
|
|
401014
|
+
} catch {
|
|
401015
|
+
return false;
|
|
401016
|
+
}
|
|
401017
|
+
const mine = list2.filter((r) => r.meta?.documentId === documentId).sort((a, b) => b.updatedAt - a.updatedAt);
|
|
401018
|
+
const [latest, ...rest] = mine;
|
|
401019
|
+
for (const r of rest) await store6.save({ ...r, status: "stopped", updatedAt: Date.now() });
|
|
401020
|
+
if (!latest) return false;
|
|
401021
|
+
if (Date.now() - latest.updatedAt > RESUME_WINDOW_MS || !findMessage(latest.meta)) {
|
|
401022
|
+
await store6.save({ ...latest, status: "stopped", updatedAt: Date.now() });
|
|
401023
|
+
return false;
|
|
401024
|
+
}
|
|
401025
|
+
if (useAgentStore.getState().running) return false;
|
|
401026
|
+
await drive(latest.meta, { resume: latest });
|
|
401027
|
+
return true;
|
|
401028
|
+
}
|
|
401029
|
+
async function continueTurn() {
|
|
401030
|
+
const s = useAgentStore.getState();
|
|
401031
|
+
if (s.running) return false;
|
|
401032
|
+
const messages = activeMessages();
|
|
401033
|
+
const last3 = [...messages].reverse().find((m) => m.role === "assistant");
|
|
401034
|
+
if (!last3) return false;
|
|
401035
|
+
const record2 = await agentRuns().get(last3.id).catch(() => null);
|
|
401036
|
+
if (record2?.meta && record2.meta.threadId === s.activeThreadId) {
|
|
401037
|
+
await drive(record2.meta, { resume: { ...record2, status: "running" } });
|
|
401038
|
+
return true;
|
|
401039
|
+
}
|
|
401040
|
+
const ask2 = [...messages].reverse().find((m) => m.role === "user");
|
|
401041
|
+
if (!ask2) return false;
|
|
401042
|
+
await runTurn(textOf3(ask2));
|
|
401043
|
+
return true;
|
|
401044
|
+
}
|
|
401045
|
+
function findMessage(meta3) {
|
|
401046
|
+
if (!meta3) return void 0;
|
|
401047
|
+
return useAgentStore.getState().threads.find((t3) => t3.id === meta3.threadId)?.messages.find((m) => m.id === meta3.assistantId);
|
|
401048
|
+
}
|
|
401049
|
+
function installPageHandlers() {
|
|
401050
|
+
if (typeof window === "undefined") return () => {
|
|
401051
|
+
};
|
|
401052
|
+
const save = () => persistThreads();
|
|
401053
|
+
const onVisibility = () => {
|
|
401054
|
+
if (document.visibilityState === "hidden") save();
|
|
401055
|
+
};
|
|
401056
|
+
window.addEventListener("pagehide", save);
|
|
401057
|
+
document.addEventListener("visibilitychange", onVisibility);
|
|
401058
|
+
return () => {
|
|
401059
|
+
window.removeEventListener("pagehide", save);
|
|
401060
|
+
document.removeEventListener("visibilitychange", onVisibility);
|
|
401061
|
+
};
|
|
401062
|
+
}
|
|
401063
|
+
function resilientModel(model, turn, parts) {
|
|
401064
|
+
return async (messages, specs, hooks, _signal, request2) => {
|
|
401065
|
+
await whenResumable(void 0, turn);
|
|
401066
|
+
const call2 = new AbortController();
|
|
401067
|
+
const onTurnAbort = () => call2.abort();
|
|
401068
|
+
turn.addEventListener("abort", onTurnAbort);
|
|
401069
|
+
let hiddenAt = 0;
|
|
401070
|
+
const onVisibility = () => {
|
|
401071
|
+
if (document.visibilityState === "hidden") hiddenAt = Date.now();
|
|
401072
|
+
else if (hiddenAt && Date.now() - hiddenAt > SUSPEND_RESTART_MS) call2.abort();
|
|
401073
|
+
};
|
|
401074
|
+
if (typeof document !== "undefined") document.addEventListener("visibilitychange", onVisibility);
|
|
401075
|
+
const base = parts.get();
|
|
401076
|
+
try {
|
|
401077
|
+
const cut = new Promise((_, reject) => call2.signal.addEventListener("abort", () => reject(new Error("aborted")), { once: true }));
|
|
401078
|
+
cut.catch(() => {
|
|
401079
|
+
});
|
|
401080
|
+
return await Promise.race([model(messages, specs, hooks, call2.signal, request2), cut]);
|
|
401081
|
+
} catch (err2) {
|
|
401082
|
+
parts.set(base);
|
|
401083
|
+
if (call2.signal.aborted && !turn.aborted) throw { message: "The stream was interrupted.", code: "interrupted" };
|
|
401084
|
+
throw err2;
|
|
401085
|
+
} finally {
|
|
401086
|
+
turn.removeEventListener("abort", onTurnAbort);
|
|
401087
|
+
if (typeof document !== "undefined") document.removeEventListener("visibilitychange", onVisibility);
|
|
401088
|
+
}
|
|
401089
|
+
};
|
|
401090
|
+
}
|
|
401091
|
+
async function drive(meta3, start2) {
|
|
401092
|
+
const model = agentModel2();
|
|
401093
|
+
if (!model) {
|
|
401094
|
+
useAgentStore.setState({ error: { message: "Pick a chat model for the agent first.", code: "no_model" } });
|
|
401095
|
+
return;
|
|
401096
|
+
}
|
|
401097
|
+
const store6 = agentRuns();
|
|
401098
|
+
const id3 = meta3.assistantId;
|
|
401099
|
+
const before = useEditorStore.getState().document;
|
|
401100
|
+
if (useAgentStore.getState().activeThreadId !== meta3.threadId) useAgentStore.setState({ activeThreadId: meta3.threadId });
|
|
401101
|
+
let checkpoint = "checkpoint" in start2 ? start2.checkpoint : findMessage(meta3)?.checkpoint;
|
|
401102
|
+
if (!checkpoint) {
|
|
401103
|
+
checkpoint = rememberCheckpoint(before);
|
|
401104
|
+
updateMessage(id3, (m) => ({ ...m, checkpoint }), { save: false });
|
|
401105
|
+
}
|
|
401106
|
+
const ledger = createToolLedger(meta3.ledger);
|
|
401107
|
+
let parts = [...findMessage(meta3)?.parts ?? []].filter((p2) => !(p2.type === "error" && p2.message === STOPPED_MESSAGE));
|
|
401108
|
+
const flush = (save = false) => setParts(id3, parts, { save });
|
|
401109
|
+
if ("resume" in start2) {
|
|
401110
|
+
parts = parts.map((p2) => {
|
|
401111
|
+
if (p2.type !== "tool" || p2.status !== "running") return p2;
|
|
401112
|
+
const done = ledger.get(p2.id);
|
|
401113
|
+
return done ? { ...p2, status: done.ok ? "done" : "error", summary: done.summary, result: done.content } : { ...p2, status: "error", summary: "interrupted", error: "interrupted" };
|
|
401114
|
+
});
|
|
401115
|
+
parts = [...parts, { type: "notice", kind: "resumed" }];
|
|
401116
|
+
flush(true);
|
|
401117
|
+
}
|
|
400577
401118
|
const abort = new AbortController();
|
|
400578
|
-
useAgentStore.setState({ running: true, abort, error: null });
|
|
401119
|
+
useAgentStore.setState({ running: true, resuming: false, abort, error: null });
|
|
400579
401120
|
const ctx2 = editorToolContext(abort.signal);
|
|
400580
401121
|
const { createDesignPreview: createDesignPreview2, DESIGN_TOOL: DESIGN_TOOL2 } = await Promise.resolve().then(() => (init_live3(), live_exports));
|
|
400581
401122
|
const preview = createDesignPreview2();
|
|
400582
|
-
|
|
401123
|
+
const readOnly = !!editBlockReason();
|
|
401124
|
+
registerTurnTools({ readOnly, signal: abort.signal });
|
|
400583
401125
|
const runtime = agentRuntime();
|
|
401126
|
+
const tools = loopTools(meta3.skillId);
|
|
401127
|
+
const canWrite2 = !readOnly && meta3.wantsChange;
|
|
401128
|
+
const writeTool = tools.some((t3) => t3.spec.function.name === DESIGN_TOOL2) ? DESIGN_TOOL2 : null;
|
|
401129
|
+
const guard2 = createActionGuard({ enabled: canWrite2, writeTool, initial: meta3.guard });
|
|
401130
|
+
let pending8 = null;
|
|
401131
|
+
let saving2 = Promise.resolve();
|
|
401132
|
+
const saveMeta = () => {
|
|
401133
|
+
meta3.guard = guard2.state();
|
|
401134
|
+
meta3.ledger = ledger.entries();
|
|
401135
|
+
meta3.pending = pending8;
|
|
401136
|
+
const rec = store6.peek(id3);
|
|
401137
|
+
if (rec) saving2 = store6.save({ ...rec, meta: { ...meta3 }, updatedAt: Date.now() }).catch(() => {
|
|
401138
|
+
});
|
|
401139
|
+
return saving2;
|
|
401140
|
+
};
|
|
401141
|
+
const offPage = installPageHandlers();
|
|
401142
|
+
let interruptions = 0;
|
|
401143
|
+
let resumeFrom = "resume" in start2 ? start2.resume : null;
|
|
400584
401144
|
try {
|
|
400585
|
-
|
|
400586
|
-
|
|
400587
|
-
|
|
400588
|
-
|
|
400589
|
-
|
|
400590
|
-
|
|
400591
|
-
|
|
400592
|
-
|
|
400593
|
-
|
|
400594
|
-
|
|
400595
|
-
|
|
400596
|
-
|
|
400597
|
-
flush();
|
|
400598
|
-
try {
|
|
400599
|
-
if (call2.name === DESIGN_TOOL2) preview.end();
|
|
400600
|
-
guardEdit(call2.name);
|
|
400601
|
-
const result = await runTool(call2.name, call2.argsText, { ...ctx2, toolCallId: call2.id });
|
|
400602
|
-
const content = JSON.stringify(result.data ?? { ok: true, summary: result.summary });
|
|
400603
|
-
parts = upsertToolPart(parts, { ...row2, status: "done", summary: result.summary, result: content });
|
|
400604
|
-
for (const url4 of result.images ?? []) parts = [...parts, { type: "image", url: url4, caption: call2.name }];
|
|
400605
|
-
flush();
|
|
400606
|
-
return { id: call2.id, name: call2.name, argsText: call2.argsText, ok: true, summary: result.summary, content, images: result.images };
|
|
400607
|
-
} catch (err2) {
|
|
400608
|
-
const message = err2.message ?? String(err2);
|
|
400609
|
-
parts = upsertToolPart(parts, { ...row2, status: "error", summary: message, error: message });
|
|
400610
|
-
flush();
|
|
400611
|
-
return { id: call2.id, name: call2.name, argsText: call2.argsText, ok: false, summary: message, content: JSON.stringify({ error: message }) };
|
|
400612
|
-
}
|
|
400613
|
-
},
|
|
400614
|
-
hooks: {
|
|
400615
|
-
onTextDelta: (d) => {
|
|
400616
|
-
parts = pushTextDelta([...parts], d);
|
|
400617
|
-
flush();
|
|
401145
|
+
while (true) {
|
|
401146
|
+
const options = {
|
|
401147
|
+
tools,
|
|
401148
|
+
meta: meta3,
|
|
401149
|
+
stopped: () => abort.signal.aborted,
|
|
401150
|
+
drainNotifications: () => {
|
|
401151
|
+
const notes = guard2.drain();
|
|
401152
|
+
if (notes.length) {
|
|
401153
|
+
parts = [...parts, { type: "notice", kind: "read-budget" }];
|
|
401154
|
+
flush();
|
|
401155
|
+
}
|
|
401156
|
+
return [...notes, ...runtime.drainParentNotifications()];
|
|
400618
401157
|
},
|
|
400619
|
-
|
|
400620
|
-
|
|
401158
|
+
maxParallel: MAX_PARALLEL_TOOLS,
|
|
401159
|
+
maxRounds: TURN_MAX_ROUNDS,
|
|
401160
|
+
modelRetries: 3,
|
|
401161
|
+
isRecoverable: (err2) => !abort.signal.aborted && isInterruption(err2),
|
|
401162
|
+
requireAction: canWrite2 ? { nudges: ACTION_NUDGES, message: ACTION_NUDGE } : false,
|
|
401163
|
+
toolChoice: () => guard2.toolChoice(),
|
|
401164
|
+
callModel: resilientModel(agentModel(() => model), abort.signal, { get: () => parts, set: (p2) => {
|
|
401165
|
+
parts = p2;
|
|
400621
401166
|
flush();
|
|
401167
|
+
} }),
|
|
401168
|
+
checkpoint: async () => {
|
|
401169
|
+
pending8 = null;
|
|
401170
|
+
ledger.clear();
|
|
401171
|
+
await saveMeta();
|
|
400622
401172
|
},
|
|
400623
|
-
|
|
400624
|
-
|
|
401173
|
+
execTool: (call2) => runOnce(ledger, call2, async () => {
|
|
401174
|
+
const row2 = { type: "tool", id: call2.id, name: call2.name, argsText: call2.argsText, status: "running" };
|
|
401175
|
+
parts = upsertToolPart(parts, row2);
|
|
401176
|
+
flush();
|
|
401177
|
+
const docBefore = useEditorStore.getState().document;
|
|
401178
|
+
try {
|
|
401179
|
+
if (call2.name === DESIGN_TOOL2) preview.end();
|
|
401180
|
+
guardEdit(call2.name);
|
|
401181
|
+
const result = await runTool(call2.name, call2.argsText, { ...ctx2, toolCallId: call2.id });
|
|
401182
|
+
const content = JSON.stringify(result.data ?? { ok: true, summary: result.summary });
|
|
401183
|
+
parts = upsertToolPart(parts, { ...row2, status: "done", summary: result.summary, result: content });
|
|
401184
|
+
for (const url4 of result.images ?? []) parts = [...parts, { type: "image", url: url4, caption: call2.name }];
|
|
401185
|
+
const acted = useEditorStore.getState().document !== docBefore;
|
|
401186
|
+
return { id: call2.id, name: call2.name, argsText: call2.argsText, ok: true, summary: result.summary, content, images: result.images, acted };
|
|
401187
|
+
} catch (err2) {
|
|
401188
|
+
const message = err2.message ?? String(err2);
|
|
401189
|
+
parts = upsertToolPart(parts, { ...row2, status: "error", summary: message, error: message });
|
|
401190
|
+
return { id: call2.id, name: call2.name, argsText: call2.argsText, ok: false, summary: message, content: JSON.stringify({ error: message }), acted: false };
|
|
401191
|
+
} finally {
|
|
401192
|
+
flush(true);
|
|
401193
|
+
}
|
|
401194
|
+
}).then((run4) => {
|
|
401195
|
+
void saveMeta();
|
|
401196
|
+
return run4;
|
|
401197
|
+
}),
|
|
401198
|
+
hooks: {
|
|
401199
|
+
onAssistantStart: () => {
|
|
401200
|
+
pending8 = { text: "", calls: [] };
|
|
401201
|
+
},
|
|
401202
|
+
onTextDelta: (d) => {
|
|
401203
|
+
parts = pushTextDelta([...parts], d);
|
|
401204
|
+
if (pending8) pending8.text += d;
|
|
401205
|
+
flush();
|
|
401206
|
+
},
|
|
401207
|
+
onReasoningDelta: (d) => {
|
|
401208
|
+
parts = pushReasoningDelta([...parts], d);
|
|
401209
|
+
flush();
|
|
401210
|
+
},
|
|
401211
|
+
onToolProgress: (p2) => preview.update(p2.name, p2.arguments),
|
|
401212
|
+
onToolStart: (call2) => {
|
|
401213
|
+
pending8?.calls.push({ id: call2.id, name: call2.name, argsText: call2.argsText });
|
|
401214
|
+
void saveMeta();
|
|
401215
|
+
},
|
|
401216
|
+
onToolEnd: (run4) => {
|
|
401217
|
+
guard2.onRun(run4, run4.acted === true);
|
|
401218
|
+
syncTodos(run4);
|
|
401219
|
+
},
|
|
401220
|
+
onRoundEnd: () => guard2.onRoundEnd(),
|
|
401221
|
+
onNudge: () => {
|
|
401222
|
+
const count2 = guard2.onNudge();
|
|
401223
|
+
parts = [...parts, { type: "notice", kind: "nudge", count: count2, max: ACTION_NUDGES }];
|
|
401224
|
+
flush(true);
|
|
401225
|
+
}
|
|
401226
|
+
}
|
|
401227
|
+
};
|
|
401228
|
+
try {
|
|
401229
|
+
let outcome;
|
|
401230
|
+
if (resumeFrom) {
|
|
401231
|
+
const cp = resumeFrom.checkpoint;
|
|
401232
|
+
const nudgesLeft = canWrite2 ? Math.max(0, ACTION_NUDGES - guard2.state().nudges) : 0;
|
|
401233
|
+
const patched = { ...resumeFrom, status: "running", checkpoint: { ...cp, nudgesLeft, messages: resumeTranscript(cp.messages, meta3.pending, meta3.ledger) } };
|
|
401234
|
+
await store6.save(patched);
|
|
401235
|
+
pending8 = null;
|
|
401236
|
+
outcome = await resumeRun(id3, store6, options);
|
|
401237
|
+
} else {
|
|
401238
|
+
if (!("messages" in start2)) throw new Error("nothing to run");
|
|
401239
|
+
outcome = await runPersistent({ ...options, id: id3, runs: store6, messages: start2.messages });
|
|
401240
|
+
}
|
|
401241
|
+
if (canWrite2 && !outcome.stopped && !outcome.acted && !guard2.acted) parts = [...parts, { type: "notice", kind: "no-change" }];
|
|
401242
|
+
break;
|
|
401243
|
+
} catch (err2) {
|
|
401244
|
+
if (abort.signal.aborted) break;
|
|
401245
|
+
const hidden2 = typeof document !== "undefined" && document.visibilityState === "hidden";
|
|
401246
|
+
if (isInterruption(err2, hidden2) && interruptions < MAX_INTERRUPTIONS) {
|
|
401247
|
+
interruptions++;
|
|
401248
|
+
await saving2;
|
|
401249
|
+
const rec = await store6.get(id3);
|
|
401250
|
+
if (!rec) throw err2;
|
|
401251
|
+
await store6.save({ ...rec, status: "running", error: void 0, updatedAt: Date.now() });
|
|
401252
|
+
useAgentStore.setState({ resuming: true });
|
|
401253
|
+
persistThreads();
|
|
401254
|
+
await whenResumable(void 0, abort.signal, Math.min(3e4, 1e3 * 2 ** interruptions));
|
|
401255
|
+
if (abort.signal.aborted) break;
|
|
401256
|
+
useAgentStore.setState({ resuming: false });
|
|
401257
|
+
resumeFrom = await store6.get(id3);
|
|
401258
|
+
parts = [...parts, { type: "notice", kind: "resumed" }];
|
|
401259
|
+
flush(true);
|
|
401260
|
+
continue;
|
|
401261
|
+
}
|
|
401262
|
+
throw err2;
|
|
400625
401263
|
}
|
|
400626
|
-
}
|
|
401264
|
+
}
|
|
400627
401265
|
} catch (err2) {
|
|
400628
401266
|
if (!abort.signal.aborted) {
|
|
400629
401267
|
const message = err2?.message ?? String(err2);
|
|
@@ -400631,26 +401269,27 @@ async function runTurn(text, mentions = []) {
|
|
|
400631
401269
|
parts = [...parts, { type: "error", message, code }];
|
|
400632
401270
|
}
|
|
400633
401271
|
} finally {
|
|
401272
|
+
offPage();
|
|
400634
401273
|
preview.end();
|
|
400635
401274
|
if (abort.signal.aborted) {
|
|
400636
401275
|
runtime.stopAll();
|
|
400637
|
-
parts = [...parts, { type: "error", message:
|
|
401276
|
+
parts = [...parts, { type: "error", message: STOPPED_MESSAGE }];
|
|
400638
401277
|
}
|
|
400639
|
-
if (useEditorStore.getState().document === before) updateMessage(
|
|
401278
|
+
if (useEditorStore.getState().document === before) updateMessage(id3, (m) => ({ ...m, checkpoint: void 0 }), { save: false });
|
|
400640
401279
|
flush(true);
|
|
400641
401280
|
updateActiveThread((t3) => ({ ...t3, checkpoint: { id: checkpoint, label: "Undo these changes" } }));
|
|
400642
|
-
useAgentStore.setState({ running: false, abort: null });
|
|
401281
|
+
useAgentStore.setState({ running: false, resuming: false, abort: null });
|
|
400643
401282
|
}
|
|
400644
401283
|
}
|
|
400645
|
-
var ALWAYS_ALLOWED, MAX_HISTORY_MESSAGES, MAX_PARALLEL_TOOLS, TURN_MAX_ROUNDS, registerTurnTools, specsFor, loopTools;
|
|
401284
|
+
var ALWAYS_ALLOWED, MAX_HISTORY_MESSAGES, MAX_PARALLEL_TOOLS, TURN_MAX_ROUNDS, registerTurnTools, specsFor, loopTools, runs, agentRuns, setAgentRuns, RESUME_WINDOW_MS, MAX_INTERRUPTIONS, SUSPEND_RESTART_MS, STOPPED_MESSAGE;
|
|
400646
401285
|
var init_runner = __esm({
|
|
400647
401286
|
"lib/agent/runner.ts"() {
|
|
400648
|
-
"use strict";
|
|
400649
401287
|
init_editor_store();
|
|
400650
401288
|
init_client_store();
|
|
400651
401289
|
init_editor_seams();
|
|
400652
401290
|
init_gateway();
|
|
400653
|
-
|
|
401291
|
+
init_agents();
|
|
401292
|
+
init_turn_recovery();
|
|
400654
401293
|
init_tools();
|
|
400655
401294
|
init_builtin5();
|
|
400656
401295
|
init_subagent_tools();
|
|
@@ -400681,6 +401320,14 @@ var init_runner = __esm({
|
|
|
400681
401320
|
return skill?.tools.length ? toolSpecs([.../* @__PURE__ */ new Set([...skill.tools, ...ALWAYS_ALLOWED])]) : toolSpecs();
|
|
400682
401321
|
};
|
|
400683
401322
|
loopTools = (skillId) => specsFor(skillId).map((spec) => ({ spec, readOnly: getTool(spec.function.name)?.readOnly === true }));
|
|
401323
|
+
agentRuns = () => runs ??= serialRuns(runStore(indexedDbStore(AGENT_SESSIONS_DB), "editor"));
|
|
401324
|
+
setAgentRuns = (store6) => {
|
|
401325
|
+
runs = store6 && serialRuns(store6);
|
|
401326
|
+
};
|
|
401327
|
+
RESUME_WINDOW_MS = 30 * 6e4;
|
|
401328
|
+
MAX_INTERRUPTIONS = 6;
|
|
401329
|
+
SUSPEND_RESTART_MS = 5e3;
|
|
401330
|
+
STOPPED_MESSAGE = "Stopped. Any edits already applied are still there.";
|
|
400684
401331
|
}
|
|
400685
401332
|
});
|
|
400686
401333
|
|
|
@@ -400709,6 +401356,7 @@ __export(store_exports, {
|
|
|
400709
401356
|
openAgentPanel: () => openAgentPanel,
|
|
400710
401357
|
pendingConfirm: () => pendingConfirm,
|
|
400711
401358
|
pendingQuestion: () => pendingQuestion,
|
|
401359
|
+
persistThreads: () => persistThreads,
|
|
400712
401360
|
recordChildTool: () => recordChildTool,
|
|
400713
401361
|
rememberCheckpoint: () => rememberCheckpoint,
|
|
400714
401362
|
removeDraftMention: () => removeDraftMention,
|
|
@@ -400729,7 +401377,7 @@ __export(store_exports, {
|
|
|
400729
401377
|
updateMessage: () => updateMessage,
|
|
400730
401378
|
useAgentStore: () => useAgentStore
|
|
400731
401379
|
});
|
|
400732
|
-
function
|
|
401380
|
+
function persistThreads() {
|
|
400733
401381
|
const s = useAgentStore.getState();
|
|
400734
401382
|
if (s.documentId) void saveThreads(s.documentId, s.threads);
|
|
400735
401383
|
}
|
|
@@ -400738,7 +401386,7 @@ function updateActiveThread(fn, { save = true } = {}) {
|
|
|
400738
401386
|
if (!s.activeThreadId) return;
|
|
400739
401387
|
const threads = s.threads.map((t3) => t3.id === s.activeThreadId ? { ...fn(t3), updatedAt: Date.now() } : t3);
|
|
400740
401388
|
useAgentStore.setState({ threads });
|
|
400741
|
-
if (save)
|
|
401389
|
+
if (save) persistThreads();
|
|
400742
401390
|
}
|
|
400743
401391
|
function updateMessage(id3, fn, opts) {
|
|
400744
401392
|
updateActiveThread((t3) => ({ ...t3, messages: t3.messages.map((m) => m.id === id3 ? fn(m) : m) }), opts);
|
|
@@ -400772,7 +401420,7 @@ function newThread() {
|
|
|
400772
401420
|
cancelAsk("the chat was switched");
|
|
400773
401421
|
const t3 = emptyThread();
|
|
400774
401422
|
useAgentStore.setState((s) => ({ threads: [...s.threads, t3], activeThreadId: t3.id, todos: [], error: null, taskChildren: {}, draft: "", draftMentions: [] }));
|
|
400775
|
-
|
|
401423
|
+
persistThreads();
|
|
400776
401424
|
return t3.id;
|
|
400777
401425
|
}
|
|
400778
401426
|
function selectThread(id3) {
|
|
@@ -400785,7 +401433,7 @@ function deleteThread(id3) {
|
|
|
400785
401433
|
const threads = s.threads.filter((t3) => t3.id !== id3);
|
|
400786
401434
|
const list2 = threads.length ? threads : [emptyThread()];
|
|
400787
401435
|
useAgentStore.setState({ threads: list2, activeThreadId: s.activeThreadId === id3 ? list2[list2.length - 1].id : s.activeThreadId });
|
|
400788
|
-
|
|
401436
|
+
persistThreads();
|
|
400789
401437
|
}
|
|
400790
401438
|
function openAgentPanel(opts = {}) {
|
|
400791
401439
|
useAgentStore.setState({
|
|
@@ -400820,7 +401468,7 @@ function stop() {
|
|
|
400820
401468
|
const { abort } = useAgentStore.getState();
|
|
400821
401469
|
abort?.abort();
|
|
400822
401470
|
cancelAsk("the turn was stopped");
|
|
400823
|
-
useAgentStore.setState({ running: false, abort: null });
|
|
401471
|
+
useAgentStore.setState({ running: false, resuming: false, abort: null });
|
|
400824
401472
|
}
|
|
400825
401473
|
function resolveAsk(answer2) {
|
|
400826
401474
|
const pending8 = useAgentStore.getState().pendingAsk;
|
|
@@ -400948,6 +401596,7 @@ var init_store2 = __esm({
|
|
|
400948
401596
|
threads: [],
|
|
400949
401597
|
activeThreadId: null,
|
|
400950
401598
|
running: false,
|
|
401599
|
+
resuming: false,
|
|
400951
401600
|
abort: null,
|
|
400952
401601
|
todos: [],
|
|
400953
401602
|
skillId: null,
|
|
@@ -401413,7 +402062,7 @@ function registerAppCommands() {
|
|
|
401413
402062
|
usePluginStore2.subscribe(sync);
|
|
401414
402063
|
});
|
|
401415
402064
|
}
|
|
401416
|
-
var none, emit4, store5, MODE_IDS, MODE_ALIASES, modeSet, modeEdit, PANELS, panelOpen, panelToggle, dialogOpen, aiOpen, docAction, TOOLS, toolSet, toolPlace, nodeRasterize, nodeOps, canvasToggle, popcornOpen, viewSetBreakpoint, appCommands, started6;
|
|
402065
|
+
var none, emit4, store5, MODE_IDS, MODE_ALIASES, modeSet, modeEdit, PANELS, panelOpen, panelToggle, dialogOpen, aiOpen, agentContinue, docAction, TOOLS, toolSet, toolPlace, nodeRasterize, nodeOps, canvasToggle, popcornOpen, viewSetBreakpoint, appCommands, started6;
|
|
401417
402066
|
var init_app = __esm({
|
|
401418
402067
|
"lib/commands/app.ts"() {
|
|
401419
402068
|
init_zod();
|
|
@@ -401612,6 +402261,19 @@ var init_app = __esm({
|
|
|
401612
402261
|
return { summary: dialog ? `Opened AI ${dialog}` : "Opened the agent" };
|
|
401613
402262
|
}
|
|
401614
402263
|
});
|
|
402264
|
+
agentContinue = defineCommand({
|
|
402265
|
+
id: "agent.continue",
|
|
402266
|
+
title: "Continue the agent",
|
|
402267
|
+
domain: "ai",
|
|
402268
|
+
effect: "none",
|
|
402269
|
+
permission: null,
|
|
402270
|
+
params: external_exports.object({}),
|
|
402271
|
+
expose: { ui: { label: "AI: Continue the agent\u2019s last turn", keywords: ["ai", "agent", "continue", "resume", "retry", "keep going"] } },
|
|
402272
|
+
run: async () => {
|
|
402273
|
+
const resumed = await (await Promise.resolve().then(() => (init_runner(), runner_exports))).continueTurn();
|
|
402274
|
+
return { summary: resumed ? "Continued the agent" : "Nothing to continue" };
|
|
402275
|
+
}
|
|
402276
|
+
});
|
|
401615
402277
|
docAction = defineCommand({
|
|
401616
402278
|
id: "document.action",
|
|
401617
402279
|
title: "File",
|
|
@@ -401812,7 +402474,7 @@ var init_app = __esm({
|
|
|
401812
402474
|
return { summary: `Showing ${(all4.find((b) => b.id === shown2) ?? all4[0]).name}`, data: { breakpoint: shown2 ?? all4[0].id } };
|
|
401813
402475
|
}
|
|
401814
402476
|
});
|
|
401815
|
-
appCommands = [modeSet, modeEdit, nodeRasterize, panelOpen, panelToggle, dialogOpen, aiOpen, docAction, toolSet, toolPlace, nodeOps, canvasToggle, viewSetBreakpoint, popcornOpen, pageGo];
|
|
402477
|
+
appCommands = [modeSet, modeEdit, nodeRasterize, panelOpen, panelToggle, dialogOpen, aiOpen, agentContinue, docAction, toolSet, toolPlace, nodeOps, canvasToggle, viewSetBreakpoint, popcornOpen, pageGo];
|
|
401816
402478
|
started6 = false;
|
|
401817
402479
|
}
|
|
401818
402480
|
});
|
|
@@ -405122,6 +405784,7 @@ function registerBuiltinCommands() {
|
|
|
405122
405784
|
var builtinCommands, uiOnlyCommands;
|
|
405123
405785
|
var init_builtin4 = __esm({
|
|
405124
405786
|
"lib/commands/builtin.ts"() {
|
|
405787
|
+
"use strict";
|
|
405125
405788
|
init_registry();
|
|
405126
405789
|
init_node();
|
|
405127
405790
|
init_node();
|
|
@@ -412711,7 +413374,7 @@ init_resources();
|
|
|
412711
413374
|
init_desktop();
|
|
412712
413375
|
init_hypery();
|
|
412713
413376
|
import { createInterface } from "node:readline";
|
|
412714
|
-
var VERSION2 = "0.42.
|
|
413377
|
+
var VERSION2 = "0.42.3";
|
|
412715
413378
|
var HELP = `popcraft ${VERSION2} \u2014 the PopCraft command line
|
|
412716
413379
|
|
|
412717
413380
|
Files (headless, on .popcraft files):
|