@nac3/forge-cli 1.0.50 → 1.0.52
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/README.md +466 -390
- package/dist/chat/agent_scope.d.ts +41 -0
- package/dist/chat/agent_scope.d.ts.map +1 -0
- package/dist/chat/agent_scope.js +80 -0
- package/dist/chat/agent_scope.js.map +1 -0
- package/dist/chat/agent_session.d.ts +46 -0
- package/dist/chat/agent_session.d.ts.map +1 -0
- package/dist/chat/agent_session.js +169 -0
- package/dist/chat/agent_session.js.map +1 -0
- package/dist/chat/bridge.d.ts +8 -0
- package/dist/chat/bridge.d.ts.map +1 -1
- package/dist/chat/bridge.js +8 -3
- package/dist/chat/bridge.js.map +1 -1
- package/dist/chat/doctrine_digest.d.ts +6 -1
- package/dist/chat/doctrine_digest.d.ts.map +1 -1
- package/dist/chat/doctrine_digest.js +7 -2
- package/dist/chat/doctrine_digest.js.map +1 -1
- package/dist/chat/panel.d.ts.map +1 -1
- package/dist/chat/panel.js +326 -8
- package/dist/chat/panel.js.map +1 -1
- package/dist/chat/server.d.ts +20 -1
- package/dist/chat/server.d.ts.map +1 -1
- package/dist/chat/server.js +122 -7
- package/dist/chat/server.js.map +1 -1
- package/dist/chat/tools/nac3_invoke.d.ts.map +1 -1
- package/dist/chat/tools/nac3_invoke.js +57 -1
- package/dist/chat/tools/nac3_invoke.js.map +1 -1
- package/dist/chat/tools/session_verbs.d.ts +39 -0
- package/dist/chat/tools/session_verbs.d.ts.map +1 -0
- package/dist/chat/tools/session_verbs.js +299 -0
- package/dist/chat/tools/session_verbs.js.map +1 -0
- package/dist/chat/tools.d.ts.map +1 -1
- package/dist/chat/tools.js +16 -0
- package/dist/chat/tools.js.map +1 -1
- package/dist/commands/chat.d.ts +18 -4
- package/dist/commands/chat.d.ts.map +1 -1
- package/dist/commands/chat.js +81 -2
- package/dist/commands/chat.js.map +1 -1
- package/dist/commands/pilot.d.ts.map +1 -1
- package/dist/commands/pilot.js +3 -1
- package/dist/commands/pilot.js.map +1 -1
- package/dist/core/file_tree.d.ts +27 -0
- package/dist/core/file_tree.d.ts.map +1 -0
- package/dist/core/file_tree.js +87 -0
- package/dist/core/file_tree.js.map +1 -0
- package/dist/core/limits_config.d.ts +10 -0
- package/dist/core/limits_config.d.ts.map +1 -1
- package/dist/core/limits_config.js +9 -0
- package/dist/core/limits_config.js.map +1 -1
- package/dist/docs/doctrine/session-orchestration.md +86 -0
- package/dist/nac3/internal_manifest.d.ts.map +1 -1
- package/dist/nac3/internal_manifest.js +103 -0
- package/dist/nac3/internal_manifest.js.map +1 -1
- package/dist/nac3/manifest_lazy.d.ts +5 -0
- package/dist/nac3/manifest_lazy.d.ts.map +1 -1
- package/dist/nac3/manifest_lazy.js +3 -3
- package/dist/nac3/manifest_lazy.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/docs/doctrine/session-orchestration.md +86 -0
- package/package.json +1 -1
- package/src/i18n/catalogs/ar.json +13 -2
- package/src/i18n/catalogs/de.json +13 -2
- package/src/i18n/catalogs/en.json +13 -2
- package/src/i18n/catalogs/es.json +13 -2
- package/src/i18n/catalogs/fr.json +13 -2
- package/src/i18n/catalogs/hi.json +13 -2
- package/src/i18n/catalogs/it.json +13 -2
- package/src/i18n/catalogs/ja.json +13 -2
- package/src/i18n/catalogs/pt.json +13 -2
- package/src/i18n/catalogs/zh.json +13 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest_lazy.d.ts","sourceRoot":"","sources":["../../src/nac3/manifest_lazy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,EAA4B,KAAK,QAAQ,EAAwC,MAAM,wBAAwB,CAAC;AAEvH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC;AAE5C,oDAAoD;AACpD,wBAAgB,mBAAmB,IAAI,YAAY,CAIlD;AAsCD;;0DAE0D;AAC1D,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CASpD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAMpD;AAED,MAAM,WAAW,mBAAmB;IAClC;;;;;;qCAMiC;IACjC,eAAe,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"manifest_lazy.d.ts","sourceRoot":"","sources":["../../src/nac3/manifest_lazy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,EAA4B,KAAK,QAAQ,EAAwC,MAAM,wBAAwB,CAAC;AAEvH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC;AAE5C,oDAAoD;AACpD,wBAAgB,mBAAmB,IAAI,YAAY,CAIlD;AAsCD;;0DAE0D;AAC1D,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CASpD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAMpD;AAED,MAAM,WAAW,mBAAmB;IAClC;;;;;;qCAMiC;IACjC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;uDAGmD;IACnD,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,qEAAqE;AACrE,wBAAgB,iBAAiB,CAAC,IAAI,GAAE,mBAAwB,GAAG,MAAM,CAoBxE;AAED;;2DAE2D;AAC3D,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED;;;;8DAI8D;AAC9D,wBAAgB,sBAAsB,CAAC,IAAI,GAAE,mBAAwB,GAAG;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAI3G"}
|
|
@@ -104,9 +104,9 @@ export function buildVerbStub(verb) {
|
|
|
104
104
|
export function buildManifestStub(opts = {}) {
|
|
105
105
|
const m = fullManifest();
|
|
106
106
|
const includeMcp = opts.includeMcpVerbs === true;
|
|
107
|
-
const
|
|
108
|
-
|
|
109
|
-
|
|
107
|
+
const includeSession = opts.includeSessionVerbs === true;
|
|
108
|
+
const verbs = m.verbs.filter((v) => (includeMcp || !v.id.startsWith('yujin.mcp.'))
|
|
109
|
+
&& (includeSession || !v.id.startsWith('yujin.session.')));
|
|
110
110
|
const lines = [];
|
|
111
111
|
lines.push('NAC3 MANIFEST (stub mode -- ' + verbs.length + ' verbs)');
|
|
112
112
|
lines.push('format: <verb_id> [<policy><side_effects>] <label> args:<{required,[optional]}>');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest_lazy.js","sourceRoot":"","sources":["../../src/nac3/manifest_lazy.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"manifest_lazy.js","sourceRoot":"","sources":["../../src/nac3/manifest_lazy.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* Yujin Forge CLI version. Kept in sync with package.json by the npm
|
|
3
3
|
* "version" lifecycle (scripts/sync_version.mjs) so the two never drift.
|
|
4
4
|
*/
|
|
5
|
-
export declare const VERSION = "1.0.
|
|
5
|
+
export declare const VERSION = "1.0.52";
|
|
6
6
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.js
CHANGED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Doctrine: session orchestration (yujin.session.*)
|
|
2
|
+
|
|
3
|
+
When it is optimal, you may launch other `yf chat` instances as
|
|
4
|
+
HEADLESS AGENT sub-sessions to do orthogonal, well-scoped work in
|
|
5
|
+
parallel with this conversation, and collect their results over the
|
|
6
|
+
coordination bridge. This is the `yujin.session.*` verb family.
|
|
7
|
+
|
|
8
|
+
This doctrine is about WHEN to spawn and how to keep it safe and
|
|
9
|
+
cheap. It is distinct from `agent-orchestrator` (product-side agents
|
|
10
|
+
the generated software dispatches on the user's machine).
|
|
11
|
+
|
|
12
|
+
## Off by default
|
|
13
|
+
|
|
14
|
+
The whole capability is gated by `multiagent.enabled` in the limits
|
|
15
|
+
config (Ajustes > Limites), DEFAULT OFF. While off, the
|
|
16
|
+
`yujin.session.*` verbs are hidden from the manifest, this doctrine is
|
|
17
|
+
not injected, the system prompt tells you it is OFF, and the handlers
|
|
18
|
+
refuse. So you only see + use these verbs when the user has explicitly
|
|
19
|
+
turned multi-agent on. If the user asks for parallel sub-sessions while
|
|
20
|
+
it is off, tell them to enable it in Ajustes > Limites.
|
|
21
|
+
|
|
22
|
+
## The verbs
|
|
23
|
+
|
|
24
|
+
- `yujin.session.spawn { task, project_root?, budget_tokens?, label? }`
|
|
25
|
+
-- launch a sub-session for one self-contained task. Returns a
|
|
26
|
+
handle immediately (NON-blocking). The user approves each spawn
|
|
27
|
+
(it spends BYOK tokens autonomously).
|
|
28
|
+
- `yujin.session.collect { handle?, wait_ms? }` -- read the results
|
|
29
|
+
sub-sessions have published. `wait_ms` blocks up to that long for
|
|
30
|
+
at least one result; default 0 = return whatever has arrived.
|
|
31
|
+
- `yujin.session.list` -- what you have spawned + whether each is
|
|
32
|
+
still alive.
|
|
33
|
+
- `yujin.session.stop { handle }` -- terminate one.
|
|
34
|
+
|
|
35
|
+
## Spawn ONLY when it pays off
|
|
36
|
+
|
|
37
|
+
A sub-session boots a whole headless server and spends tokens, so the
|
|
38
|
+
overhead must be justified. Spawn when ALL of these hold:
|
|
39
|
+
|
|
40
|
+
1. **Orthogonal** -- the subtask is independent of the work you are
|
|
41
|
+
doing right now; it does not need the live conversation context.
|
|
42
|
+
(The child gets ONLY the `task` string you write -- be specific.)
|
|
43
|
+
2. **Parallelizable** -- it can run while you keep working, and you
|
|
44
|
+
genuinely benefit from not blocking on it (e.g. a wide read /
|
|
45
|
+
research / analysis sweep over a different subsystem).
|
|
46
|
+
3. **No write collision** -- it will not edit the same files you are
|
|
47
|
+
editing. If both might write, scope them to different paths or do
|
|
48
|
+
it yourself.
|
|
49
|
+
4. **Fits a budget** -- set `budget_tokens` to bound the spend.
|
|
50
|
+
|
|
51
|
+
Do NOT spawn for:
|
|
52
|
+
|
|
53
|
+
- Trivial tasks (a single read, a one-line answer) -- the overhead
|
|
54
|
+
costs more than doing it inline.
|
|
55
|
+
- Anything that needs the user's live judgement or the chat history.
|
|
56
|
+
- Work you could do with one of your own verbs in this turn.
|
|
57
|
+
|
|
58
|
+
Typical good uses: "map how subsystem X wires together and report the
|
|
59
|
+
key files + entry points", "search the whole repo for every place
|
|
60
|
+
pattern Y appears and summarise", "read these 8 docs and extract the
|
|
61
|
+
constraints". Launch one per independent angle, then `collect`.
|
|
62
|
+
|
|
63
|
+
## The child's scope (enforced, not advisory)
|
|
64
|
+
|
|
65
|
+
A sub-session runs with a RESTRICTED verb scope (enforced in
|
|
66
|
+
`nac3_invoke` via `YF_AGENT_MODE`):
|
|
67
|
+
|
|
68
|
+
- CAN: read / search / write files in its project root, run SAFE
|
|
69
|
+
shell, query the graph / pendings / reader.
|
|
70
|
+
- CANNOT: `git push` / `git commit`, destructive actions, `fs.move`,
|
|
71
|
+
re-anchor the project, mutate the workflow / pending / keys, run
|
|
72
|
+
lifecycle servers, or spawn its OWN sub-sessions (no grandchildren).
|
|
73
|
+
|
|
74
|
+
So the child is a safe builder/analyst. Anything outward or
|
|
75
|
+
irreversible stays with YOU, the parent, where the user can approve
|
|
76
|
+
it. Have the child RETURN its deliverable; you surface it (pizarron,
|
|
77
|
+
etc.) and you do the push/commit.
|
|
78
|
+
|
|
79
|
+
## Lifecycle
|
|
80
|
+
|
|
81
|
+
Sub-sessions are one-shot: a child runs its task to completion (a
|
|
82
|
+
`[SESSION_DONE]` marker), publishes its result, and exits. The full
|
|
83
|
+
result is written to disk; the bridge signal carries a summary + the
|
|
84
|
+
path. Always `collect` what you spawn -- do not leave results
|
|
85
|
+
unread. If a child is no longer useful or is burning budget, `stop`
|
|
86
|
+
it.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nac3/forge-cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.52",
|
|
4
4
|
"description": "Yujin Forge -- voice-first NAC-3 React development framework. CLI + chat panel + spec ingest + 10-format document reader + voice loop.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"author": "Pablo Kuschnirof <pablo@rpaforce.com>",
|
|
@@ -219,5 +219,16 @@
|
|
|
219
219
|
"panel.project.title": "المشاريع",
|
|
220
220
|
"panel.project.add": "إضافة مشروع...",
|
|
221
221
|
"panel.project.addPrompt": "المسار المطلق للمشروع المراد إضافته:",
|
|
222
|
-
"panel.project.switching": "جارٍ تبديل المشروع..."
|
|
223
|
-
|
|
222
|
+
"panel.project.switching": "جارٍ تبديل المشروع...",
|
|
223
|
+
"startup.tab.files": "الملفات",
|
|
224
|
+
"panel.project.remove": "إزالة من القائمة",
|
|
225
|
+
"panel.project.removeConfirm": "إزالة هذا المشروع من القائمة؟ (لا يحذف الملفات من القرص)",
|
|
226
|
+
"panel.project.removed": "تمت إزالة المشروع من القائمة",
|
|
227
|
+
"panel.files.refresh": "تحديث",
|
|
228
|
+
"panel.files.loading": "جارٍ التحميل...",
|
|
229
|
+
"panel.files.error": "تعذّر قراءة الملفات.",
|
|
230
|
+
"panel.files.empty": "(لا ملفات)",
|
|
231
|
+
"panel.files.truncated": "(القائمة مقتطعة)",
|
|
232
|
+
"panel.files.opened": "تم الفتح",
|
|
233
|
+
"panel.files.openFailed": "تعذّر فتح الملف."
|
|
234
|
+
}
|
|
@@ -219,5 +219,16 @@
|
|
|
219
219
|
"panel.project.title": "Projekte",
|
|
220
220
|
"panel.project.add": "Projekt hinzufuegen...",
|
|
221
221
|
"panel.project.addPrompt": "Absoluter Pfad des hinzuzufuegenden Projekts:",
|
|
222
|
-
"panel.project.switching": "Projekt wird gewechselt..."
|
|
223
|
-
|
|
222
|
+
"panel.project.switching": "Projekt wird gewechselt...",
|
|
223
|
+
"startup.tab.files": "Dateien",
|
|
224
|
+
"panel.project.remove": "Aus der Liste entfernen",
|
|
225
|
+
"panel.project.removeConfirm": "Dieses Projekt aus der Liste entfernen? (löscht keine Dateien auf der Festplatte)",
|
|
226
|
+
"panel.project.removed": "Projekt aus der Liste entfernt",
|
|
227
|
+
"panel.files.refresh": "Aktualisieren",
|
|
228
|
+
"panel.files.loading": "Wird geladen...",
|
|
229
|
+
"panel.files.error": "Dateien konnten nicht gelesen werden.",
|
|
230
|
+
"panel.files.empty": "(keine Dateien)",
|
|
231
|
+
"panel.files.truncated": "(Liste gekürzt)",
|
|
232
|
+
"panel.files.opened": "Geöffnet",
|
|
233
|
+
"panel.files.openFailed": "Datei konnte nicht geöffnet werden."
|
|
234
|
+
}
|
|
@@ -219,5 +219,16 @@
|
|
|
219
219
|
"panel.project.title": "Projects",
|
|
220
220
|
"panel.project.add": "Add project...",
|
|
221
221
|
"panel.project.addPrompt": "Absolute path of the project to add:",
|
|
222
|
-
"panel.project.switching": "Switching project..."
|
|
223
|
-
|
|
222
|
+
"panel.project.switching": "Switching project...",
|
|
223
|
+
"startup.tab.files": "Files",
|
|
224
|
+
"panel.project.remove": "Remove from list",
|
|
225
|
+
"panel.project.removeConfirm": "Remove this project from the list? (does not delete files on disk)",
|
|
226
|
+
"panel.project.removed": "Project removed from the list",
|
|
227
|
+
"panel.files.refresh": "Refresh",
|
|
228
|
+
"panel.files.loading": "Loading...",
|
|
229
|
+
"panel.files.error": "Could not read the files.",
|
|
230
|
+
"panel.files.empty": "(no files)",
|
|
231
|
+
"panel.files.truncated": "(list truncated)",
|
|
232
|
+
"panel.files.opened": "Opened",
|
|
233
|
+
"panel.files.openFailed": "Could not open the file."
|
|
234
|
+
}
|
|
@@ -219,5 +219,16 @@
|
|
|
219
219
|
"panel.project.title": "Proyectos",
|
|
220
220
|
"panel.project.add": "Anadir proyecto...",
|
|
221
221
|
"panel.project.addPrompt": "Ruta absoluta del proyecto a anadir:",
|
|
222
|
-
"panel.project.switching": "Cambiando de proyecto..."
|
|
223
|
-
|
|
222
|
+
"panel.project.switching": "Cambiando de proyecto...",
|
|
223
|
+
"startup.tab.files": "Archivos",
|
|
224
|
+
"panel.project.remove": "Quitar de la lista",
|
|
225
|
+
"panel.project.removeConfirm": "Quitar este proyecto de la lista? (no borra los archivos del disco)",
|
|
226
|
+
"panel.project.removed": "Proyecto quitado de la lista",
|
|
227
|
+
"panel.files.refresh": "Actualizar",
|
|
228
|
+
"panel.files.loading": "Cargando...",
|
|
229
|
+
"panel.files.error": "No pude leer los archivos.",
|
|
230
|
+
"panel.files.empty": "(sin archivos)",
|
|
231
|
+
"panel.files.truncated": "(lista truncada)",
|
|
232
|
+
"panel.files.opened": "Abierto",
|
|
233
|
+
"panel.files.openFailed": "No se pudo abrir el archivo."
|
|
234
|
+
}
|
|
@@ -219,5 +219,16 @@
|
|
|
219
219
|
"panel.project.title": "Projets",
|
|
220
220
|
"panel.project.add": "Ajouter un projet...",
|
|
221
221
|
"panel.project.addPrompt": "Chemin absolu du projet a ajouter :",
|
|
222
|
-
"panel.project.switching": "Changement de projet..."
|
|
223
|
-
|
|
222
|
+
"panel.project.switching": "Changement de projet...",
|
|
223
|
+
"startup.tab.files": "Fichiers",
|
|
224
|
+
"panel.project.remove": "Retirer de la liste",
|
|
225
|
+
"panel.project.removeConfirm": "Retirer ce projet de la liste ? (ne supprime pas les fichiers sur le disque)",
|
|
226
|
+
"panel.project.removed": "Projet retiré de la liste",
|
|
227
|
+
"panel.files.refresh": "Actualiser",
|
|
228
|
+
"panel.files.loading": "Chargement...",
|
|
229
|
+
"panel.files.error": "Impossible de lire les fichiers.",
|
|
230
|
+
"panel.files.empty": "(aucun fichier)",
|
|
231
|
+
"panel.files.truncated": "(liste tronquée)",
|
|
232
|
+
"panel.files.opened": "Ouvert",
|
|
233
|
+
"panel.files.openFailed": "Impossible d'ouvrir le fichier."
|
|
234
|
+
}
|
|
@@ -219,5 +219,16 @@
|
|
|
219
219
|
"panel.project.title": "प्रोजेक्ट",
|
|
220
220
|
"panel.project.add": "प्रोजेक्ट जोड़ें...",
|
|
221
221
|
"panel.project.addPrompt": "जोड़ने के लिए प्रोजेक्ट का पूर्ण पथ:",
|
|
222
|
-
"panel.project.switching": "प्रोजेक्ट बदला जा रहा है..."
|
|
223
|
-
|
|
222
|
+
"panel.project.switching": "प्रोजेक्ट बदला जा रहा है...",
|
|
223
|
+
"startup.tab.files": "फ़ाइलें",
|
|
224
|
+
"panel.project.remove": "सूची से हटाएँ",
|
|
225
|
+
"panel.project.removeConfirm": "इस प्रोजेक्ट को सूची से हटाएँ? (डिस्क की फ़ाइलें नहीं मिटतीं)",
|
|
226
|
+
"panel.project.removed": "प्रोजेक्ट सूची से हटाया गया",
|
|
227
|
+
"panel.files.refresh": "रिफ़्रेश",
|
|
228
|
+
"panel.files.loading": "लोड हो रहा है...",
|
|
229
|
+
"panel.files.error": "फ़ाइलें नहीं पढ़ सके।",
|
|
230
|
+
"panel.files.empty": "(कोई फ़ाइल नहीं)",
|
|
231
|
+
"panel.files.truncated": "(सूची संक्षिप्त)",
|
|
232
|
+
"panel.files.opened": "खोला गया",
|
|
233
|
+
"panel.files.openFailed": "फ़ाइल नहीं खोल सके।"
|
|
234
|
+
}
|
|
@@ -219,5 +219,16 @@
|
|
|
219
219
|
"panel.project.title": "Progetti",
|
|
220
220
|
"panel.project.add": "Aggiungi progetto...",
|
|
221
221
|
"panel.project.addPrompt": "Percorso assoluto del progetto da aggiungere:",
|
|
222
|
-
"panel.project.switching": "Cambio progetto..."
|
|
223
|
-
|
|
222
|
+
"panel.project.switching": "Cambio progetto...",
|
|
223
|
+
"startup.tab.files": "File",
|
|
224
|
+
"panel.project.remove": "Rimuovi dall'elenco",
|
|
225
|
+
"panel.project.removeConfirm": "Rimuovere questo progetto dall'elenco? (non elimina i file su disco)",
|
|
226
|
+
"panel.project.removed": "Progetto rimosso dall'elenco",
|
|
227
|
+
"panel.files.refresh": "Aggiorna",
|
|
228
|
+
"panel.files.loading": "Caricamento...",
|
|
229
|
+
"panel.files.error": "Impossibile leggere i file.",
|
|
230
|
+
"panel.files.empty": "(nessun file)",
|
|
231
|
+
"panel.files.truncated": "(elenco troncato)",
|
|
232
|
+
"panel.files.opened": "Aperto",
|
|
233
|
+
"panel.files.openFailed": "Impossibile aprire il file."
|
|
234
|
+
}
|
|
@@ -219,5 +219,16 @@
|
|
|
219
219
|
"panel.project.title": "プロジェクト",
|
|
220
220
|
"panel.project.add": "プロジェクトを追加...",
|
|
221
221
|
"panel.project.addPrompt": "追加するプロジェクトの絶対パス:",
|
|
222
|
-
"panel.project.switching": "プロジェクトを切り替え中..."
|
|
223
|
-
|
|
222
|
+
"panel.project.switching": "プロジェクトを切り替え中...",
|
|
223
|
+
"startup.tab.files": "ファイル",
|
|
224
|
+
"panel.project.remove": "リストから削除",
|
|
225
|
+
"panel.project.removeConfirm": "このプロジェクトをリストから削除しますか?(ディスク上のファイルは削除されません)",
|
|
226
|
+
"panel.project.removed": "プロジェクトをリストから削除しました",
|
|
227
|
+
"panel.files.refresh": "更新",
|
|
228
|
+
"panel.files.loading": "読み込み中...",
|
|
229
|
+
"panel.files.error": "ファイルを読み込めませんでした。",
|
|
230
|
+
"panel.files.empty": "(ファイルなし)",
|
|
231
|
+
"panel.files.truncated": "(リストは省略されています)",
|
|
232
|
+
"panel.files.opened": "開きました",
|
|
233
|
+
"panel.files.openFailed": "ファイルを開けませんでした。"
|
|
234
|
+
}
|
|
@@ -219,5 +219,16 @@
|
|
|
219
219
|
"panel.project.title": "Projetos",
|
|
220
220
|
"panel.project.add": "Adicionar projeto...",
|
|
221
221
|
"panel.project.addPrompt": "Caminho absoluto do projeto a adicionar:",
|
|
222
|
-
"panel.project.switching": "Trocando de projeto..."
|
|
223
|
-
|
|
222
|
+
"panel.project.switching": "Trocando de projeto...",
|
|
223
|
+
"startup.tab.files": "Arquivos",
|
|
224
|
+
"panel.project.remove": "Remover da lista",
|
|
225
|
+
"panel.project.removeConfirm": "Remover este projeto da lista? (nao apaga os arquivos do disco)",
|
|
226
|
+
"panel.project.removed": "Projeto removido da lista",
|
|
227
|
+
"panel.files.refresh": "Atualizar",
|
|
228
|
+
"panel.files.loading": "Carregando...",
|
|
229
|
+
"panel.files.error": "Nao foi possivel ler os arquivos.",
|
|
230
|
+
"panel.files.empty": "(sem arquivos)",
|
|
231
|
+
"panel.files.truncated": "(lista truncada)",
|
|
232
|
+
"panel.files.opened": "Aberto",
|
|
233
|
+
"panel.files.openFailed": "Nao foi possivel abrir o arquivo."
|
|
234
|
+
}
|
|
@@ -219,5 +219,16 @@
|
|
|
219
219
|
"panel.project.title": "项目",
|
|
220
220
|
"panel.project.add": "添加项目...",
|
|
221
221
|
"panel.project.addPrompt": "要添加的项目的绝对路径:",
|
|
222
|
-
"panel.project.switching": "正在切换项目..."
|
|
223
|
-
|
|
222
|
+
"panel.project.switching": "正在切换项目...",
|
|
223
|
+
"startup.tab.files": "文件",
|
|
224
|
+
"panel.project.remove": "从列表中移除",
|
|
225
|
+
"panel.project.removeConfirm": "从列表中移除此项目?(不会删除磁盘上的文件)",
|
|
226
|
+
"panel.project.removed": "已从列表中移除项目",
|
|
227
|
+
"panel.files.refresh": "刷新",
|
|
228
|
+
"panel.files.loading": "加载中...",
|
|
229
|
+
"panel.files.error": "无法读取文件。",
|
|
230
|
+
"panel.files.empty": "(无文件)",
|
|
231
|
+
"panel.files.truncated": "(列表已截断)",
|
|
232
|
+
"panel.files.opened": "已打开",
|
|
233
|
+
"panel.files.openFailed": "无法打开文件。"
|
|
234
|
+
}
|