smart-admin-web 10.10.1 → 10.11.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.
- package/dist/api/index.d.ts +52 -1
- package/dist/api/index.js +151 -84
- package/dist/api/index.js.map +1 -1
- package/dist/api/schema.d.ts +936 -15
- package/dist/assets/icons/ph-subset.json.js +7 -7
- package/dist/index.js +278 -274
- package/dist/lib/runtime.js +1 -1
- package/dist/locales/en-US.d.ts +143 -0
- package/dist/locales/en-US.js +145 -0
- package/dist/locales/en-US.js.map +1 -1
- package/dist/locales/zh-CN.d.ts +143 -0
- package/dist/locales/zh-CN.js +145 -0
- package/dist/locales/zh-CN.js.map +1 -1
- package/dist/router/viewRegistry.js +1 -1
- package/dist/router/viewRegistry.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/types/api.d.ts +166 -0
- package/dist/types/api.js +12 -9
- package/dist/types/api.js.map +1 -1
- package/dist/views/system/ai-model/components/ProviderCard.vue.d.ts +13 -0
- package/dist/views/system/ai-model/components/ProviderCard.vue.js +8 -0
- package/dist/views/system/ai-model/components/ProviderCard.vue.js.map +1 -0
- package/dist/views/system/ai-model/components/ProviderCard2.vue.js +230 -0
- package/dist/views/system/ai-model/components/ProviderCard2.vue.js.map +1 -0
- package/dist/views/system/ai-model/components/ProviderForm.vue.d.ts +18 -0
- package/dist/views/system/ai-model/components/ProviderForm.vue.js +8 -0
- package/dist/views/system/ai-model/components/ProviderForm.vue.js.map +1 -0
- package/dist/views/system/ai-model/components/ProviderForm2.vue.js +507 -0
- package/dist/views/system/ai-model/components/ProviderForm2.vue.js.map +1 -0
- package/dist/views/system/ai-model/index.vue.d.ts +3 -0
- package/dist/views/system/ai-model/index.vue.js +8 -0
- package/dist/views/system/ai-model/index.vue.js.map +1 -0
- package/dist/views/system/ai-model/index2.vue.js +134 -0
- package/dist/views/system/ai-model/index2.vue.js.map +1 -0
- package/dist/views/system/ai-model/presets.d.ts +14 -0
- package/dist/views/system/ai-model/presets.js +22 -0
- package/dist/views/system/ai-model/presets.js.map +1 -0
- package/dist/views/system/ai-usage/index.vue.d.ts +3 -0
- package/dist/views/system/ai-usage/index.vue.js +8 -0
- package/dist/views/system/ai-usage/index.vue.js.map +1 -0
- package/dist/views/system/ai-usage/index2.vue.js +423 -0
- package/dist/views/system/ai-usage/index2.vue.js.map +1 -0
- package/package.json +2 -2
package/dist/locales/en-US.d.ts
CHANGED
|
@@ -1086,6 +1086,129 @@ declare const _default: {
|
|
|
1086
1086
|
everySecondWarning: string;
|
|
1087
1087
|
};
|
|
1088
1088
|
};
|
|
1089
|
+
aiModel: {
|
|
1090
|
+
title: string;
|
|
1091
|
+
searchPlaceholder: string;
|
|
1092
|
+
addProvider: string;
|
|
1093
|
+
editProvider: string;
|
|
1094
|
+
deleteProvider: string;
|
|
1095
|
+
deleteConfirm: string;
|
|
1096
|
+
deleted: string;
|
|
1097
|
+
saved: string;
|
|
1098
|
+
enabled: string;
|
|
1099
|
+
disabled: string;
|
|
1100
|
+
pendingConfigTip: string;
|
|
1101
|
+
provider: {
|
|
1102
|
+
code: string;
|
|
1103
|
+
codePlaceholder: string;
|
|
1104
|
+
codeRequired: string;
|
|
1105
|
+
name: string;
|
|
1106
|
+
nameRequired: string;
|
|
1107
|
+
preset: string;
|
|
1108
|
+
presetPlaceholder: string;
|
|
1109
|
+
presetCustom: string;
|
|
1110
|
+
protocol: string;
|
|
1111
|
+
baseUrl: string;
|
|
1112
|
+
baseUrlRequired: string;
|
|
1113
|
+
authScheme: string;
|
|
1114
|
+
apiKey: string;
|
|
1115
|
+
apiKeyPlaceholder: string;
|
|
1116
|
+
apiKeyHint: string;
|
|
1117
|
+
hasApiKeyYes: string;
|
|
1118
|
+
hasApiKeyNo: string;
|
|
1119
|
+
disableConfirm: string;
|
|
1120
|
+
sort: string;
|
|
1121
|
+
remark: string;
|
|
1122
|
+
};
|
|
1123
|
+
model: {
|
|
1124
|
+
title: string;
|
|
1125
|
+
add: string;
|
|
1126
|
+
remove: string;
|
|
1127
|
+
name: string;
|
|
1128
|
+
nameRequired: string;
|
|
1129
|
+
displayName: string;
|
|
1130
|
+
displayNameRequired: string;
|
|
1131
|
+
contextWindow: string;
|
|
1132
|
+
contextWindowPlaceholder: string;
|
|
1133
|
+
inputPrice: string;
|
|
1134
|
+
outputPrice: string;
|
|
1135
|
+
pricePlaceholder: string;
|
|
1136
|
+
enabled: string;
|
|
1137
|
+
isDefault: string;
|
|
1138
|
+
setDefault: string;
|
|
1139
|
+
defaultTag: string;
|
|
1140
|
+
atLeastOne: string;
|
|
1141
|
+
duplicateName: string;
|
|
1142
|
+
noDefault: string;
|
|
1143
|
+
};
|
|
1144
|
+
test: {
|
|
1145
|
+
action: string;
|
|
1146
|
+
testing: string;
|
|
1147
|
+
ok: string;
|
|
1148
|
+
failed: string;
|
|
1149
|
+
latency: string;
|
|
1150
|
+
model: string;
|
|
1151
|
+
usage: string;
|
|
1152
|
+
inputTokens: string;
|
|
1153
|
+
outputTokens: string;
|
|
1154
|
+
error: string;
|
|
1155
|
+
};
|
|
1156
|
+
};
|
|
1157
|
+
aiUsage: {
|
|
1158
|
+
title: string;
|
|
1159
|
+
filter: {
|
|
1160
|
+
dateRange: string;
|
|
1161
|
+
today: string;
|
|
1162
|
+
last7Days: string;
|
|
1163
|
+
last30Days: string;
|
|
1164
|
+
provider: string;
|
|
1165
|
+
providerAll: string;
|
|
1166
|
+
model: string;
|
|
1167
|
+
modelAll: string;
|
|
1168
|
+
scene: string;
|
|
1169
|
+
sceneAll: string;
|
|
1170
|
+
scenePlaceholder: string;
|
|
1171
|
+
};
|
|
1172
|
+
metric: {
|
|
1173
|
+
totalTokens: string;
|
|
1174
|
+
totalCalls: string;
|
|
1175
|
+
failureCount: string;
|
|
1176
|
+
avgLatency: string;
|
|
1177
|
+
};
|
|
1178
|
+
groupBy: {
|
|
1179
|
+
label: string;
|
|
1180
|
+
provider: string;
|
|
1181
|
+
model: string;
|
|
1182
|
+
scene: string;
|
|
1183
|
+
user: string;
|
|
1184
|
+
};
|
|
1185
|
+
trend: {
|
|
1186
|
+
title: string;
|
|
1187
|
+
inputTokens: string;
|
|
1188
|
+
outputTokens: string;
|
|
1189
|
+
callCount: string;
|
|
1190
|
+
};
|
|
1191
|
+
table: {
|
|
1192
|
+
createTime: string;
|
|
1193
|
+
provider: string;
|
|
1194
|
+
model: string;
|
|
1195
|
+
scene: string;
|
|
1196
|
+
user: string;
|
|
1197
|
+
inputTokens: string;
|
|
1198
|
+
outputTokens: string;
|
|
1199
|
+
totalTokens: string;
|
|
1200
|
+
latency: string;
|
|
1201
|
+
status: string;
|
|
1202
|
+
success: string;
|
|
1203
|
+
failed: string;
|
|
1204
|
+
requestId: string;
|
|
1205
|
+
streamed: string;
|
|
1206
|
+
usageSource: string;
|
|
1207
|
+
usageSourceReported: string;
|
|
1208
|
+
usageSourceMissing: string;
|
|
1209
|
+
};
|
|
1210
|
+
share: string;
|
|
1211
|
+
};
|
|
1089
1212
|
cache: {
|
|
1090
1213
|
authTitle: string;
|
|
1091
1214
|
authDesc: string;
|
|
@@ -1298,6 +1421,26 @@ declare const _default: {
|
|
|
1298
1421
|
runLimitReached: string;
|
|
1299
1422
|
protected: string;
|
|
1300
1423
|
};
|
|
1424
|
+
ai: {
|
|
1425
|
+
providerNotFound: string;
|
|
1426
|
+
providerCodeExists: string;
|
|
1427
|
+
providerDisabled: string;
|
|
1428
|
+
apiKeyMissing: string;
|
|
1429
|
+
baseUrlBlocked: string;
|
|
1430
|
+
presetNotFound: string;
|
|
1431
|
+
presetImmutable: string;
|
|
1432
|
+
modelNotFound: string;
|
|
1433
|
+
noDefaultModel: string;
|
|
1434
|
+
modelDisabled: string;
|
|
1435
|
+
modelNameExists: string;
|
|
1436
|
+
upstreamError: string;
|
|
1437
|
+
upstreamTimeout: string;
|
|
1438
|
+
upstreamRateLimited: string;
|
|
1439
|
+
upstreamAuthFailed: string;
|
|
1440
|
+
upstreamBadResponse: string;
|
|
1441
|
+
dataProtectionKeyMissing: string;
|
|
1442
|
+
sceneRequired: string;
|
|
1443
|
+
};
|
|
1301
1444
|
recycle: {
|
|
1302
1445
|
notFound: string;
|
|
1303
1446
|
uniqueConflict: string;
|
package/dist/locales/en-US.js
CHANGED
|
@@ -1094,6 +1094,131 @@ const e = {
|
|
|
1094
1094
|
everySecondWarning: "This expression effectively fires every second — make sure that is intended"
|
|
1095
1095
|
}
|
|
1096
1096
|
},
|
|
1097
|
+
// AI model management (providers + models; error text lives in error.ai.*, don't duplicate)
|
|
1098
|
+
aiModel: {
|
|
1099
|
+
title: "AI Models",
|
|
1100
|
+
searchPlaceholder: "Search provider code / name",
|
|
1101
|
+
addProvider: "Add provider",
|
|
1102
|
+
editProvider: "Edit provider",
|
|
1103
|
+
deleteProvider: "Delete provider",
|
|
1104
|
+
deleteConfirm: 'Delete provider "{name}"? Its models are deleted too; existing usage logs are unaffected.',
|
|
1105
|
+
deleted: "Deleted",
|
|
1106
|
+
saved: "Saved",
|
|
1107
|
+
enabled: "Enabled",
|
|
1108
|
+
disabled: "Disabled",
|
|
1109
|
+
pendingConfigTip: "No API key configured yet — fill it in before saving",
|
|
1110
|
+
provider: {
|
|
1111
|
+
code: "Provider code",
|
|
1112
|
+
codePlaceholder: "Unique code, immutable after creation",
|
|
1113
|
+
codeRequired: "Please enter a provider code",
|
|
1114
|
+
name: "Provider name",
|
|
1115
|
+
nameRequired: "Please enter a provider name",
|
|
1116
|
+
preset: "Provider preset",
|
|
1117
|
+
presetPlaceholder: "Pick a preset provider to fill in protocol and base URL",
|
|
1118
|
+
presetCustom: "Custom",
|
|
1119
|
+
protocol: "Protocol",
|
|
1120
|
+
baseUrl: "Base URL",
|
|
1121
|
+
baseUrlRequired: "Please enter a base URL",
|
|
1122
|
+
authScheme: "Auth scheme",
|
|
1123
|
+
apiKey: "API key",
|
|
1124
|
+
apiKeyPlaceholder: "Leave empty to keep the existing key",
|
|
1125
|
+
apiKeyHint: "A saved key only echoes back masked, never in plain text",
|
|
1126
|
+
hasApiKeyYes: "Configured",
|
|
1127
|
+
hasApiKeyNo: "Not configured",
|
|
1128
|
+
disableConfirm: 'Disable provider "{name}"?',
|
|
1129
|
+
sort: "Sort",
|
|
1130
|
+
remark: "Remark"
|
|
1131
|
+
},
|
|
1132
|
+
model: {
|
|
1133
|
+
title: "Models",
|
|
1134
|
+
add: "Add model",
|
|
1135
|
+
remove: "Remove",
|
|
1136
|
+
name: "Model name",
|
|
1137
|
+
nameRequired: "Please enter a model name",
|
|
1138
|
+
displayName: "Display name",
|
|
1139
|
+
displayNameRequired: "Please enter a display name",
|
|
1140
|
+
contextWindow: "Context window",
|
|
1141
|
+
contextWindowPlaceholder: "e.g. 128000, leave empty for unlimited",
|
|
1142
|
+
inputPrice: "Input price",
|
|
1143
|
+
outputPrice: "Output price",
|
|
1144
|
+
pricePlaceholder: "Per million tokens, leave empty for free",
|
|
1145
|
+
enabled: "Enabled",
|
|
1146
|
+
isDefault: "Default model",
|
|
1147
|
+
setDefault: "Set as default",
|
|
1148
|
+
defaultTag: "Default",
|
|
1149
|
+
atLeastOne: "Keep at least one model",
|
|
1150
|
+
duplicateName: "Duplicate model name",
|
|
1151
|
+
noDefault: "No default model set"
|
|
1152
|
+
},
|
|
1153
|
+
test: {
|
|
1154
|
+
action: "Test connection",
|
|
1155
|
+
testing: "Testing…",
|
|
1156
|
+
ok: "Connected",
|
|
1157
|
+
failed: "Connection failed",
|
|
1158
|
+
latency: "{ms} ms",
|
|
1159
|
+
model: "Model",
|
|
1160
|
+
usage: "Usage",
|
|
1161
|
+
inputTokens: "Input tokens",
|
|
1162
|
+
outputTokens: "Output tokens",
|
|
1163
|
+
error: "Error"
|
|
1164
|
+
}
|
|
1165
|
+
},
|
|
1166
|
+
// AI usage stats (filters / summary tiles / grouping / trend / detail table)
|
|
1167
|
+
aiUsage: {
|
|
1168
|
+
title: "AI Usage",
|
|
1169
|
+
filter: {
|
|
1170
|
+
dateRange: "Date range",
|
|
1171
|
+
today: "Today",
|
|
1172
|
+
last7Days: "Last 7 days",
|
|
1173
|
+
last30Days: "Last 30 days",
|
|
1174
|
+
provider: "Provider",
|
|
1175
|
+
providerAll: "All providers",
|
|
1176
|
+
model: "Model",
|
|
1177
|
+
modelAll: "All models",
|
|
1178
|
+
scene: "Scene",
|
|
1179
|
+
sceneAll: "All scenes",
|
|
1180
|
+
scenePlaceholder: "Filter by call scene"
|
|
1181
|
+
},
|
|
1182
|
+
metric: {
|
|
1183
|
+
totalTokens: "Total tokens",
|
|
1184
|
+
totalCalls: "Total calls",
|
|
1185
|
+
failureCount: "Failures",
|
|
1186
|
+
avgLatency: "Avg. latency"
|
|
1187
|
+
},
|
|
1188
|
+
groupBy: {
|
|
1189
|
+
label: "Group by",
|
|
1190
|
+
provider: "By provider",
|
|
1191
|
+
model: "By model",
|
|
1192
|
+
scene: "By scene",
|
|
1193
|
+
user: "By user"
|
|
1194
|
+
},
|
|
1195
|
+
trend: {
|
|
1196
|
+
title: "Usage trend",
|
|
1197
|
+
inputTokens: "Input tokens",
|
|
1198
|
+
outputTokens: "Output tokens",
|
|
1199
|
+
callCount: "Calls"
|
|
1200
|
+
},
|
|
1201
|
+
table: {
|
|
1202
|
+
createTime: "Time",
|
|
1203
|
+
provider: "Provider",
|
|
1204
|
+
model: "Model",
|
|
1205
|
+
scene: "Scene",
|
|
1206
|
+
user: "User",
|
|
1207
|
+
inputTokens: "Input tokens",
|
|
1208
|
+
outputTokens: "Output tokens",
|
|
1209
|
+
totalTokens: "Total tokens",
|
|
1210
|
+
latency: "Latency",
|
|
1211
|
+
status: "Status",
|
|
1212
|
+
success: "Success",
|
|
1213
|
+
failed: "Failed",
|
|
1214
|
+
requestId: "Request Id",
|
|
1215
|
+
streamed: "Streamed",
|
|
1216
|
+
usageSource: "Usage source",
|
|
1217
|
+
usageSourceReported: "Reported upstream",
|
|
1218
|
+
usageSourceMissing: "Estimated (missing)"
|
|
1219
|
+
},
|
|
1220
|
+
share: "Share"
|
|
1221
|
+
},
|
|
1097
1222
|
cache: {
|
|
1098
1223
|
authTitle: "Permission cache",
|
|
1099
1224
|
authDesc: "Clear every user's permission-code and data-scope cache. Forces authorization to be recomputed on the next request after direct DB edits or troubleshooting.",
|
|
@@ -1299,6 +1424,26 @@ const e = {
|
|
|
1299
1424
|
runLimitReached: "Concurrent run limit reached, try again later",
|
|
1300
1425
|
protected: "Built-in job is protected from deletion"
|
|
1301
1426
|
},
|
|
1427
|
+
ai: {
|
|
1428
|
+
providerNotFound: "Provider not found",
|
|
1429
|
+
providerCodeExists: "Provider code already exists",
|
|
1430
|
+
providerDisabled: "Provider is disabled",
|
|
1431
|
+
apiKeyMissing: "API key is not configured",
|
|
1432
|
+
baseUrlBlocked: "Target URL rejected by security policy",
|
|
1433
|
+
presetNotFound: "Preset provider not found",
|
|
1434
|
+
presetImmutable: "A preset provider's protocol/preset id cannot be changed",
|
|
1435
|
+
modelNotFound: "Model not found",
|
|
1436
|
+
noDefaultModel: "No default model configured",
|
|
1437
|
+
modelDisabled: "Model is disabled",
|
|
1438
|
+
modelNameExists: "Model name already exists",
|
|
1439
|
+
upstreamError: "Upstream service call failed",
|
|
1440
|
+
upstreamTimeout: "Upstream service call timed out",
|
|
1441
|
+
upstreamRateLimited: "Upstream service rate-limited, please retry later",
|
|
1442
|
+
upstreamAuthFailed: "Upstream authentication failed, check the API key",
|
|
1443
|
+
upstreamBadResponse: "Upstream service returned an unexpected response",
|
|
1444
|
+
dataProtectionKeyMissing: "Data protection key unavailable, cannot decrypt the API key",
|
|
1445
|
+
sceneRequired: "A call scene is required"
|
|
1446
|
+
},
|
|
1302
1447
|
recycle: {
|
|
1303
1448
|
notFound: "Deleted record not found",
|
|
1304
1449
|
uniqueConflict: "Restore failed: code/account already taken by another record",
|