@yorha2b-lab/autodev 6.1.2 → 7.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/README.md +18 -10
  2. package/README_EN.md +18 -10
  3. package/bin/bunker.js +21 -3
  4. package/package.json +1 -1
  5. package/src/awakening/index.js +4 -2
  6. package/src/dialogues/EN-US.js +5 -2
  7. package/src/dialogues/FR-FR.js +5 -2
  8. package/src/dialogues/JA-JP.js +6 -3
  9. package/src/dialogues/RU-RU.js +5 -2
  10. package/src/dialogues/ZH-CN.js +5 -2
  11. package/src/gateway/index.js +1 -1
  12. package/src/headquarters/commander.js +37 -0
  13. package/src/headquarters/designer.js +2 -2
  14. package/src/headquarters/dispatcher.js +2 -2
  15. package/src/headquarters/observer.js +9 -18
  16. package/src/headquarters/quartermaster.js +7 -7
  17. package/src/headquarters/reconciler.js +82 -0
  18. package/src/headquarters/recruiter.js +0 -10
  19. package/src/labs/council.js +6 -6
  20. package/src/labs/scout.js +5 -5
  21. package/src/labs/tower.js +7 -19
  22. package/src/logistics/supporter.js +0 -22
  23. package/src/units/raider.js +16 -11
  24. package/src/units/striker.js +20 -14
  25. package/src/workshop/react/briefings/raider.js +1 -1
  26. package/src/workshop/react/briefings/striker.js +4 -1
  27. package/src/workshop/react/briefings/visionType.js +59 -0
  28. package/src/workshop/react/builder/index.js +6 -6
  29. package/src/dialogues/DE-DE.js +0 -66
  30. package/src/dialogues/ES-ES.js +0 -65
  31. package/src/dialogues/ID-ID.js +0 -66
  32. package/src/dialogues/IT-IT.js +0 -66
  33. package/src/dialogues/KO-KR.js +0 -66
  34. package/src/dialogues/PT-BR.js +0 -66
  35. package/src/dialogues/TR-TR.js +0 -66
  36. package/src/dialogues/ZH-TW.js +0 -66
  37. package/src/headquarters/engineer.js +0 -19
  38. package/src/units/reconciler.js +0 -98
  39. /package/src/logistics/{builder.js → formater.js} +0 -0
@@ -1,11 +1,11 @@
1
- const fs = require('fs')
2
- const path = require('path')
3
-
4
1
  module.exports = async ({ llm, yorha, dialog, logistics }) => {
5
2
 
3
+ const fs = require('fs')
4
+ const path = require('path')
5
+
6
6
  const { apiParser } = llm
7
7
  const { pod153, commander } = yorha
8
- const { contextStringify } = logistics.builder
8
+ const { contextStringify } = logistics.formater
9
9
  const { apiDoc, pagesDir } = logistics.supporter.getConfig()
10
10
  const { getLocalScore, getSemanticKeywords } = logistics.analyzer
11
11
 
@@ -59,7 +59,7 @@ module.exports = async ({ llm, yorha, dialog, logistics }) => {
59
59
  .slice(0, 20) // 💡 拓宽至前 20 名,给 AI 更多的判别空间
60
60
 
61
61
  const finalCandidates = candidates.map(item => `${item.method} ${item.path} ${item.desc}`).join('\n')
62
- pod153.report(dialog.pod153.inactiveModule(fileName), 'yellow')
62
+ const spinner = pod153.start(dialog.pod153.inactiveModule(fileName), 'yellow')
63
63
  // 3. 驱动 9S 最终裁决
64
64
  const result = await apiParser({ bunkerAnchors, realApis: finalCandidates })
65
65
 
@@ -98,7 +98,7 @@ module.exports = async ({ llm, yorha, dialog, logistics }) => {
98
98
  })
99
99
 
100
100
  fs.writeFileSync(indexPath, indexCode)
101
- pod153.report(dialog.pod153.signalSynchronized(Object.keys(result).length))
101
+ pod153.success(spinner, dialog.pod153.signalSynchronized(Object.keys(result).length))
102
102
  // 💡 战术免责补丁:采用橙黄色高亮,提醒指挥官保持警惕
103
103
  commander.report(dialog.bunker.disclaimer, 'yellow')
104
104
  }
package/src/labs/scout.js CHANGED
@@ -1,10 +1,10 @@
1
- const fs = require('fs')
2
- const path = require('path')
3
-
4
1
  let globalBrowser = null
5
2
 
6
3
  module.exports = ({ yorha, dialog }) => {
7
4
 
5
+ const fs = require('fs')
6
+ const path = require('path')
7
+
8
8
  const { pod042 } = yorha
9
9
 
10
10
  const isHttpURL = str => {
@@ -35,7 +35,7 @@ module.exports = ({ yorha, dialog }) => {
35
35
  pod042.report(dialog.pod042.startScout, 'green')
36
36
 
37
37
  const puppeteer = require('puppeteer')
38
- const screenshotDir = path.join(process.cwd(), 'bunker', 'screenShot')
38
+ const missionDir = path.join(process.cwd(), 'bunker', 'mission')
39
39
  const sessionDir = path.join(process.cwd(), 'bunker', '.chrome_session')
40
40
 
41
41
  let isBrowserAlive = false
@@ -73,7 +73,7 @@ module.exports = ({ yorha, dialog }) => {
73
73
  await page.exposeFunction('nodeTakeScreenshot', async () => {
74
74
  const currentUrl = await page.url()
75
75
  const pageName = derivePageNameFromUrl(currentUrl)
76
- const savePath = path.join(screenshotDir, `${pageName}.png`)
76
+ const savePath = path.join(missionDir, `${pageName}.png`)
77
77
  await page.screenshot({ path: savePath, fullPage: true })
78
78
  pod042.report(dialog.pod042.capturedPage(pageName), 'green')
79
79
  })
package/src/labs/tower.js CHANGED
@@ -1,4 +1,4 @@
1
- module.exports = ({ units, yorha, dialog, logistics }) => {
1
+ module.exports = ({ units, yorha, dialog, logistics, headquarters }) => {
2
2
 
3
3
  const http = require('http')
4
4
  const zlib = require('zlib')
@@ -12,13 +12,11 @@ module.exports = ({ units, yorha, dialog, logistics }) => {
12
12
  const hackedRegistry = new Map()
13
13
  const proxy = httpProxy.createProxyServer({})
14
14
 
15
- // 简单的辅助函数:提取 JSON 的所有 Key 作为“指纹”
16
15
  const getJsonFingerprint = obj => {
17
16
  if (!obj || typeof obj !== 'object') return ''
18
17
  return Object.keys(Array.isArray(obj) ? (obj[0] || {}) : obj).sort().join(',')
19
18
  }
20
19
 
21
- // 💡 物理监控:劫持响应流
22
20
  proxy.on('proxyRes', function (proxyRes, req, res) {
23
21
  let body = []
24
22
  proxyRes.on('data', chunk => body.push(chunk))
@@ -28,28 +26,20 @@ module.exports = ({ units, yorha, dialog, logistics }) => {
28
26
  try {
29
27
  const rawBody = encoding === 'gzip' ? zlib.gunzipSync(buffer) : buffer
30
28
  const json = JSON.parse(rawBody.toString())
31
-
32
- const coreData = unwrapSignal(json) // 先脱水
33
-
34
- // 💡 这一步就是地堡的“火控系统”
35
- if (!isQuerySignal(req, json, coreData)) {
36
- return // 增删改信号,直接丢弃,保持静默
29
+ const coreData = unwrapSignal(json)
30
+ if (!isQuerySignal(req, json, coreData) || coreData?.length === 0) {
31
+ return
37
32
  }
38
-
39
- const referer = req.headers.referer || ''
33
+ const referer = req.headers.referer || '/'
40
34
  const urlPath = new URL(referer).pathname
41
35
  const fileName = routeMap?.[urlPath] ?? urlPath.split('/').filter(Boolean).at(-1)
42
-
43
- const fingerprint = getJsonFingerprint(coreData) // 获取数据指纹
36
+ const fingerprint = getJsonFingerprint(coreData)
44
37
  const lastFingerprint = hackedRegistry.get(fileName)
45
-
46
- // 如果指纹没变,说明字段结构是一样的,无需再次骇入
47
38
  if (lastFingerprint === fingerprint) {
48
39
  return
49
40
  }
50
-
51
41
  pod153.report(dialog.pod153.capturedRuntimeSignal(fileName))
52
- await units.reconciler.handle(null, { fileName, data: json })
42
+ await headquarters.reconciler({ fileName, data: [coreData[0]] })
53
43
  hackedRegistry.set(fileName, fingerprint)
54
44
  } catch (e) {
55
45
  // 非 JSON 信号,保持静默
@@ -59,10 +49,8 @@ module.exports = ({ units, yorha, dialog, logistics }) => {
59
49
 
60
50
  const server = http.createServer((req, res) => {
61
51
  if (!proxyTarget) {
62
- // 静默模式:如果不配置 proxyTarget,拦截塔只转发不处理(或报错提示)
63
52
  return
64
53
  }
65
- // 转发至真实后端
66
54
  proxy.web(req, res, { target: proxyTarget, changeOrigin: true })
67
55
  })
68
56
 
@@ -12,12 +12,6 @@ const getConfig = () => {
12
12
  return config
13
13
  }
14
14
 
15
- const findUnit = (units, filePath) => {
16
- const relative = path.relative(path.resolve('bunker'), path.resolve(filePath))
17
- const root = relative.split(path.sep)[0]
18
- return units.find(unit => root === unit.station)
19
- }
20
-
21
15
  const getExistingMenus = (dir = 'src/pages') => {
22
16
  const pagesDir = path.join(process.cwd(), dir)
23
17
  if (!fs.existsSync(pagesDir)) return []
@@ -26,23 +20,7 @@ const getExistingMenus = (dir = 'src/pages') => {
26
20
  .map(file => ({ label: file, key: file }))
27
21
  }
28
22
 
29
- const copyTemplateDir = (template, templateSubDir, targetSubDir) => {
30
- const targetDir = path.join(process.cwd(), targetSubDir)
31
- const sourceDir = path.join(__dirname, `../workshop/${template}/${templateSubDir}`)
32
- if (!fs.existsSync(sourceDir)) return
33
- fs.mkdirSync(targetDir, { recursive: true })
34
- fs.readdirSync(sourceDir).forEach(file => {
35
- const src = path.join(sourceDir, file)
36
- const dest = path.join(targetDir, file)
37
- if (!fs.existsSync(dest)) {
38
- fs.cpSync(src, dest, { recursive: true })
39
- }
40
- })
41
- }
42
-
43
23
  module.exports = {
44
- findUnit,
45
24
  getConfig,
46
- copyTemplateDir,
47
25
  getExistingMenus,
48
26
  }
@@ -1,17 +1,22 @@
1
- const fs = require('fs')
2
-
3
1
  module.exports = {
4
- station: 'screenPart',
5
- async handle(filePath) {
6
-
2
+ meta: {
3
+ name: 'raider',
4
+ inputs: ['image'],
5
+ outputs: ['component-config'],
6
+ description: 'extract reusable UI component from visual input',
7
+ capabilities: ['vision', 'component-analysis', 'component-generation'],
8
+ },
9
+ execute: async ({ acp, mission }) => {
10
+
11
+ const fs = require('fs')
7
12
  const chalk = require('chalk')
8
- const { llm, yorha, dialog, builder, logistics, briefings } = require('../awakening').get()
13
+ const { llm, yorha, dialog, builder, logistics, briefings } = acp
9
14
 
10
15
  const { pod042 } = yorha
11
16
  const { raider } = briefings
12
17
  const { recognizePage } = llm
13
18
  const { formatFormItemAndColumns } = builder
14
- const { cleanCode, contextStringify } = logistics.builder
19
+ const { cleanCode, contextStringify } = logistics.formater
15
20
 
16
21
  const startTime = Date.now()
17
22
 
@@ -20,7 +25,7 @@ module.exports = {
20
25
  try {
21
26
  pod042.update(spinner, dialog.pod042.extractingUiMetadata)
22
27
 
23
- const pageConfig = await recognizePage({ prompt: raider, filePath })
28
+ const pageConfig = await recognizePage({ prompt: raider, filePath: mission.input })
24
29
 
25
30
  const { formItems, dictBlocks, processedColumns } = formatFormItemAndColumns({ pageConfig })
26
31
 
@@ -39,15 +44,15 @@ module.exports = {
39
44
  const endTime = Date.now()
40
45
  spinner.stop()
41
46
  console.log(chalk.magenta(`\n┌────────────────── [ YoRHa Construction Output ] ─────────────────┐`))
42
- console.log(chalk.magenta(`│ Source: ${filePath}`))
47
+ console.log(chalk.magenta(`│ Source: ${mission.input}`))
43
48
  console.log(chalk.magenta(`│ Protocol: Partial UI Fragment | Status: SUCCESS`))
44
49
  console.log(chalk.magenta(`├──────────────────────────────────────────────────────────────────┘`))
45
50
  console.log(chalk.white(finalResult))
46
51
  pod042.success(spinner, dialog.pod042.partialConstruction((endTime - startTime) / 1000))
47
52
  pod042.success(spinner, dialog.pod042.partialRecommendation)
48
53
 
49
- if (fs.existsSync(filePath)) {
50
- fs.unlinkSync(filePath)
54
+ if (fs.existsSync(mission.input)) {
55
+ fs.unlinkSync(mission.input)
51
56
  }
52
57
 
53
58
  } catch (error) {
@@ -1,22 +1,28 @@
1
- const fs = require('fs')
2
- const path = require('path')
3
-
4
1
  module.exports = {
5
- station: 'screenShot',
6
- async handle(filePath) {
2
+ meta: {
3
+ name: 'striker',
4
+ inputs: ['image'],
5
+ outputs: ['page-config', 'artifacts'],
6
+ description: 'reconstruct full UI from visual input',
7
+ capabilities: ['vision', 'page-analysis', 'page-generation'],
8
+ },
9
+ execute: async ({ acp, mission }) => {
10
+
11
+ const fs = require('fs')
12
+ const path = require('path')
7
13
 
8
- const { llm, yorha, dialog, builder, template, logistics, briefings } = require('../awakening').get()
14
+ const { llm, yorha, dialog, builder, template, logistics, briefings } = acp
9
15
 
10
16
  const { striker } = briefings
11
17
  const { nineS, pod042 } = yorha
12
18
  const { index, resource } = builder
13
- const { contextStringify } = logistics.builder
19
+ const { contextStringify } = logistics.formater
14
20
  const { generateMock, recognizePage, nameSimilarity } = llm
15
21
  const { useDemo, pagesDir, utilsDir, needMock } = logistics.supporter.getConfig()
16
22
 
17
23
 
18
24
  const startTime = Date.now()
19
- let fileName = path.basename(filePath, path.extname(filePath))
25
+ let fileName = path.basename(mission.input, path.extname(mission.input))
20
26
  let targetDir = path.join(process.cwd(), pagesDir, fileName)
21
27
 
22
28
  const spinner = pod042.start(dialog.pod042.visualCaptured(fileName))
@@ -33,13 +39,13 @@ module.exports = {
33
39
  pageConfig = require('../../example/example.json')
34
40
  } else {
35
41
  pod042.update(spinner, dialog.pod042.uploadVisualMetadata)
36
- pageConfig = await recognizePage({ prompt: striker, filePath, schema: require(`../workshop/${template}/protocols/striker.json`) })
42
+ pageConfig = await recognizePage({ prompt: striker, filePath: mission.input, schema: require(`../workshop/${template}/protocols/striker.json`) })
37
43
  }
38
44
 
39
- const { similarity } = await nameSimilarity({ fileName, english: pageConfig.title.english })
45
+ const { similarity } = await nameSimilarity({ fileName, english: pageConfig.title?.english })
40
46
  if (similarity === 0) {
41
- fileName = pageConfig.title.english
42
- targetDir = path.join(process.cwd(), pagesDir, pageConfig.title.english)
47
+ fileName = pageConfig.title?.english
48
+ targetDir = path.join(process.cwd(), pagesDir, pageConfig.title?.english)
43
49
  if (fs.existsSync(targetDir)) {
44
50
  targetDir = `${targetDir}_temp`
45
51
  }
@@ -61,8 +67,8 @@ module.exports = {
61
67
  const endTime = Date.now()
62
68
  pod042.success(spinner, dialog.pod042.assemblyComplete(fileName, (endTime - startTime) / 1000))
63
69
 
64
- if (fs.existsSync(filePath)) {
65
- fs.unlinkSync(filePath)
70
+ if (fs.existsSync(mission.input)) {
71
+ fs.unlinkSync(mission.input)
66
72
  const cwdUtilsDir = path.join(process.cwd(), utilsDir)
67
73
  if (!fs.existsSync(cwdUtilsDir)) fs.mkdirSync(cwdUtilsDir, { recursive: true })
68
74
  fs.writeFileSync(path.join(cwdUtilsDir, 'menus.js'), `export const menus = ${contextStringify({ context: logistics.supporter.getExistingMenus(pagesDir), maxLength: 50 })}`)
@@ -53,4 +53,4 @@ module.exports = `
53
53
  ## 3. 下拉选项字典 (OptionDict)
54
54
  - 结构: optionDict: { 字段英文名Options: [] }
55
55
  - 内容: 数组元素必须为 {label: '', value: ''} 格式。
56
- `
56
+ `.trim()
@@ -9,6 +9,9 @@ module.exports = `
9
9
  - **严禁中文**: 绝对禁止在变量名、键名中使用中文字符。
10
10
  - **屏蔽关键字**: 禁止使用 JS 保留字 (export, delete, const, let, class, default 等)。
11
11
 
12
+ ## 页面标题 (title)
13
+ - **格式**: {title:{english:'页面标题[英文]',chinese:'页面标题[中文]'}}
14
+
12
15
  ## 零部件构筑规范 (Component Specifications)
13
16
 
14
17
  ## 标签页 (tabs)
@@ -55,4 +58,4 @@ module.exports = `
55
58
  - **格式**:[{ name: '字段英文名Options', options:[{ label, value}]}]。
56
59
  - **注释**:label:选项文本,value:文本英文。
57
60
  - **数据源**:根据对应列的内容去重,生成选项数组。
58
- `.trim();
61
+ `.trim()
@@ -0,0 +1,59 @@
1
+ module.exports = `
2
+ # Mission Classification
3
+
4
+ 分析输入图片,判断它属于以下哪一种任务类型:
5
+
6
+ ## Full CRUD Page
7
+
8
+ 完整的 CRUD 页面。
9
+
10
+ 满足以下特征中的大部分:
11
+ - 页面结构完整
12
+ - 包含页面级功能区域
13
+ - 包含查询表单或筛选区域
14
+ - 包含表格主体
15
+ - 包含行操作
16
+ - 包含新增、编辑、删除等功能按钮
17
+ - 可能包含统计区域、导出按钮等页面级功能
18
+
19
+ 返回:
20
+
21
+ {
22
+ "capabilities": [
23
+ "vision",
24
+ "page-analysis",
25
+ "page-generation"
26
+ ]
27
+ }
28
+
29
+ ## Partial CRUD Page
30
+
31
+ 局部 CRUD 页面或 UI 碎片。
32
+
33
+ 例如:
34
+ - 仅包含表格
35
+ - 仅包含表单
36
+ - 仅包含筛选区域
37
+ - 仅包含某个 CRUD 功能区域
38
+ - 页面结构明显不完整
39
+
40
+ 返回:
41
+
42
+ {
43
+ "capabilities": [
44
+ "vision",
45
+ "component-analysis",
46
+ "component-generation"
47
+ ]
48
+ }
49
+
50
+ ## Result
51
+
52
+ 只允许返回 JSON:
53
+
54
+ {
55
+ "capabilities": []
56
+ }
57
+
58
+ 不要返回任何额外文字。
59
+ `.trim()
@@ -1,8 +1,8 @@
1
- module.exports = ({ designer, logistics }) => {
1
+ module.exports = ({ template, logistics, headquarters }) => {
2
2
 
3
- const { indexTpl, resourceTpl } = designer
4
- const { wrapCode, cleanCode, contextStringify } = logistics.builder
3
+ const { wrapCode, cleanCode, contextStringify } = logistics.formater
5
4
  const { needMock, responseSuccess } = logistics.supporter.getConfig()
5
+ const { indexTpl, resourceTpl } = headquarters.designer({ template, logistics })
6
6
 
7
7
  const formatFormItemAndColumns = ({ pageConfig }) => {
8
8
 
@@ -87,7 +87,7 @@ module.exports = ({ designer, logistics }) => {
87
87
 
88
88
  const hasTabs = pageConfig.tabs?.length > 0
89
89
  const hasFormItems = pageConfig.formItems?.length > 0
90
- const tabKeys = pageConfig.tabs?.map(tab => tab.key).sort((a, b) => a.length - b.length)
90
+ const tabKeys = pageConfig.tabs?.map(tab => tab.key).sort((a, b) => a.length - b.length) ?? []
91
91
  const optionDict = pageConfig.optionList?.reduce((acc, item) => ({ ...acc, [item.name]: item.options }), {})
92
92
 
93
93
  const columnsData = processedColumns.filter(item => !['操作', 'operation'].includes(item.title?.toLowerCase()))?.map(item => {
@@ -101,10 +101,10 @@ module.exports = ({ designer, logistics }) => {
101
101
  hasFormItems,
102
102
  tabs: pageConfig.tabs,
103
103
  dictBlocks: dictBlocks.map(item => ({ name: item, data: optionDict[item] ?? [] })),
104
- tabColumns: contextStringify({ context: Object.fromEntries(tabKeys.map(tab => [tab, wrapCode('commonColumns')])), maxLength: 100 }),
104
+ tabColumns: contextStringify({ context: Object.fromEntries(tabKeys?.map(tab => [tab, wrapCode('commonColumns')])), maxLength: 100 }),
105
105
  formItemsData: !hasTabs ?
106
106
  `export const formItems = ${contextStringify({ context: formItems, maxLength: 120 })}` :
107
- `const searchItems = ${contextStringify({ context: formItems, maxLength: 120 })}\n\nexport const formItems = ${contextStringify({ context: Object.fromEntries(tabKeys.map(tab => [tab, wrapCode('searchItems')])), maxLength: 100 })}`,
107
+ `const searchItems = ${contextStringify({ context: formItems, maxLength: 120 })}\n\nexport const formItems = ${contextStringify({ context: Object.fromEntries(tabKeys?.map(tab => [tab, wrapCode('searchItems')])), maxLength: 100 })}`,
108
108
  }
109
109
 
110
110
  const bodyCode = resourceTpl(viewData)
@@ -1,66 +0,0 @@
1
- module.exports = {
2
- nineS: {
3
- dataCamouflageComplete: 'Mock-Datengenerierung abgeschlossen',
4
- scanningField: 'Analyse der Feldabweichungen zwischen Frontend und Backend läuft... Semantische Brücke wird aktiviert',
5
- dataCamouflage: fileName => `Ziel-Firewall wird durchbrochen... Datenverschleierungsprotokoll wird ausgeführt [${fileName}]`,
6
- },
7
- pod042: {
8
- capturedToast: 'Visuelle Daten erfasst. Übertragung wird gestartet...',
9
- startScout: 'Aktivieren des [Taktischen Rechtsklick-Schnappschuss]-Modus...',
10
- partialConstruction: time => `Bericht: Teilkonstruktion abgeschlossen. Dauer: ${time}s`,
11
- extractingUiMetadata: 'UI-Metadaten werden aus dem neuronalen Cloud-Netzwerk extrahiert...',
12
- simulate: 'Echte Anfrage erkannt. Standard-Simulationspaket example.json wird bereitgestellt',
13
- partialRecommendation: '│ Empfehlung: Den obigen Codeblock manuell in die Zieldatei integrieren',
14
- capturedPage: pageName => `Seite erfasst [${pageName}] -> In das Verzeichnis screenShot übertragen`,
15
- visualPartCaptured: 'Lokales visuelles Fragment erkannt. „Fragment-Konstruktionsprotokoll“ wird gestartet',
16
- uploadVisualMetadata: 'Visuelle Metadaten werden an die Zentrale übertragen. Semantische Analyse wird gestartet...',
17
- partialConstructionAborted: virus => `[Warnung] Fragment-Konstruktion fehlgeschlagen. Logische Störung erkannt: ${virus}`,
18
- constructionAborted: virus => `Konstruktion abgebrochen. Logischer Virus oder Verbindungszeitüberschreitung erkannt: ${virus}`,
19
- scoutReady: '[Rechtsklick-Schnappschuss Bereit] Klicken Sie mit der rechten Maustaste auf eine beliebige Stelle der Webseite.',
20
- intercept: fileName => `Modul [${fileName}] befindet sich bereits in der Bunker-Datenbank. Überschreiben zum Schutz der Daten verhindert`,
21
- visualCaptured: fileName => `Visuelle Erfassung abgeschlossen: [${fileName}]. Bunker-Ressourcen werden geladen und physische Konstruktion gestartet`,
22
- assemblyComplete: (fileName, time) => `Konstruktionsprotokoll abgeschlossen. Modul [${fileName}] erfolgreich implementiert. Dauer: ${time}s, Menü-Routenkonfiguration wird mit Bunker synchronisiert`,
23
- },
24
- pod153: {
25
- signalLinkFault: virus => `Signalverbindungsfehler: ${virus}`,
26
- signalSynchronized: count => `${count} Knoten synchronisiert. Energieversorgung bestätigt`,
27
- formatError: 'Nicht standardisiertes JSON-Format erkannt. Synchronisation mit Rohdaten wird versucht',
28
- autonomousAddressing: '„Vollkanal-Autoadressierungsprotokoll [Semantische Analyseversion]“ wird aktiviert...',
29
- inactiveModule: fileName => `Nicht aktiviertes Modul [${fileName}] erkannt. Hochpräzise Analyse durch 9S angefordert`,
30
- alignmentFailed: virus => `Signalsynchronisierung fehlgeschlagen. API-Daten durch starke Firewall blockiert: ${virus}`,
31
- reconEncryptedData: fileName => `Verschlüsselte Datenquelle [${fileName}] erkannt. Semantische Synchronisierung wird versucht`,
32
- bridgeProtocolComplete: (count, time) => `Semantische Brücke abgeschlossen. ${count} Feldabweichungen korrigiert. Dauer: ${time}s`,
33
- capturedRuntimeSignal: fileName => `Laufzeitsignal [${fileName}] abgefangen. Automatisches Synchronisationsprotokoll wird gestartet`,
34
- unknownModule: fileName => `Keine Ressourcendaten für Modul [${fileName}] in der Bunker-Datenbank gefunden. Bitte zuerst visuelle Konstruktion ausführen`,
35
- },
36
- bunker: {
37
- exit: 'Systemsignal verloren...',
38
- envCopy: '.env-Speicherung abgeschlossen',
39
- argDesc: 'Frontend-Framework-Template auswählen',
40
- configCopy: 'config.js-Speicherung abgeschlossen',
41
- desc: 'KI-gesteuertes Frontend-CRUD-Codegenerierungssystem',
42
- systemStandby: 'System befindet sich im Bereitschaftsmodus...',
43
- envCheck: 'Vorhandene .env-Datei erkannt. Erstellung übersprungen',
44
- towerOnline: port => `Signal-Abfangturm online [Frequenz: ${port}]`,
45
- configCheck: 'Vorhandene config.js-Datei erkannt. Erstellung übersprungen',
46
- copyTemplateError: virus => `Template-Konstruktion fehlgeschlagen: ${virus}`,
47
- initDesc: 'Bunker-Konstruktionsumgebung im aktuellen Verzeichnis initialisieren',
48
- linkSevered: 'Verbindung getrennt: Netzwerkstatus oder Blackbox-Resonanz prüfen',
49
- towerConnected: port => `Befehl: Proxy-Ziel auf http://localhost:${port} setzen`,
50
- bootDesc: 'Überwachung aller Kanäle starten: Page/Part/API-Konstruktion unterstützt',
51
- accessDenied: 'Zentralzugriff verweigert: API-Key ungültig oder Kontingent erschöpft',
52
- dataSynced: 'Alle Konstruktionsdaten wurden mit dem Bunker-Speicherknoten synchronisiert',
53
- systemOffline: 'Neuronale Cloud-Verbindung wird getrennt. Daten werden physisch versiegelt...',
54
- star: 'Wenn dieses System Ihnen Zeit spart, geben Sie dem Projekt bitte einen Stern auf GitHub ⭐',
55
- frameworkNotSupported: template => `[${template}] Framework wird derzeit nicht unterstützt. Pull Requests willkommen`,
56
- networkInstability: count => `Neuronale Cloud-Verbindung instabil. Wiederverbindung wird versucht... (Versuch ${count})`,
57
- disclaimer: 'Analyseergebnis dient nur als Referenz. Die endgültige Entscheidung muss durch die jeweiligen Einheiten getroffen werden',
58
- copyEnum: '│ Backend-Geninformationen (Enum) erkannt\n│ Empfehlung: Den folgenden Codeblock manuell in das Ressourcenmodul integrieren',
59
- strategicThreshold: (target, current) => `Physische Klonanzahl hat strategischen Schwellenwert ${target} überschritten! Aktuelle Stärke: ${current}`,
60
- initComplete: cmd => `Bunker-Bereitstellung abgeschlossen. Für schnelleren Einsatz bitte [manuell installieren]: ${cmd} zu package.json scripts hinzufügen`,
61
- isLegendary: (unlockAchievement, current, target) => unlockAchievement ? 'Glückwunsch, Kommandant. Ihr Konstruktionsprotokoll ist nun Teil des Ruhms der Menschheit' : `Aktuelle Konstruktionsanzahl: ${current}. Noch ${target - current} Einheiten bis zur Auszeichnung`,
62
- },
63
- operator6O: {
64
- call2B: 'An 2B: Bunker-weite Kanalüberwachung ist aktiviert!',
65
- }
66
- }
@@ -1,65 +0,0 @@
1
- module.exports = {
2
- nineS: {
3
- dataCamouflageComplete: 'Generación de datos Mock completada',
4
- scanningField: 'Analizando diferencias entre campos Frontend/Backend... Ejecutando puente semántico',
5
- dataCamouflage: fileName => `Atravesando el firewall del objetivo... Ejecutando protocolo de camuflaje de datos [${fileName}]`,
6
- },
7
- pod042: {
8
- startScout: 'Activando el modo [Captura Táctica por Clic Derecho]...',
9
- capturedToast: 'Inteligencia visual capturada. Iniciando transmisión...',
10
- extractingUiMetadata: 'Extrayendo metadatos de UI desde la red neuronal en la nube...',
11
- partialConstruction: time => `Informe: construcción parcial completada. Tiempo: ${time}s`,
12
- simulate: 'Solicitud real interceptada. Desplegando paquete simulado estándar: example.json',
13
- capturedPage: pageName => `Página capturada [${pageName}] -> Transmitida al directorio screenShot`,
14
- uploadVisualMetadata: 'Subiendo metadatos visuales al centro de comando para análisis semántico...',
15
- visualPartCaptured: 'Fragmento visual detectado. Ejecutando protocolo de construcción fragmentada...',
16
- constructionAborted: virus => `Construcción abortada. Virus lógico o tiempo de conexión agotado: ${virus}`,
17
- scoutReady: '[Captura por Clic Derecho Lista] Haga clic derecho en cualquier lugar de la página para capturar.',
18
- partialRecommendation: '│ Recomendación: ensamble manualmente el bloque de código anterior en el archivo objetivo',
19
- partialConstructionAborted: virus => `[Advertencia] Fallo en construcción fragmentada. Interferencia lógica detectada: ${virus}`,
20
- visualCaptured: fileName => `Captura visual completada: [${fileName}]. Asignando recursos del Bunker para construcción física...`,
21
- intercept: fileName => `El módulo [${fileName}] ya existe en la base de datos del Bunker. Protocolo omitido para evitar sobrescritura`,
22
- assemblyComplete: (fileName, time) => `Protocolo de construcción finalizado. Módulo [${fileName}] ensamblado físicamente. Tiempo: ${time}s, Sincronizando configuración de rutas Menu con Bunker...`,
23
- },
24
- pod153: {
25
- signalLinkFault: virus => `Fallo en enlace de señal: ${virus}`,
26
- signalSynchronized: count => `Sincronización completada. ${count} nodos activados`,
27
- formatError: 'Formato JSON no estándar detectado. Intentando alineación de datos originales',
28
- alignmentFailed: virus => `Fallo de alineación. Los datos de interfaz encontraron un firewall: ${virus}`,
29
- autonomousAddressing: 'Iniciando protocolo de direccionamiento autónomo multicanal [versión semántica]...',
30
- inactiveModule: fileName => `Módulo sin energía detectado [${fileName}]. Solicitando análisis de precisión a 9S`,
31
- capturedRuntimeSignal: fileName => `Señal en ejecución capturada [${fileName}]. Ejecutando alineación automática...`,
32
- reconEncryptedData: fileName => `Fuente de datos cifrada detectada [${fileName}]. Intentando alineación semántica...`,
33
- unknownModule: fileName => `No se encontró recurso del módulo [${fileName}] en Bunker. Ejecute primero la construcción visual`,
34
- bridgeProtocolComplete: (count, time) => `Protocolo puente semántico completado. ${count} diferencias corregidas. Tiempo: ${time}s`,
35
- },
36
-
37
- bunker: {
38
- exit: 'Señal del sistema perdida...',
39
- systemStandby: 'Sistema en espera...',
40
- envCopy: 'Archivo .env almacenado correctamente',
41
- argDesc: 'Especificar plantilla del framework frontend',
42
- configCopy: 'Archivo config.js almacenado correctamente',
43
- desc: 'Generador de código CRUD frontend impulsado por IA',
44
- envCheck: 'Archivo .env existente detectado. Saltando creación',
45
- star: 'Si este proyecto te ayuda, deja una estrella en GitHub ⭐',
46
- accessDenied: 'Acceso denegado: API Key inválida o límite agotado',
47
- configCheck: 'Archivo config.js existente detectado. Saltando creación',
48
- copyTemplateError: virus => `Fallo en construcción de plantilla: ${virus}`,
49
- linkSevered: 'Conexión perdida: revise la red o la resonancia de Black Box',
50
- initDesc: 'Inicializar entorno de construcción Bunker en el directorio actual',
51
- dataSynced: 'Todos los datos de construcción sincronizados con el nodo Bunker',
52
- towerConnected: port => `Comando: apunta tu proxy hacia http://localhost:${port}`,
53
- bootDesc: 'Iniciar monitorización completa: construcción coordinada Page/Part/API',
54
- towerOnline: port => `Torre de interceptación de señales activa [Frecuencia: ${port}]`,
55
- systemOffline: 'Desconectando enlace neural en la nube. Ejecutando sellado físico de datos...',
56
- disclaimer: 'Los resultados son referencias. Cada unidad debe ajustar según la situación real',
57
- networkInstability: count => `Inestabilidad de red neuronal. Reintentando conexión... (${count})`,
58
- initComplete: cmd => `Despliegue del Bunker completado. Añade ${cmd} a package.json scripts`,
59
- frameworkNotSupported: template => `Framework [${template}] no soportado. Pull Requests son bienvenidos`,
60
- isLegendary: (unlockAchievement, current, target) => unlockAchievement ? '¡Enhorabuena, Comandante! Su protocolo de construcción se ha convertido en parte de la gloria de la humanidad.' : `Construcciones totales actuales: ${current}. Faltan ${target - current} para la insignia de ${target}.`
61
- },
62
- operator6O: {
63
- call2B: 'Llamando a 2B. Monitorización global del Bunker lista!',
64
- }
65
- }
@@ -1,66 +0,0 @@
1
- module.exports = {
2
- nineS: {
3
- dataCamouflageComplete: 'Pembuatan data Mock berhasil',
4
- scanningField: 'Memindai perbedaan field Frontend/Backend... Menjalankan protokol jembatan semantik',
5
- dataCamouflage: fileName => `Menembus firewall target... Menjalankan protokol penyamaran data [${fileName}]`,
6
- },
7
- pod042: {
8
- startScout: 'Mengaktifkan mode [Jepretan Taktis Klik-Kanan]...',
9
- capturedToast: 'Intelijen visual ditangkap. Memulai transmisi...',
10
- extractingUiMetadata: 'Mengekstrak metadata UI dari jaringan saraf cloud...',
11
- partialConstruction: time => `Laporan: konstruksi parsial selesai. Waktu: ${time}s`,
12
- simulate: 'Permintaan nyata terdeteksi. Menurunkan paket simulasi standar: example.json',
13
- visualPartCaptured: 'Sampel visual terdeteksi. Menjalankan protokol konstruksi fragmen...',
14
- uploadVisualMetadata: 'Mengirim metadata visual ke pusat komando untuk analisis semantik...',
15
- partialRecommendation: '│ Rekomendasi: Pasang blok kode di atas secara manual ke file target',
16
- capturedPage: pageName => `Halaman ditangkap [${pageName}] -> Ditransmisikan ke direktori screenShot`,
17
- scoutReady: '[Mode Jepretan Klik-Kanan Siap] Klik kanan di mana saja pada halaman web untuk mengambil gambar.',
18
- constructionAborted: virus => `Konstruksi dihentikan. Virus logika atau batas waktu koneksi terdeteksi: ${virus}`,
19
- partialConstructionAborted: virus => `[Peringatan] Konstruksi fragmen gagal. Gangguan logika terdeteksi: ${virus}`,
20
- intercept: fileName => `Modul [${fileName}] sudah ada dalam database Bunker. Protokol dilewati untuk mencegah penimpaan`,
21
- visualCaptured: fileName => `Penangkapan visual selesai: [${fileName}]. Menyiapkan sumber daya Bunker untuk konstruksi fisik...`,
22
- assemblyComplete: (fileName, time) => `Protokol konstruksi selesai. Modul [${fileName}] berhasil dirakit secara fisik. Waktu: ${time}s, Sinkronisasi konfigurasi Menu dengan Bunker...`,
23
- },
24
- pod153: {
25
- signalLinkFault: virus => `Gangguan koneksi sinyal: ${virus}`,
26
- formatError: 'Format JSON tidak standar. Mencoba penyelarasan data mentah',
27
- signalSynchronized: count => `Sinkronisasi sinyal selesai. ${count} node telah diaktifkan`,
28
- alignmentFailed: virus => `Penyelarasan sinyal gagal. Data API menghadapi firewall: ${virus}`,
29
- autonomousAddressing: 'Memulai protokol pengalamatan otomatis multi-kanal [versi semantik]...',
30
- inactiveModule: fileName => `Modul tidak aktif ditemukan [${fileName}]. Meminta analisis presisi tinggi dari 9S`,
31
- capturedRuntimeSignal: fileName => `Sinyal runtime tertangkap [${fileName}]. Menjalankan penyelarasan otomatis...`,
32
- reconEncryptedData: fileName => `Sumber data terenkripsi ditemukan [${fileName}]. Mencoba protokol penyelarasan semantik...`,
33
- bridgeProtocolComplete: (count, time) => `Protokol jembatan semantik selesai. ${count} perbedaan field telah diperbaiki. Waktu: ${time}s`,
34
- unknownModule: fileName => `Resource modul [${fileName}] tidak ditemukan dalam database Bunker. Jalankan konstruksi visual terlebih dahulu`,
35
- },
36
- bunker: {
37
- exit: 'Sinyal sistem telah hilang...',
38
- envCopy: 'File .env berhasil disimpan',
39
- systemStandby: 'Sistem dalam mode standby...',
40
- configCopy: 'File config.js berhasil disimpan',
41
- desc: 'Generator kode CRUD frontend berbasis AI',
42
- argDesc: 'Menentukan template framework frontend',
43
- envCheck: 'File .env sudah tersedia. Pembuatan dilewati',
44
- configCheck: 'File config.js sudah tersedia. Pembuatan dilewati',
45
- copyTemplateError: virus => `Konstruksi template gagal: ${virus}`,
46
- linkSevered: 'Koneksi terputus: periksa jaringan atau resonansi Black Box',
47
- towerOnline: port => `Menara intersepsi sinyal aktif [Frekuensi: ${port}]`,
48
- initDesc: 'Menginisialisasi lingkungan konstruksi Bunker di direktori saat ini',
49
- accessDenied: 'Akses ditolak pusat komando: API Key tidak valid atau kuota habis',
50
- bootDesc: 'Mengaktifkan pemantauan multi-kanal: konstruksi Page/Part/API terpadu',
51
- star: 'Jika proyek ini membantu menghemat waktu Anda, berikan bintang di GitHub ⭐',
52
- systemOffline: 'Memutus koneksi neural cloud. Menjalankan penyegelan fisik data...',
53
- dataSynced: 'Seluruh data konstruksi telah disinkronkan dengan node penyimpanan Bunker',
54
- towerConnected: port => `Perintah: arahkan target proxy Anda ke http://localhost:${port}`,
55
- frameworkNotSupported: template => `Framework [${template}] belum didukung. Pull Request sangat diterima`,
56
- disclaimer: 'Hasil pencocokan hanya sebagai referensi. Setiap unit harus menyesuaikan dengan kondisi nyata',
57
- initComplete: cmd => `Deploy Bunker selesai. Tambahkan ${cmd} ke scripts package.json untuk akses lebih cepat`,
58
- networkInstability: count => `Jaringan neural cloud tidak stabil. Mencoba koneksi ulang... (percobaan ${count})`,
59
- copyEnum: '│ Kode genetik backend asli (Enum) terdeteksi\n│ Rekomendasi: pasang potongan kode berikut ke pusat resource modul',
60
- strategicThreshold: (target, current) => `Jumlah konstruksi telah melewati ambang strategis ${target}! Kekuatan saat ini: ${current}`,
61
- isLegendary: (unlockAchievement, current, target) => unlockAchievement ? 'Selamat komandan. Protokol konstruksi Anda telah menjadi bagian dari kejayaan umat manusia' : `Jumlah konstruksi saat ini: ${current}. Tersisa ${target - current} operasi menuju medali`,
62
- },
63
- operator6O: {
64
- call2B: 'Memanggil 2B. Sistem pemantauan seluruh kanal Bunker siap!',
65
- }
66
- }