agentworkshop 0.7.17 → 0.7.19
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/.output/nitro.json +1 -1
- package/.output/public/_nuxt/{BJem8_v5.js → BOJaHO5V.js} +4 -4
- package/.output/public/_nuxt/B_C3GLsD.js +1 -0
- package/.output/public/_nuxt/_id_.IbmpkhH4.css +1 -0
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/7894c281-50fb-4f00-849f-32749ec2431c.json +1 -0
- package/.output/public/_nuxt/{entry.BNApuuEW.css → entry.DRUzDwmX.css} +1 -1
- package/.output/server/chunks/_/nitro.mjs +626 -571
- package/.output/server/chunks/build/{_id_-DvJZ5Qis.mjs → _id_-Bs-euJPu.mjs} +178 -131
- package/.output/server/chunks/build/_id_-Bs-euJPu.mjs.map +1 -0
- package/.output/server/chunks/routes/renderer.mjs +1 -1
- package/.output/server/chunks/virtual/entry.mjs +9 -1
- package/.output/server/chunks/virtual/precomputed.mjs +1 -1
- package/.output/server/package.json +1 -1
- package/app/pages/dcw/[id].vue +56 -6
- package/i18n/locales/en.ts +4 -0
- package/i18n/locales/zh-CN.ts +4 -0
- package/package.json +148 -148
- package/scripts/_dbg-live-line-e2e.mjs +279 -0
- package/scripts/_dbg-mqtt-publisher.mjs +17 -0
- package/scripts/_dbg-pg-tcp-probe.cjs +27 -0
- package/scripts/_dbg-recipe-stale-e2e.mjs +135 -0
- package/server/data/daqs.json +611 -86
- package/server/data/dcw-lines.json +28 -28
- package/server/data/dcw-products.json +28 -7
- package/server/data/dcw-recipes.json +109 -14
- package/server/data/dcw-rollback.json +1389 -9
- package/server/data/dcw-runs.json +625 -365
- package/server/data/dcw-writes.json +576 -0
- package/server/data/dcws.json +819 -316
- package/server/data/line-runs.json +54 -14
- package/server/services/workshop/agents/industrial-tools.ts +52 -18
- package/server/services/workshop/dcw/dcw-controller.ts +11 -1
- package/server/services/workshop/dcw/dcw-recipe.repo.ts +21 -6
- package/.output/public/_nuxt/DtM4RX5T.js +0 -1
- package/.output/public/_nuxt/_id_.pF-B9O6u.css +0 -1
- package/.output/public/_nuxt/builds/meta/6a0a88de-639e-4e7b-b7c1-7f4034e04787.json +0 -1
- package/.output/server/chunks/build/_id_-DvJZ5Qis.mjs.map +0 -1
package/app/pages/dcw/[id].vue
CHANGED
|
@@ -389,6 +389,26 @@ const visibleRecipes = computed(() =>
|
|
|
389
389
|
)
|
|
390
390
|
const productName = (id: string): string => dcw.products.find(p => p.id === id)?.name ?? id
|
|
391
391
|
|
|
392
|
+
// ---------- 配方参数节点失效态(已删除/已停用/已取消绑定;灰化 + 徽标) ----------
|
|
393
|
+
interface StaleRef { code: 'deleted' | 'disabled' | 'unbound', label: string }
|
|
394
|
+
function paramStatus(nodeId: string, lineId: string): StaleRef | null {
|
|
395
|
+
const node = dcw.nodes.find(n => n.id === nodeId)
|
|
396
|
+
if (!node) return { code: 'deleted', label: t('dcwDetail.staleDeleted') }
|
|
397
|
+
if (!node.enabled) return { code: 'disabled', label: t('dcwDetail.staleDisabled') }
|
|
398
|
+
if (lineId && node.lineId !== lineId) return { code: 'unbound', label: t('dcwDetail.staleUnbound') }
|
|
399
|
+
return null
|
|
400
|
+
}
|
|
401
|
+
function paramNodeName(nodeId: string): string {
|
|
402
|
+
return dcw.nodes.find(n => n.id === nodeId)?.name ?? nodeId
|
|
403
|
+
}
|
|
404
|
+
function daqWindowStatus(nodeId: string, lineId: string): StaleRef | null {
|
|
405
|
+
const node = daq.nodes.find(n => n.id === nodeId)
|
|
406
|
+
if (!node) return { code: 'deleted', label: t('dcwDetail.staleDeleted') }
|
|
407
|
+
if (!node.enabled) return { code: 'disabled', label: t('dcwDetail.staleDisabled') }
|
|
408
|
+
if (lineId && node.lineId !== lineId) return { code: 'unbound', label: t('dcwDetail.staleUnbound') }
|
|
409
|
+
return null
|
|
410
|
+
}
|
|
411
|
+
|
|
392
412
|
// ---------- 配方版本历史(整体修改变更记录;来源=用户/Agent/系统 + 操作者 + 回退) ----------
|
|
393
413
|
interface RecipeVersionRow {
|
|
394
414
|
version: number
|
|
@@ -493,6 +513,7 @@ const recipeOpen = ref(false)
|
|
|
493
513
|
const recipeEditing = ref<string | null>(null)
|
|
494
514
|
const recipeSaving = ref(false)
|
|
495
515
|
const recipeError = ref('')
|
|
516
|
+
const recipeStaleNote = ref('')
|
|
496
517
|
const recipeForm = reactive({
|
|
497
518
|
productId: '',
|
|
498
519
|
name: '',
|
|
@@ -520,10 +541,15 @@ function openRecipeEdit(id: string): void {
|
|
|
520
541
|
if (!r) return
|
|
521
542
|
recipeEditing.value = id
|
|
522
543
|
recipeError.value = ''
|
|
544
|
+
// 失效参数自动清理:节点已删除的参数行直接剔除(保存会被后端归一化拒绝);
|
|
545
|
+
// 停用/解绑节点参数保留可编辑,状态由 select 旁徽标标示
|
|
546
|
+
const live = r.params.filter(p => dcw.nodes.some(n => n.id === p.nodeId))
|
|
547
|
+
const dropped = r.params.length - live.length
|
|
548
|
+
recipeStaleNote.value = dropped > 0 ? t('dcwDetail.staleDropped', { p0: dropped }) : ''
|
|
523
549
|
recipeForm.productId = r.productId
|
|
524
550
|
recipeForm.name = r.name
|
|
525
551
|
recipeForm.description = r.description
|
|
526
|
-
recipeForm.params =
|
|
552
|
+
recipeForm.params = live.map(p => ({
|
|
527
553
|
nodeId: p.nodeId,
|
|
528
554
|
value: p.value,
|
|
529
555
|
min: p.min ?? '',
|
|
@@ -1428,16 +1454,25 @@ function fmtPoint(p: { value?: number, avg?: number } | undefined): string {
|
|
|
1428
1454
|
v-for="(p, i) in r.params"
|
|
1429
1455
|
:key="i"
|
|
1430
1456
|
class="param-chip"
|
|
1457
|
+
:class="{ stale: paramStatus(p.nodeId, r.lineId) }"
|
|
1458
|
+
:title="paramStatus(p.nodeId, r.lineId)?.label ?? ''"
|
|
1431
1459
|
>
|
|
1432
|
-
{{ (
|
|
1460
|
+
{{ paramNodeName(p.nodeId) }} = {{ p.value }}<span
|
|
1461
|
+
v-if="paramStatus(p.nodeId, r.lineId)"
|
|
1462
|
+
class="chip-stale-tag"
|
|
1463
|
+
>{{ paramStatus(p.nodeId, r.lineId)!.label }}</span>
|
|
1433
1464
|
</span>
|
|
1434
1465
|
<span
|
|
1435
1466
|
v-for="(w, i) in r.daqWindows"
|
|
1436
1467
|
:key="`w-${i}`"
|
|
1437
1468
|
class="param-chip daqwin"
|
|
1438
|
-
:
|
|
1469
|
+
:class="{ stale: daqWindowStatus(w.nodeId, r.lineId) }"
|
|
1470
|
+
:title="daqWindowStatus(w.nodeId, r.lineId)?.label ?? $t('dcwDetail.k1l11api013')"
|
|
1439
1471
|
>
|
|
1440
|
-
◎ {{ daqNodeCh(w.nodeId) }} ∈ [{{ w.min ?? '-∞' }}, {{ w.max ?? '+∞' }}]
|
|
1472
|
+
◎ {{ daqNodeCh(w.nodeId) }} ∈ [{{ w.min ?? '-∞' }}, {{ w.max ?? '+∞' }}]<span
|
|
1473
|
+
v-if="daqWindowStatus(w.nodeId, r.lineId)"
|
|
1474
|
+
class="chip-stale-tag"
|
|
1475
|
+
>{{ daqWindowStatus(w.nodeId, r.lineId)!.label }}</span>
|
|
1441
1476
|
</span>
|
|
1442
1477
|
</div>
|
|
1443
1478
|
<div class="recipe-actions">
|
|
@@ -1733,6 +1768,10 @@ function fmtPoint(p: { value?: number, avg?: number } | undefined): string {
|
|
|
1733
1768
|
{{ n.name }}({{ dcwTemplateRefCh(n.templateRef) }} · {{ n.min }}~{{ n.max }} {{ n.unit }})
|
|
1734
1769
|
</option>
|
|
1735
1770
|
</select>
|
|
1771
|
+
<span
|
|
1772
|
+
v-if="paramStatus(p.nodeId, lineId)"
|
|
1773
|
+
class="row-stale"
|
|
1774
|
+
>{{ paramStatus(p.nodeId, lineId)!.label }}</span>
|
|
1736
1775
|
</label>
|
|
1737
1776
|
<label class="f">
|
|
1738
1777
|
<span>{{ $t('dcwDetail.k3renp2098') }}<em>*</em></span>
|
|
@@ -1832,6 +1871,12 @@ function fmtPoint(p: { value?: number, avg?: number } | undefined): string {
|
|
|
1832
1871
|
>
|
|
1833
1872
|
{{ $t('dcwDetail.kv1de1p105') }}
|
|
1834
1873
|
</button>
|
|
1874
|
+
<p
|
|
1875
|
+
v-if="recipeStaleNote"
|
|
1876
|
+
class="m-note"
|
|
1877
|
+
>
|
|
1878
|
+
{{ recipeStaleNote }}
|
|
1879
|
+
</p>
|
|
1835
1880
|
<p
|
|
1836
1881
|
v-if="recipeError"
|
|
1837
1882
|
class="m-err"
|
|
@@ -1867,12 +1912,12 @@ function fmtPoint(p: { value?: number, avg?: number } | undefined): string {
|
|
|
1867
1912
|
style="max-width: 760px;"
|
|
1868
1913
|
>
|
|
1869
1914
|
<div class="modal-head">
|
|
1870
|
-
<h3>
|
|
1915
|
+
<h3>
|
|
1871
1916
|
{{ t('dcwDetail.histTitle') }}<span
|
|
1872
1917
|
v-if="verRecipe"
|
|
1873
1918
|
class="dim"
|
|
1874
1919
|
style="margin-left: 8px; font-size: 12px;"
|
|
1875
|
-
>{{ verRecipe.name }} · v{{ verRecipe.version }}</span>
|
|
1920
|
+
>{{ verRecipe.name }} · v{{ verRecipe.version }}</span>
|
|
1876
1921
|
</h3>
|
|
1877
1922
|
<button
|
|
1878
1923
|
class="mini-btn"
|
|
@@ -2471,6 +2516,11 @@ h1 { margin: 2px 0 4px; font-size: 30px; font-weight: 400; letter-spacing: -0.01
|
|
|
2471
2516
|
.test-result.good { color: var(--tone-success-dot); }
|
|
2472
2517
|
.test-result.bad { color: var(--tone-danger-dot); }
|
|
2473
2518
|
.m-err { margin: 8px 0 0; font-size: 12px; color: var(--tone-danger-dot); }
|
|
2519
|
+
.m-note { margin: 8px 0 0; font-size: 12px; color: var(--ink-faint); }
|
|
2520
|
+
/* 失效配方参数:灰化 + 徽标 */
|
|
2521
|
+
.param-chip.stale { color: var(--ink-faint); background: color-mix(in srgb, var(--ink) 5%, transparent); border-color: var(--divider-hair); text-decoration: line-through; text-decoration-color: color-mix(in srgb, var(--ink-faint) 60%, transparent); }
|
|
2522
|
+
.chip-stale-tag { margin-left: 5px; padding: 0 5px; font-size: 9.5px; font-style: normal; color: var(--tone-danger-dot); background: color-mix(in srgb, var(--tone-danger-dot) 8%, transparent); border: 1px solid color-mix(in srgb, var(--tone-danger-dot) 30%, transparent); border-radius: var(--radius-chip); text-decoration: none; }
|
|
2523
|
+
.row-stale { flex: none; padding: 1px 7px; font-size: 10.5px; color: var(--tone-danger-dot); border: 1px solid color-mix(in srgb, var(--tone-danger-dot) 30%, transparent); border-radius: var(--radius-chip); }
|
|
2474
2524
|
.m-actions { display: flex; gap: 10px; justify-content: flex-end; margin-top: 16px; }
|
|
2475
2525
|
.aw-pill.outline { color: var(--ink); background: var(--paper-raised); border-color: var(--line-strong); }
|
|
2476
2526
|
.err { margin-top: 14px; font-size: 13px; color: var(--tone-danger-dot); }
|
package/i18n/locales/en.ts
CHANGED
|
@@ -840,6 +840,10 @@ export default {
|
|
|
840
840
|
k1bphrb3048: 'Delete failed',
|
|
841
841
|
},
|
|
842
842
|
dcwDetail: {
|
|
843
|
+
staleDeleted: 'deleted',
|
|
844
|
+
staleDisabled: 'disabled',
|
|
845
|
+
staleUnbound: 'unbound',
|
|
846
|
+
staleDropped: 'Removed {p0} stale param(s) (node deleted); re-add with a live node if needed',
|
|
843
847
|
histBtn: 'History',
|
|
844
848
|
histTitle: 'Recipe Version History',
|
|
845
849
|
histLoading: 'Loading…',
|
package/i18n/locales/zh-CN.ts
CHANGED
|
@@ -839,6 +839,10 @@ export default {
|
|
|
839
839
|
k1bphrb3048: '删除失败',
|
|
840
840
|
},
|
|
841
841
|
dcwDetail: {
|
|
842
|
+
staleDeleted: '已删除',
|
|
843
|
+
staleDisabled: '已停用',
|
|
844
|
+
staleUnbound: '已取消绑定',
|
|
845
|
+
staleDropped: '已自动移除 {p0} 条失效参数(节点已删除);如需恢复请重新添加有效节点',
|
|
842
846
|
histBtn: '版本历史',
|
|
843
847
|
histTitle: '配方版本历史',
|
|
844
848
|
histLoading: '加载中…',
|
package/package.json
CHANGED
|
@@ -1,148 +1,148 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "agentworkshop",
|
|
3
|
-
"version": "0.7.
|
|
4
|
-
"type": "module",
|
|
5
|
-
"description": "AgentWorkShop 软件开发系统 - 基于 Nuxt 4 的配置驱动运行范式",
|
|
6
|
-
"license": "PolyForm-Noncommercial-1.0.0",
|
|
7
|
-
"exports": {
|
|
8
|
-
".": {
|
|
9
|
-
"types": "./sdk/index.d.mts",
|
|
10
|
-
"default": "./sdk/index.mjs"
|
|
11
|
-
},
|
|
12
|
-
"./sdk": {
|
|
13
|
-
"types": "./sdk/index.d.mts",
|
|
14
|
-
"default": "./sdk/index.mjs"
|
|
15
|
-
},
|
|
16
|
-
"./sdk/client": {
|
|
17
|
-
"types": "./sdk/client.d.mts",
|
|
18
|
-
"default": "./sdk/client.mjs"
|
|
19
|
-
},
|
|
20
|
-
"./package.json": "./package.json"
|
|
21
|
-
},
|
|
22
|
-
"bin": {
|
|
23
|
-
"aw": "bin/aw.mjs",
|
|
24
|
-
"agentworkshop": "bin/aw.mjs"
|
|
25
|
-
},
|
|
26
|
-
"files": [
|
|
27
|
-
".output",
|
|
28
|
-
"bin",
|
|
29
|
-
"cli",
|
|
30
|
-
"sdk",
|
|
31
|
-
"app",
|
|
32
|
-
"server",
|
|
33
|
-
"shared",
|
|
34
|
-
"i18n",
|
|
35
|
-
"public",
|
|
36
|
-
"scripts",
|
|
37
|
-
".AgentWorkShop/prompts",
|
|
38
|
-
"config.yml",
|
|
39
|
-
"nuxt.config.ts",
|
|
40
|
-
"tsconfig.json",
|
|
41
|
-
"uno.config.ts",
|
|
42
|
-
"docker-compose.yml",
|
|
43
|
-
".env.example",
|
|
44
|
-
"README-zh.md",
|
|
45
|
-
"docs/cli.md",
|
|
46
|
-
"docs/plugins.md",
|
|
47
|
-
"docs/sdk.md",
|
|
48
|
-
"docs/tui.md",
|
|
49
|
-
"tui"
|
|
50
|
-
],
|
|
51
|
-
"packageManager": "pnpm@11.9.0",
|
|
52
|
-
"engines": {
|
|
53
|
-
"node": ">=23.4.0"
|
|
54
|
-
},
|
|
55
|
-
"scripts": {
|
|
56
|
-
"dev": "node bin/aw.mjs dev",
|
|
57
|
-
"build": "node bin/aw.mjs build",
|
|
58
|
-
"start": "node bin/aw.mjs start",
|
|
59
|
-
"generate": "nuxt generate",
|
|
60
|
-
"preview": "node bin/aw.mjs start",
|
|
61
|
-
"cli": "node bin/aw.mjs",
|
|
62
|
-
"tui": "node tui/aw-tui.mjs",
|
|
63
|
-
"postinstall": "node scripts/home-bootstrap.mjs",
|
|
64
|
-
"prepublishOnly": "node bin/aw.mjs build",
|
|
65
|
-
"lint": "eslint .",
|
|
66
|
-
"lint:fix": "eslint . --fix",
|
|
67
|
-
"typecheck": "nuxt typecheck",
|
|
68
|
-
"prepare": "husky",
|
|
69
|
-
"game:test": "tsx scripts/test-agent-brain.ts && tsx scripts/test-game-session.ts",
|
|
70
|
-
"test:api-live": "node scripts/api-live-e2e.mjs",
|
|
71
|
-
"game:verify": "node scripts/verify-game.mjs",
|
|
72
|
-
"game:build-assets": "node scripts/build-player-sheet.mjs",
|
|
73
|
-
"game:build-wuwa": "node scripts/build-wuwa-assets.mjs",
|
|
74
|
-
"game:build-models": "node scripts/build-character-models.mjs",
|
|
75
|
-
"game:build-world": "node scripts/build-world-map.mjs",
|
|
76
|
-
"game:build-model3d": "node scripts/build-model-3d.mjs"
|
|
77
|
-
},
|
|
78
|
-
"lint-staged": {
|
|
79
|
-
"*.{js,mjs,cjs,ts,vue}": "eslint --fix"
|
|
80
|
-
},
|
|
81
|
-
"dependencies": {
|
|
82
|
-
"@ant-design-vue/nuxt": "^1.4.6",
|
|
83
|
-
"@ant-design/icons-vue": "^7.0.1",
|
|
84
|
-
"@earendil-works/pi-tui": "^0.84.4",
|
|
85
|
-
"@fontsource-variable/fraunces": "^5.3.0",
|
|
86
|
-
"@fontsource-variable/geist": "^5.3.0",
|
|
87
|
-
"@fontsource-variable/geist-mono": "^5.3.0",
|
|
88
|
-
"@fontsource-variable/inter": "^5.3.0",
|
|
89
|
-
"@fontsource/eb-garamond": "^5.3.0",
|
|
90
|
-
"@fontsource/ibm-plex-mono": "^5.3.0",
|
|
91
|
-
"@iconify-json/tabler": "^1.2.0",
|
|
92
|
-
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
93
|
-
"@nuxtjs/i18n": "^9.0.0",
|
|
94
|
-
"@pinia/nuxt": "^0.11.0",
|
|
95
|
-
"@unocss/nuxt": "^66.0.0",
|
|
96
|
-
"@unocss/preset-attributify": "^66.0.0",
|
|
97
|
-
"@unocss/preset-icons": "^66.7.5",
|
|
98
|
-
"@unocss/preset-typography": "^66.0.0",
|
|
99
|
-
"@vueuse/core": "^13.0.0",
|
|
100
|
-
"@vueuse/nuxt": "^13.0.0",
|
|
101
|
-
"@xterm/addon-fit": "^0.11.0",
|
|
102
|
-
"@xterm/xterm": "^6.0.0",
|
|
103
|
-
"ant-design-vue": "^4.2.6",
|
|
104
|
-
"axios": "^1.7.9",
|
|
105
|
-
"echarts": "^5.6.0",
|
|
106
|
-
"h3": "2.0.1-rc.26",
|
|
107
|
-
"js-yaml": "^4.1.0",
|
|
108
|
-
"minio": "^8.0.7",
|
|
109
|
-
"modbus-serial": "^8.0.25",
|
|
110
|
-
"mqtt": "^5.15.2",
|
|
111
|
-
"node-opcua": "^2.178.0",
|
|
112
|
-
"nuxt": "^4.0.0",
|
|
113
|
-
"nuxt-auth-utils": "^0.5.0",
|
|
114
|
-
"pg": "^8.23.0",
|
|
115
|
-
"phaser": "^4.0.0",
|
|
116
|
-
"pinia": "^3.0.0",
|
|
117
|
-
"pinia-plugin-persistedstate": "^4.2.0",
|
|
118
|
-
"sqlite-vec": "^0.1.9",
|
|
119
|
-
"three": "^0.185.1",
|
|
120
|
-
"unocss": "^66.0.0",
|
|
121
|
-
"unplugin-icons": "^22.0.0",
|
|
122
|
-
"vue": "^3.5.13",
|
|
123
|
-
"vue-echarts": "^7.0.3",
|
|
124
|
-
"vue-router": "^4.5.0",
|
|
125
|
-
"zod": "^3.24.1"
|
|
126
|
-
},
|
|
127
|
-
"devDependencies": {
|
|
128
|
-
"@commitlint/cli": "^19.6.1",
|
|
129
|
-
"@commitlint/config-conventional": "^19.6.0",
|
|
130
|
-
"@nuxt/eslint": "^1.0.0",
|
|
131
|
-
"@types/js-yaml": "^4.0.9",
|
|
132
|
-
"@types/node": "^26.2.0",
|
|
133
|
-
"@types/three": "^0.185.4",
|
|
134
|
-
"eslint": "^9.17.0",
|
|
135
|
-
"husky": "^9.1.7",
|
|
136
|
-
"lint-staged": "^15.3.0",
|
|
137
|
-
"pngjs": "^7.0.0",
|
|
138
|
-
"puppeteer-core": "^25.5.0",
|
|
139
|
-
"tsx": "^4.23.12",
|
|
140
|
-
"typescript": "^5.7.3",
|
|
141
|
-
"vue-tsc": "^3.3.10"
|
|
142
|
-
},
|
|
143
|
-
"pnpm": {
|
|
144
|
-
"ignoredBuiltDependencies": [
|
|
145
|
-
"@serialport/bindings-cpp"
|
|
146
|
-
]
|
|
147
|
-
}
|
|
148
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "agentworkshop",
|
|
3
|
+
"version": "0.7.19",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "AgentWorkShop 软件开发系统 - 基于 Nuxt 4 的配置驱动运行范式",
|
|
6
|
+
"license": "PolyForm-Noncommercial-1.0.0",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"types": "./sdk/index.d.mts",
|
|
10
|
+
"default": "./sdk/index.mjs"
|
|
11
|
+
},
|
|
12
|
+
"./sdk": {
|
|
13
|
+
"types": "./sdk/index.d.mts",
|
|
14
|
+
"default": "./sdk/index.mjs"
|
|
15
|
+
},
|
|
16
|
+
"./sdk/client": {
|
|
17
|
+
"types": "./sdk/client.d.mts",
|
|
18
|
+
"default": "./sdk/client.mjs"
|
|
19
|
+
},
|
|
20
|
+
"./package.json": "./package.json"
|
|
21
|
+
},
|
|
22
|
+
"bin": {
|
|
23
|
+
"aw": "bin/aw.mjs",
|
|
24
|
+
"agentworkshop": "bin/aw.mjs"
|
|
25
|
+
},
|
|
26
|
+
"files": [
|
|
27
|
+
".output",
|
|
28
|
+
"bin",
|
|
29
|
+
"cli",
|
|
30
|
+
"sdk",
|
|
31
|
+
"app",
|
|
32
|
+
"server",
|
|
33
|
+
"shared",
|
|
34
|
+
"i18n",
|
|
35
|
+
"public",
|
|
36
|
+
"scripts",
|
|
37
|
+
".AgentWorkShop/prompts",
|
|
38
|
+
"config.yml",
|
|
39
|
+
"nuxt.config.ts",
|
|
40
|
+
"tsconfig.json",
|
|
41
|
+
"uno.config.ts",
|
|
42
|
+
"docker-compose.yml",
|
|
43
|
+
".env.example",
|
|
44
|
+
"README-zh.md",
|
|
45
|
+
"docs/cli.md",
|
|
46
|
+
"docs/plugins.md",
|
|
47
|
+
"docs/sdk.md",
|
|
48
|
+
"docs/tui.md",
|
|
49
|
+
"tui"
|
|
50
|
+
],
|
|
51
|
+
"packageManager": "pnpm@11.9.0",
|
|
52
|
+
"engines": {
|
|
53
|
+
"node": ">=23.4.0"
|
|
54
|
+
},
|
|
55
|
+
"scripts": {
|
|
56
|
+
"dev": "node bin/aw.mjs dev",
|
|
57
|
+
"build": "node bin/aw.mjs build",
|
|
58
|
+
"start": "node bin/aw.mjs start",
|
|
59
|
+
"generate": "nuxt generate",
|
|
60
|
+
"preview": "node bin/aw.mjs start",
|
|
61
|
+
"cli": "node bin/aw.mjs",
|
|
62
|
+
"tui": "node tui/aw-tui.mjs",
|
|
63
|
+
"postinstall": "node scripts/home-bootstrap.mjs",
|
|
64
|
+
"prepublishOnly": "node bin/aw.mjs build",
|
|
65
|
+
"lint": "eslint .",
|
|
66
|
+
"lint:fix": "eslint . --fix",
|
|
67
|
+
"typecheck": "nuxt typecheck",
|
|
68
|
+
"prepare": "husky",
|
|
69
|
+
"game:test": "tsx scripts/test-agent-brain.ts && tsx scripts/test-game-session.ts",
|
|
70
|
+
"test:api-live": "node scripts/api-live-e2e.mjs",
|
|
71
|
+
"game:verify": "node scripts/verify-game.mjs",
|
|
72
|
+
"game:build-assets": "node scripts/build-player-sheet.mjs",
|
|
73
|
+
"game:build-wuwa": "node scripts/build-wuwa-assets.mjs",
|
|
74
|
+
"game:build-models": "node scripts/build-character-models.mjs",
|
|
75
|
+
"game:build-world": "node scripts/build-world-map.mjs",
|
|
76
|
+
"game:build-model3d": "node scripts/build-model-3d.mjs"
|
|
77
|
+
},
|
|
78
|
+
"lint-staged": {
|
|
79
|
+
"*.{js,mjs,cjs,ts,vue}": "eslint --fix"
|
|
80
|
+
},
|
|
81
|
+
"dependencies": {
|
|
82
|
+
"@ant-design-vue/nuxt": "^1.4.6",
|
|
83
|
+
"@ant-design/icons-vue": "^7.0.1",
|
|
84
|
+
"@earendil-works/pi-tui": "^0.84.4",
|
|
85
|
+
"@fontsource-variable/fraunces": "^5.3.0",
|
|
86
|
+
"@fontsource-variable/geist": "^5.3.0",
|
|
87
|
+
"@fontsource-variable/geist-mono": "^5.3.0",
|
|
88
|
+
"@fontsource-variable/inter": "^5.3.0",
|
|
89
|
+
"@fontsource/eb-garamond": "^5.3.0",
|
|
90
|
+
"@fontsource/ibm-plex-mono": "^5.3.0",
|
|
91
|
+
"@iconify-json/tabler": "^1.2.0",
|
|
92
|
+
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
93
|
+
"@nuxtjs/i18n": "^9.0.0",
|
|
94
|
+
"@pinia/nuxt": "^0.11.0",
|
|
95
|
+
"@unocss/nuxt": "^66.0.0",
|
|
96
|
+
"@unocss/preset-attributify": "^66.0.0",
|
|
97
|
+
"@unocss/preset-icons": "^66.7.5",
|
|
98
|
+
"@unocss/preset-typography": "^66.0.0",
|
|
99
|
+
"@vueuse/core": "^13.0.0",
|
|
100
|
+
"@vueuse/nuxt": "^13.0.0",
|
|
101
|
+
"@xterm/addon-fit": "^0.11.0",
|
|
102
|
+
"@xterm/xterm": "^6.0.0",
|
|
103
|
+
"ant-design-vue": "^4.2.6",
|
|
104
|
+
"axios": "^1.7.9",
|
|
105
|
+
"echarts": "^5.6.0",
|
|
106
|
+
"h3": "2.0.1-rc.26",
|
|
107
|
+
"js-yaml": "^4.1.0",
|
|
108
|
+
"minio": "^8.0.7",
|
|
109
|
+
"modbus-serial": "^8.0.25",
|
|
110
|
+
"mqtt": "^5.15.2",
|
|
111
|
+
"node-opcua": "^2.178.0",
|
|
112
|
+
"nuxt": "^4.0.0",
|
|
113
|
+
"nuxt-auth-utils": "^0.5.0",
|
|
114
|
+
"pg": "^8.23.0",
|
|
115
|
+
"phaser": "^4.0.0",
|
|
116
|
+
"pinia": "^3.0.0",
|
|
117
|
+
"pinia-plugin-persistedstate": "^4.2.0",
|
|
118
|
+
"sqlite-vec": "^0.1.9",
|
|
119
|
+
"three": "^0.185.1",
|
|
120
|
+
"unocss": "^66.0.0",
|
|
121
|
+
"unplugin-icons": "^22.0.0",
|
|
122
|
+
"vue": "^3.5.13",
|
|
123
|
+
"vue-echarts": "^7.0.3",
|
|
124
|
+
"vue-router": "^4.5.0",
|
|
125
|
+
"zod": "^3.24.1"
|
|
126
|
+
},
|
|
127
|
+
"devDependencies": {
|
|
128
|
+
"@commitlint/cli": "^19.6.1",
|
|
129
|
+
"@commitlint/config-conventional": "^19.6.0",
|
|
130
|
+
"@nuxt/eslint": "^1.0.0",
|
|
131
|
+
"@types/js-yaml": "^4.0.9",
|
|
132
|
+
"@types/node": "^26.2.0",
|
|
133
|
+
"@types/three": "^0.185.4",
|
|
134
|
+
"eslint": "^9.17.0",
|
|
135
|
+
"husky": "^9.1.7",
|
|
136
|
+
"lint-staged": "^15.3.0",
|
|
137
|
+
"pngjs": "^7.0.0",
|
|
138
|
+
"puppeteer-core": "^25.5.0",
|
|
139
|
+
"tsx": "^4.23.12",
|
|
140
|
+
"typescript": "^5.7.3",
|
|
141
|
+
"vue-tsc": "^3.3.10"
|
|
142
|
+
},
|
|
143
|
+
"pnpm": {
|
|
144
|
+
"ignoredBuiltDependencies": [
|
|
145
|
+
"@serialport/bindings-cpp"
|
|
146
|
+
]
|
|
147
|
+
}
|
|
148
|
+
}
|