@ftai/dsh-plugin-acn 0.1.0 → 0.1.1
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/CHANGELOG.md +12 -1
- package/README.md +31 -4
- package/README_EN.md +31 -4
- package/docs/architecture.md +1 -0
- package/docs/assets/acn-claim-reuse.png +0 -0
- package/docs/config.md +19 -9
- package/docs/development.md +4 -4
- package/docs/dsh-compat.md +2 -2
- package/docs/user_guide.md +3 -1
- package/lib/{activities-LRoCwpzw.js → activities-B8U-iW4-.js} +84 -4
- package/lib/{checkpoint-Bmt8q2vB.js → checkpoint-CPFPOxBM.js} +2 -2
- package/lib/{checkpoint-RgcdqifN.js → checkpoint-c7aI4D-X.js} +1 -1
- package/lib/client.js +220 -223
- package/lib/{deliver-BuYQaPRW.js → deliver-C-dmhkfm.js} +1 -1
- package/lib/{delivery-status-D5m3178s.js → delivery-status-M7-Rwoyj.js} +4 -2
- package/lib/{dream-agent-DBszTHXY.js → dream-agent-BVqxbKFc.js} +3 -3
- package/lib/dream.js +3 -3
- package/lib/{effects-DJ4Xa7Tx.js → effects-DX1iy6FM.js} +2 -2
- package/lib/{evidence-store-DLFvSuNa.js → evidence-store-DW7kj20i.js} +1 -1
- package/lib/{formation-replay-CEOy5FkI.js → formation-replay-Bf4TSBiz.js} +1 -1
- package/lib/formation.js +5 -5
- package/lib/history-DPMHX3ZE.js +214 -0
- package/lib/inbox.js +2 -2
- package/lib/index.js +43 -47
- package/lib/{paths-CDYV5UH9.js → paths-B7NI9Ano.js} +6 -3
- package/lib/plugins/commands.js +3 -3
- package/lib/plugins/dream.js +4 -4
- package/lib/plugins/formation.js +3 -3
- package/lib/plugins/inbox.js +3 -3
- package/lib/plugins/knowledge.js +21 -23
- package/lib/plugins/prompt.js +1 -1
- package/lib/plugins/tools.js +1 -1
- package/lib/{prepare-DwHZudbA.js → prepare-CGXwBEcu.js} +2 -2
- package/lib/{scheduler-MaUEbXr3.js → scheduler-BfJSY1eq.js} +1 -1
- package/lib/{service-C_i3BzdP.js → service-BPwaZzFF.js} +3 -3
- package/lib/{service-B7AI5jds.js → service-BQaszW_v.js} +1 -1
- package/lib/{service-BcHV5mc7.js → service-BhniAHLo.js} +5 -5
- package/lib/{service-CNjqHCBR.js → service-C2lXoygJ.js} +4 -4
- package/lib/session-binding-zCSuizHs.js +342 -0
- package/lib/store.js +1 -1
- package/lib/{structured-lyQCK-Zk.js → structured-C9byFuzm.js} +1 -0
- package/lib/team.js +1 -1
- package/lib/types/activities.d.ts +2 -0
- package/lib/types/client/ActivityCard.d.ts +14 -0
- package/lib/types/client/ActivityDetails.d.ts +1 -1
- package/lib/types/client/SourceSessionLink.d.ts +2 -1
- package/lib/types/client/TeamSettingsPage.d.ts +0 -2
- package/lib/types/client/interaction-styles.d.ts +1 -1
- package/lib/types/client/locales.d.ts +1 -1
- package/lib/types/config.d.ts +1 -12
- package/lib/types/configuration.d.ts +0 -24
- package/lib/types/credentials.d.ts +0 -6
- package/lib/types/dsh-adapter/session-binding.d.ts +1 -1
- package/lib/types/interaction.d.ts +6 -15
- package/lib/types/store/delivery-status.d.ts +1 -0
- package/lib/types/store/history.d.ts +65 -0
- package/lib/types/store/library-directory.d.ts +4 -0
- package/lib/types/store/paths.d.ts +1 -1
- package/lib/upload.js +2 -2
- package/lib/{team-credentials-C9xHrPIi.js → upstreams-DEi-56tD.js} +164 -248
- package/lib/{worker-BBTYP2RE.js → worker-HMGzJFWd.js} +1 -1
- package/package.json +1 -1
- package/lib/presentation-BlLjgDjP.js +0 -47
- package/lib/session-binding-BQrOGhZI.js +0 -151
package/lib/client.js
CHANGED
|
@@ -13781,7 +13781,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
13781
13781
|
const AgentIdSchema = string$1().regex(/^[a-z0-9_-]+$/).brand();
|
|
13782
13782
|
const ClaimIdSchema = string$1().regex(/^claim_[0-9a-f]{8}$/).brand();
|
|
13783
13783
|
const TraceIdSchema = string$1().regex(/^trace_[0-9a-f]{8}$/).brand();
|
|
13784
|
-
string$1().regex(/^dispute_[0-9a-f]{8}$/).brand();
|
|
13784
|
+
const DisputeIdSchema = string$1().regex(/^dispute_[0-9a-f]{8}$/).brand();
|
|
13785
13785
|
const PolicyIdSchema = string$1().regex(/^policy_[0-9a-f]{8}$/).brand();
|
|
13786
13786
|
string$1().regex(/^inbox_[0-9a-f]{8}$/).brand();
|
|
13787
13787
|
string$1().regex(/^(resolution|arbitration)_[0-9a-f]{8}$/).brand();
|
|
@@ -13815,24 +13815,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
13815
13815
|
routerEndpoint: endpoint.default(""),
|
|
13816
13816
|
maintainerEndpoint: endpoint.default(""),
|
|
13817
13817
|
keyEnv: string$1().regex(/^(?:[A-Za-z_][A-Za-z0-9_]*)?$/).default(""),
|
|
13818
|
-
timeoutMs: positive().default(15e3)
|
|
13819
|
-
legacyStorage: _enum([
|
|
13820
|
-
"base",
|
|
13821
|
-
"personal",
|
|
13822
|
-
"connection"
|
|
13823
|
-
]).optional(),
|
|
13824
|
-
legacyKey: string$1().regex(/^[a-zA-Z0-9_-]{1,80}$/).optional()
|
|
13818
|
+
timeoutMs: positive().default(15e3)
|
|
13825
13819
|
}).superRefine((value, ctx) => {
|
|
13826
13820
|
if (Boolean(value.routerEndpoint) !== Boolean(value.maintainerEndpoint)) ctx.addIssue({
|
|
13827
13821
|
code: "custom",
|
|
13828
13822
|
path: ["routerEndpoint"],
|
|
13829
13823
|
message: "Configure both team endpoints or neither."
|
|
13830
13824
|
});
|
|
13831
|
-
if (value.legacyStorage === "connection" !== (value.legacyKey !== void 0)) ctx.addIssue({
|
|
13832
|
-
code: "custom",
|
|
13833
|
-
path: ["legacyStorage"],
|
|
13834
|
-
message: "Invalid legacy storage mapping."
|
|
13835
|
-
});
|
|
13836
13825
|
});
|
|
13837
13826
|
const ConnectionSchema = strictObject({
|
|
13838
13827
|
id: string$1().regex(/^[a-zA-Z0-9_-]{1,80}$/).refine((id) => !["personal", "legacy"].includes(id)),
|
|
@@ -13962,23 +13951,15 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
13962
13951
|
function upstreamsOf(config) {
|
|
13963
13952
|
if (config.upstreams !== void 0) return config.upstreams;
|
|
13964
13953
|
const items = {};
|
|
13965
|
-
if (config.agentId !== "") {
|
|
13966
|
-
|
|
13967
|
-
|
|
13968
|
-
|
|
13969
|
-
|
|
13970
|
-
|
|
13971
|
-
|
|
13972
|
-
|
|
13973
|
-
|
|
13974
|
-
enabled: config.legacyEnabled,
|
|
13975
|
-
routerEndpoint: config.team.routerEndpoint,
|
|
13976
|
-
maintainerEndpoint: config.team.maintainerEndpoint,
|
|
13977
|
-
keyEnv: config.team.keyEnv,
|
|
13978
|
-
timeoutMs: config.team.timeoutMs,
|
|
13979
|
-
legacyStorage: "base"
|
|
13980
|
-
});
|
|
13981
|
-
}
|
|
13954
|
+
if (config.agentId !== "") items["personal"] = UpstreamSchema.parse({
|
|
13955
|
+
name: config.team.routerEndpoint ? "团队" : "个人知识",
|
|
13956
|
+
agentId: config.agentId,
|
|
13957
|
+
enabled: config.legacyEnabled,
|
|
13958
|
+
routerEndpoint: config.team.routerEndpoint,
|
|
13959
|
+
maintainerEndpoint: config.team.maintainerEndpoint,
|
|
13960
|
+
keyEnv: config.team.keyEnv,
|
|
13961
|
+
timeoutMs: config.team.timeoutMs
|
|
13962
|
+
});
|
|
13982
13963
|
for (const connection of config.connections) {
|
|
13983
13964
|
const { id, ...value } = connection;
|
|
13984
13965
|
let key = id.toLowerCase();
|
|
@@ -13988,11 +13969,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
13988
13969
|
"logs",
|
|
13989
13970
|
"tmp"
|
|
13990
13971
|
].includes(key)) key = `${key}_copy`;
|
|
13991
|
-
items[key] = UpstreamSchema.parse(
|
|
13992
|
-
...value,
|
|
13993
|
-
legacyStorage: "connection",
|
|
13994
|
-
legacyKey: id
|
|
13995
|
-
});
|
|
13972
|
+
items[key] = UpstreamSchema.parse(value);
|
|
13996
13973
|
}
|
|
13997
13974
|
return items;
|
|
13998
13975
|
}
|
|
@@ -14309,6 +14286,11 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
14309
14286
|
claimIds: array(ClaimIdSchema),
|
|
14310
14287
|
reason: string$1()
|
|
14311
14288
|
})).optional(),
|
|
14289
|
+
entityIds: array(union([
|
|
14290
|
+
ClaimIdSchema,
|
|
14291
|
+
DisputeIdSchema,
|
|
14292
|
+
TraceIdSchema
|
|
14293
|
+
])).optional(),
|
|
14312
14294
|
entityId: string$1().optional(),
|
|
14313
14295
|
retryable: boolean$1().optional(),
|
|
14314
14296
|
acknowledged: boolean$1().optional(),
|
|
@@ -14333,7 +14315,11 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
14333
14315
|
pendingClaims: number$1(),
|
|
14334
14316
|
pendingDisputes: number$1()
|
|
14335
14317
|
});
|
|
14336
|
-
const ReferenceIdSchema = union([
|
|
14318
|
+
const ReferenceIdSchema = union([
|
|
14319
|
+
ClaimIdSchema,
|
|
14320
|
+
DisputeIdSchema,
|
|
14321
|
+
TraceIdSchema
|
|
14322
|
+
]);
|
|
14337
14323
|
const KnowledgeReferenceSchema = object({
|
|
14338
14324
|
key: string$1(),
|
|
14339
14325
|
id: ReferenceIdSchema,
|
|
@@ -14892,6 +14878,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
14892
14878
|
routerEndpoint: c("Router 地址:以 http:// 或 https:// 开头,不含用户名、密码、查询参数或片段;两项团队地址需同时填写或留空。", "Router URL: use http:// or https:// without username, password, query or fragment; set both team URLs or leave both empty."),
|
|
14893
14879
|
maintainerEndpoint: c("Maintainer 地址:以 http:// 或 https:// 开头,不含用户名、密码、查询参数或片段;两项团队地址需同时填写或留空。", "Maintainer URL: use http:// or https:// without username, password, query or fragment; set both team URLs or leave both empty."),
|
|
14894
14880
|
home: c("知识目录:请填写非空的本机目录路径。", "Knowledge directory: enter a nonempty host directory path."),
|
|
14881
|
+
libraryIndex: c("知识目录:无法读取有效的工作配置索引,请选择包含 settings.json 和 upstreams 的账号目录。原配置未改动。", "Knowledge directory: the configuration index could not be read. Select the account directory containing settings.json and upstreams. The previous configuration is retained."),
|
|
14895
14882
|
upstream: c("默认工作配置:请选择已启用的配置。", "Default work configuration: choose an enabled configuration.")
|
|
14896
14883
|
}[field] ?? `${c("请检查配置字段", "Check configuration field")}: ${path || c("工作配置", "Work configuration")}`;
|
|
14897
14884
|
}
|
|
@@ -15493,10 +15480,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
15493
15480
|
keyEnv: editor.removeSecret || !editor.team && editor.credentialIdentity !== editor.value.agentId ? "" : editor.team && editor.secret !== "" ? reference : editor.value.keyEnv.trim()
|
|
15494
15481
|
});
|
|
15495
15482
|
let key = editor.key.trim() || editor.value.agentId;
|
|
15496
|
-
if (!editor.existing && editor.key.trim() === "")
|
|
15497
|
-
let suffix = 2;
|
|
15498
|
-
while (profiles[key] !== void 0) key = `${editor.value.agentId}-${suffix++}`;
|
|
15499
|
-
}
|
|
15483
|
+
if (!editor.existing && editor.key.trim() === "") key = crypto.randomUUID();
|
|
15500
15484
|
if (!parsed.success) {
|
|
15501
15485
|
feedback([...new Set(parsed.error.issues.map((issue) => configurationFieldError(String(issue.path[0] ?? ""), c)))].join("\n"), true);
|
|
15502
15486
|
return;
|
|
@@ -15920,7 +15904,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
15920
15904
|
style: inputStyle,
|
|
15921
15905
|
disabled: disabled || editor.existing,
|
|
15922
15906
|
value: editor.key,
|
|
15923
|
-
placeholder:
|
|
15907
|
+
placeholder: c("留空自动生成", "Leave empty to generate"),
|
|
15924
15908
|
onChange: (event) => {
|
|
15925
15909
|
setEditor({
|
|
15926
15910
|
...editor,
|
|
@@ -15929,7 +15913,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
15929
15913
|
}
|
|
15930
15914
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
15931
15915
|
style: muted,
|
|
15932
|
-
children: c("
|
|
15916
|
+
children: c("留空将自动生成独立标识。创建后固定,显示名称仍可修改。", "An independent key is generated when empty. It is fixed after creation; the display name can be changed.")
|
|
15933
15917
|
})]
|
|
15934
15918
|
})]
|
|
15935
15919
|
}),
|
|
@@ -16174,7 +16158,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
16174
16158
|
}),
|
|
16175
16159
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
16176
16160
|
style: muted,
|
|
16177
|
-
children: c("
|
|
16161
|
+
children: c("所有工作配置的知识根目录。选择已有账号目录时,会加载其中的工作配置并继续使用原知识;原目录保留。", "Knowledge root for all configurations. Selecting an existing account directory loads its configurations and continues using its knowledge; the original directory is retained.")
|
|
16178
16162
|
}),
|
|
16179
16163
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
16180
16164
|
className: "acn-actions",
|
|
@@ -16236,69 +16220,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
16236
16220
|
});
|
|
16237
16221
|
}
|
|
16238
16222
|
//#endregion
|
|
16239
|
-
//#region src/client/SourceSessionLink.tsx
|
|
16240
|
-
function SourceSessionLink({ source, api, c, open }) {
|
|
16241
|
-
const [checking, setChecking] = (0, react.useState)(false);
|
|
16242
|
-
const [error, setError] = (0, react.useState)("");
|
|
16243
|
-
const controller = (0, react.useRef)();
|
|
16244
|
-
(0, react.useEffect)(() => () => {
|
|
16245
|
-
controller.current?.abort();
|
|
16246
|
-
}, []);
|
|
16247
|
-
const label = source.title || source.id;
|
|
16248
|
-
async function navigate() {
|
|
16249
|
-
const current = new AbortController();
|
|
16250
|
-
controller.current = current;
|
|
16251
|
-
setChecking(true);
|
|
16252
|
-
setError("");
|
|
16253
|
-
try {
|
|
16254
|
-
const result = await api.interact({
|
|
16255
|
-
action: "source_session",
|
|
16256
|
-
sessionId: source.id
|
|
16257
|
-
}, current.signal);
|
|
16258
|
-
if (!current.signal.aborted) if (result.ok && result.sourceSession?.available) open?.(source.id);
|
|
16259
|
-
else setError(c("来源会话不可用。", "Source session unavailable."));
|
|
16260
|
-
} catch {
|
|
16261
|
-
if (!current.signal.aborted) setError(c("无法打开来源会话。", "Could not open the source session."));
|
|
16262
|
-
} finally {
|
|
16263
|
-
if (!current.signal.aborted) setChecking(false);
|
|
16264
|
-
}
|
|
16265
|
-
}
|
|
16266
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
16267
|
-
className: "acn-source-link",
|
|
16268
|
-
children: [source.available && open ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
|
|
16269
|
-
className: "acn-text-button",
|
|
16270
|
-
title: source.id,
|
|
16271
|
-
disabled: checking,
|
|
16272
|
-
onClick: () => {
|
|
16273
|
-
navigate();
|
|
16274
|
-
},
|
|
16275
|
-
children: label
|
|
16276
|
-
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
16277
|
-
className: "acn-help",
|
|
16278
|
-
children: [label, source.available ? "" : c("(不可用)", " (unavailable)")]
|
|
16279
|
-
}), error && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
16280
|
-
role: "alert",
|
|
16281
|
-
className: "acn-help",
|
|
16282
|
-
children: error
|
|
16283
|
-
})]
|
|
16284
|
-
});
|
|
16285
|
-
}
|
|
16286
|
-
function KnowledgeSources({ sources, api, c, open }) {
|
|
16287
|
-
if (!sources?.length) return null;
|
|
16288
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
16289
|
-
className: "acn-source-sessions",
|
|
16290
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
16291
|
-
className: "acn-help",
|
|
16292
|
-
children: c("来源会话", "Source sessions")
|
|
16293
|
-
}), sources.map((source) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SourceSessionLink, {
|
|
16294
|
-
source,
|
|
16295
|
-
api,
|
|
16296
|
-
c,
|
|
16297
|
-
open
|
|
16298
|
-
}, source.id))]
|
|
16299
|
-
});
|
|
16300
|
-
}
|
|
16301
|
-
//#endregion
|
|
16302
16223
|
//#region src/client/ActivityDetails.tsx
|
|
16303
16224
|
function activityKind(kind, c) {
|
|
16304
16225
|
return {
|
|
@@ -16306,23 +16227,27 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
16306
16227
|
finalize: c("会话收尾", "Session finalization"),
|
|
16307
16228
|
inbox: c("团队收件", "Team Inbox"),
|
|
16308
16229
|
dream: c("Dream 整理", "Dream"),
|
|
16309
|
-
delivery: c("团队投递", "Team delivery")
|
|
16230
|
+
delivery: c("团队投递", "Team delivery"),
|
|
16231
|
+
history: c("历史知识处理", "Historical knowledge processing")
|
|
16310
16232
|
}[kind] ?? kind;
|
|
16311
16233
|
}
|
|
16312
16234
|
function activityState(item, c) {
|
|
16235
|
+
if (item.state === "succeeded" && item.kind === "delivery") return c("已确认上传", "Upload confirmed");
|
|
16313
16236
|
if (item.state === "succeeded" && item.incompleteCandidates?.length) return c("部分完成,有未完成项", "Partially completed; unfinished items");
|
|
16314
16237
|
if (item.state === "succeeded" && item.budgetLimited) return c("已按额度收尾", "Closed at the request budget");
|
|
16315
16238
|
if (item.state === "succeeded" && item.warnings?.length) return c("本地完成,有警告", "Locally completed with warnings");
|
|
16316
16239
|
return {
|
|
16317
16240
|
queued: c("等待处理", "Queued"),
|
|
16318
16241
|
running: c("正在处理", "Running"),
|
|
16319
|
-
succeeded: c("
|
|
16242
|
+
succeeded: item.kind ? c("已应用到本地", "Applied locally") : c("已完成", "Completed"),
|
|
16320
16243
|
failed: c("处理失败", "Failed"),
|
|
16321
16244
|
paused: c("已暂停", "Paused"),
|
|
16245
|
+
cancelled: c("已取消", "Cancelled"),
|
|
16322
16246
|
rejected: c("团队拒绝,未投递", "Rejected; not delivered")
|
|
16323
16247
|
}[item.state] ?? item.state;
|
|
16324
16248
|
}
|
|
16325
16249
|
function activitySummary(item, c) {
|
|
16250
|
+
if (item.kind === "delivery" && item.state === "succeeded") return c("此版本已收到团队投递确认。", "This version was acknowledged by the team.");
|
|
16326
16251
|
if (c("中文", "English") === "中文") return item.summary;
|
|
16327
16252
|
if (item.summaryInfo !== void 0) return displayMessage(item.summary, c, item.summaryInfo);
|
|
16328
16253
|
const labels = {
|
|
@@ -16341,29 +16266,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
16341
16266
|
if (/^[^\u0080-\uFFFF]*$/u.test(item.summary)) return item.summary;
|
|
16342
16267
|
return item.state === "queued" || item.state === "running" || item.state === "failed" ? "No completed result yet." : "Local processing completed. Review any warnings and unfinished items below.";
|
|
16343
16268
|
}
|
|
16344
|
-
function ActivityDetails({ item, runtimeKey, busy, c,
|
|
16269
|
+
function ActivityDetails({ item, runtimeKey, busy, c, showSummary = true, action, openClaim, openComponents }) {
|
|
16345
16270
|
const phaseCounts = item.phase && item.state !== "succeeded" ? Object.entries(item.counts ?? {}).filter(([key]) => ["modelSteps", "wrapUpSteps"].includes(key)) : [];
|
|
16346
16271
|
const handlerInactive = item.errorInfo?.code === "task.handler_inactive";
|
|
16347
16272
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
16348
16273
|
className: "acn-activity-detail",
|
|
16349
16274
|
children: [
|
|
16350
|
-
item.phase && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("p", { children: [
|
|
16351
|
-
c("运行阶段", "Phase"),
|
|
16352
|
-
": ",
|
|
16353
|
-
{
|
|
16354
|
-
exploration: c("探索与整理", "Exploration"),
|
|
16355
|
-
wrap_up: c("收尾", "Closing"),
|
|
16356
|
-
finished: c("已结束", "Finished")
|
|
16357
|
-
}[item.phase]
|
|
16358
|
-
] }),
|
|
16359
|
-
phaseCounts.length > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
16360
|
-
className: "acn-counts",
|
|
16361
|
-
children: phaseCounts.map(([key, value]) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", { children: [
|
|
16362
|
-
key === "modelSteps" ? c("探索请求", "Exploration requests") : c("收尾请求", "Closing requests"),
|
|
16363
|
-
": ",
|
|
16364
|
-
value
|
|
16365
|
-
] }, key))
|
|
16366
|
-
}),
|
|
16367
16275
|
showSummary && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", { children: activitySummary(item, c) }),
|
|
16368
16276
|
showSummary && item.error && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
16369
16277
|
role: "alert",
|
|
@@ -16392,49 +16300,52 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
16392
16300
|
children: id
|
|
16393
16301
|
}, id))
|
|
16394
16302
|
] }, group.groupId)),
|
|
16395
|
-
|
|
16396
|
-
|
|
16397
|
-
children: [
|
|
16398
|
-
|
|
16399
|
-
|
|
16400
|
-
|
|
16401
|
-
|
|
16402
|
-
|
|
16403
|
-
|
|
16404
|
-
|
|
16405
|
-
|
|
16406
|
-
|
|
16407
|
-
|
|
16408
|
-
|
|
16409
|
-
|
|
16410
|
-
|
|
16411
|
-
|
|
16412
|
-
|
|
16413
|
-
|
|
16414
|
-
|
|
16415
|
-
|
|
16416
|
-
|
|
16417
|
-
|
|
16418
|
-
|
|
16419
|
-
|
|
16420
|
-
|
|
16421
|
-
|
|
16422
|
-
|
|
16423
|
-
|
|
16424
|
-
|
|
16425
|
-
|
|
16426
|
-
|
|
16427
|
-
|
|
16428
|
-
|
|
16429
|
-
|
|
16430
|
-
|
|
16431
|
-
|
|
16432
|
-
|
|
16433
|
-
|
|
16434
|
-
|
|
16435
|
-
|
|
16436
|
-
|
|
16437
|
-
|
|
16303
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("details", {
|
|
16304
|
+
className: "acn-execution",
|
|
16305
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("summary", { children: c("执行详情", "Execution details") }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
16306
|
+
className: "acn-execution-body",
|
|
16307
|
+
children: [
|
|
16308
|
+
item.phase && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("p", { children: [
|
|
16309
|
+
c("运行阶段", "Phase"),
|
|
16310
|
+
": ",
|
|
16311
|
+
{
|
|
16312
|
+
exploration: c("探索与整理", "Exploration"),
|
|
16313
|
+
wrap_up: c("收尾", "Closing"),
|
|
16314
|
+
finished: c("已结束", "Finished")
|
|
16315
|
+
}[item.phase]
|
|
16316
|
+
] }),
|
|
16317
|
+
phaseCounts.length > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
16318
|
+
className: "acn-counts",
|
|
16319
|
+
children: phaseCounts.map(([key, value]) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", { children: [
|
|
16320
|
+
key === "modelSteps" ? c("探索请求", "Exploration requests") : c("收尾请求", "Closing requests"),
|
|
16321
|
+
": ",
|
|
16322
|
+
value
|
|
16323
|
+
] }, key))
|
|
16324
|
+
}),
|
|
16325
|
+
item.reportPath && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("p", {
|
|
16326
|
+
style: muted,
|
|
16327
|
+
children: [
|
|
16328
|
+
c("Dream 报告", "Dream report"),
|
|
16329
|
+
": ",
|
|
16330
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("code", {
|
|
16331
|
+
style: {
|
|
16332
|
+
overflowWrap: "anywhere",
|
|
16333
|
+
userSelect: "text"
|
|
16334
|
+
},
|
|
16335
|
+
children: item.reportPath
|
|
16336
|
+
})
|
|
16337
|
+
]
|
|
16338
|
+
}),
|
|
16339
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("p", {
|
|
16340
|
+
style: muted,
|
|
16341
|
+
children: [item.entityId ?? item.id, (item.kind !== "delivery" || item.attempts > 0) && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
|
|
16342
|
+
" · ",
|
|
16343
|
+
c("尝试次数", "Attempts"),
|
|
16344
|
+
": ",
|
|
16345
|
+
item.attempts
|
|
16346
|
+
] })]
|
|
16347
|
+
})
|
|
16348
|
+
]
|
|
16438
16349
|
})]
|
|
16439
16350
|
}),
|
|
16440
16351
|
handlerInactive && openComponents && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
|
|
@@ -16442,7 +16353,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
16442
16353
|
onClick: openComponents,
|
|
16443
16354
|
children: c("前往插件管理", "Open plugin manager")
|
|
16444
16355
|
}) }),
|
|
16445
|
-
item.kind !== "delivery" && (item.state === "failed" || item.state === "paused") && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
|
|
16356
|
+
item.kind !== "delivery" && item.retryable !== false && (item.state === "failed" || item.state === "paused") && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
|
|
16446
16357
|
disabled: busy || handlerInactive,
|
|
16447
16358
|
onClick: () => {
|
|
16448
16359
|
action({
|
|
@@ -16491,6 +16402,69 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
16491
16402
|
});
|
|
16492
16403
|
}
|
|
16493
16404
|
//#endregion
|
|
16405
|
+
//#region src/client/SourceSessionLink.tsx
|
|
16406
|
+
function SourceSessionLink({ source, api, c, open, label: customLabel }) {
|
|
16407
|
+
const [checking, setChecking] = (0, react.useState)(false);
|
|
16408
|
+
const [error, setError] = (0, react.useState)("");
|
|
16409
|
+
const controller = (0, react.useRef)();
|
|
16410
|
+
(0, react.useEffect)(() => () => {
|
|
16411
|
+
controller.current?.abort();
|
|
16412
|
+
}, []);
|
|
16413
|
+
const label = customLabel || source.title || source.id;
|
|
16414
|
+
async function navigate() {
|
|
16415
|
+
const current = new AbortController();
|
|
16416
|
+
controller.current = current;
|
|
16417
|
+
setChecking(true);
|
|
16418
|
+
setError("");
|
|
16419
|
+
try {
|
|
16420
|
+
const result = await api.interact({
|
|
16421
|
+
action: "source_session",
|
|
16422
|
+
sessionId: source.id
|
|
16423
|
+
}, current.signal);
|
|
16424
|
+
if (!current.signal.aborted) if (result.ok && result.sourceSession?.available) open?.(source.id);
|
|
16425
|
+
else setError(c("来源会话不可用。", "Source session unavailable."));
|
|
16426
|
+
} catch {
|
|
16427
|
+
if (!current.signal.aborted) setError(c("无法打开来源会话。", "Could not open the source session."));
|
|
16428
|
+
} finally {
|
|
16429
|
+
if (!current.signal.aborted) setChecking(false);
|
|
16430
|
+
}
|
|
16431
|
+
}
|
|
16432
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
16433
|
+
className: "acn-source-link",
|
|
16434
|
+
children: [source.available && open ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
|
|
16435
|
+
className: "acn-text-button",
|
|
16436
|
+
title: source.id,
|
|
16437
|
+
disabled: checking,
|
|
16438
|
+
onClick: () => {
|
|
16439
|
+
navigate();
|
|
16440
|
+
},
|
|
16441
|
+
children: label
|
|
16442
|
+
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
16443
|
+
className: "acn-help",
|
|
16444
|
+
children: [label, source.available ? "" : c("(不可用)", " (unavailable)")]
|
|
16445
|
+
}), error && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
16446
|
+
role: "alert",
|
|
16447
|
+
className: "acn-help",
|
|
16448
|
+
children: error
|
|
16449
|
+
})]
|
|
16450
|
+
});
|
|
16451
|
+
}
|
|
16452
|
+
function KnowledgeSources({ sources, api, c, open }) {
|
|
16453
|
+
if (!sources?.length) return null;
|
|
16454
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
16455
|
+
className: "acn-source-sessions",
|
|
16456
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
16457
|
+
className: "acn-help",
|
|
16458
|
+
children: c("来源会话", "Source sessions")
|
|
16459
|
+
}), sources.map((source) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SourceSessionLink, {
|
|
16460
|
+
source,
|
|
16461
|
+
api,
|
|
16462
|
+
c,
|
|
16463
|
+
open
|
|
16464
|
+
}, source.id))]
|
|
16465
|
+
});
|
|
16466
|
+
}
|
|
16467
|
+
//#endregion
|
|
16494
16468
|
//#region src/client/knowledge-labels.ts
|
|
16495
16469
|
const statuses = {
|
|
16496
16470
|
active: "活跃",
|
|
@@ -16552,6 +16526,68 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
16552
16526
|
};
|
|
16553
16527
|
}
|
|
16554
16528
|
//#endregion
|
|
16529
|
+
//#region src/client/ActivityCard.tsx
|
|
16530
|
+
function ActivityCard(props) {
|
|
16531
|
+
const { item, c, api, openSource, openClaim } = props;
|
|
16532
|
+
const ids = [.../* @__PURE__ */ new Set([...item.entityIds ?? [], ...item.entityId ? [item.entityId] : []])].filter((id) => /^(claim|dispute|trace)_[0-9a-f]{8}$/.test(id));
|
|
16533
|
+
const summary = item.error ? displayMessage(item.error, c, item.errorInfo) : activitySummary(item, c);
|
|
16534
|
+
const source = item.source;
|
|
16535
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("article", {
|
|
16536
|
+
className: "acn-activity-card",
|
|
16537
|
+
"aria-label": `${item.kind} · ${activityState(item, c)}`,
|
|
16538
|
+
children: [
|
|
16539
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("header", { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
16540
|
+
className: "acn-activity-title",
|
|
16541
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: activityKind(item.kind, c) }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
16542
|
+
className: "acn-badge",
|
|
16543
|
+
"data-tone": ["failed", "rejected"].includes(item.state) ? "danger" : item.requiresAttention ? "warning" : item.state === "succeeded" ? "positive" : "neutral",
|
|
16544
|
+
children: activityState(item, c)
|
|
16545
|
+
})]
|
|
16546
|
+
}), item.updatedAt > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("time", {
|
|
16547
|
+
className: "acn-time",
|
|
16548
|
+
children: knowledgeDate(item.updatedAt)
|
|
16549
|
+
})] }),
|
|
16550
|
+
item.sessionId && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("p", {
|
|
16551
|
+
className: "acn-activity-source",
|
|
16552
|
+
children: [
|
|
16553
|
+
c("来源会话", "Source session"),
|
|
16554
|
+
": ",
|
|
16555
|
+
source?.title || (source?.available ? item.sessionId : c("不可用", "Unavailable"))
|
|
16556
|
+
]
|
|
16557
|
+
}),
|
|
16558
|
+
summary && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
16559
|
+
className: "acn-activity-outcome",
|
|
16560
|
+
role: item.error ? "alert" : void 0,
|
|
16561
|
+
children: summary
|
|
16562
|
+
}),
|
|
16563
|
+
ids.length > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
16564
|
+
className: "acn-activity-links",
|
|
16565
|
+
children: ids.map((id) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Button, {
|
|
16566
|
+
className: "acn-text-button",
|
|
16567
|
+
onClick: () => {
|
|
16568
|
+
openClaim(id, activityKind(item.kind, c));
|
|
16569
|
+
},
|
|
16570
|
+
children: id
|
|
16571
|
+
}, id))
|
|
16572
|
+
}),
|
|
16573
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(ActivityDetails, {
|
|
16574
|
+
...props,
|
|
16575
|
+
showSummary: false
|
|
16576
|
+
}),
|
|
16577
|
+
source?.available && openSource && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
16578
|
+
className: "acn-activity-source-action",
|
|
16579
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SourceSessionLink, {
|
|
16580
|
+
source,
|
|
16581
|
+
api,
|
|
16582
|
+
c,
|
|
16583
|
+
open: openSource,
|
|
16584
|
+
label: c("查看来源会话", "View source session")
|
|
16585
|
+
})
|
|
16586
|
+
})
|
|
16587
|
+
]
|
|
16588
|
+
});
|
|
16589
|
+
}
|
|
16590
|
+
//#endregion
|
|
16555
16591
|
//#region src/client/KnowledgeDetail.tsx
|
|
16556
16592
|
function KnowledgeDetail({ text, c, openClaim }) {
|
|
16557
16593
|
let values;
|
|
@@ -16745,7 +16781,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
16745
16781
|
const [sourceOnly, setSourceOnly] = (0, react.useState)("");
|
|
16746
16782
|
const [attention, setAttention] = (0, react.useState)(false);
|
|
16747
16783
|
const [expandedKnowledge, setExpandedKnowledge] = (0, react.useState)();
|
|
16748
|
-
const [expandedActivities, setExpandedActivities] = (0, react.useState)(() => /* @__PURE__ */ new Set());
|
|
16749
16784
|
const [references, setReferences] = (0, react.useState)([]);
|
|
16750
16785
|
const reference = references.at(-1);
|
|
16751
16786
|
const openClaim = (id, from) => {
|
|
@@ -16924,7 +16959,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
16924
16959
|
setData(void 0);
|
|
16925
16960
|
setReferences([]);
|
|
16926
16961
|
setExpandedKnowledge(void 0);
|
|
16927
|
-
setExpandedActivities(/* @__PURE__ */ new Set());
|
|
16928
16962
|
clearActivity();
|
|
16929
16963
|
},
|
|
16930
16964
|
children: choices.map((item) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
|
|
@@ -17274,56 +17308,18 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
17274
17308
|
className: "acn-empty",
|
|
17275
17309
|
children: filteredActivity ? c("当前筛选下没有处理活动。", "No activity matches these filters.") : c("暂无处理活动。", "No activity.")
|
|
17276
17310
|
}),
|
|
17277
|
-
activities.map((item) => /* @__PURE__ */ (0, react_jsx_runtime.
|
|
17278
|
-
|
|
17279
|
-
|
|
17280
|
-
|
|
17281
|
-
|
|
17282
|
-
|
|
17283
|
-
|
|
17284
|
-
|
|
17285
|
-
if (open) next.add(item.id);
|
|
17286
|
-
else next.delete(item.id);
|
|
17287
|
-
return next;
|
|
17288
|
-
});
|
|
17311
|
+
activities.map((item) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ActivityCard, {
|
|
17312
|
+
api,
|
|
17313
|
+
item,
|
|
17314
|
+
runtimeKey: key,
|
|
17315
|
+
busy: busy || acting,
|
|
17316
|
+
c,
|
|
17317
|
+
action: (request) => {
|
|
17318
|
+
action(request);
|
|
17289
17319
|
},
|
|
17290
|
-
|
|
17291
|
-
|
|
17292
|
-
|
|
17293
|
-
className: "acn-entity-main",
|
|
17294
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
17295
|
-
className: "acn-entity-title",
|
|
17296
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", { children: activityKind(item.kind, c) }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
17297
|
-
className: "acn-badge",
|
|
17298
|
-
"data-tone": ["failed", "rejected"].includes(item.state) ? "danger" : item.requiresAttention ? "warning" : item.state === "succeeded" ? "positive" : "neutral",
|
|
17299
|
-
children: activityState(item, c)
|
|
17300
|
-
})]
|
|
17301
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
17302
|
-
className: "acn-entity-preview",
|
|
17303
|
-
role: item.error ? "alert" : void 0,
|
|
17304
|
-
children: item.error ? displayMessage(item.error, c, item.errorInfo) : activitySummary(item, c)
|
|
17305
|
-
})]
|
|
17306
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("time", {
|
|
17307
|
-
className: "acn-time",
|
|
17308
|
-
children: knowledgeDate(item.updatedAt)
|
|
17309
|
-
})]
|
|
17310
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
17311
|
-
className: "acn-entity-detail",
|
|
17312
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ActivityDetails, {
|
|
17313
|
-
api,
|
|
17314
|
-
item,
|
|
17315
|
-
runtimeKey: key,
|
|
17316
|
-
busy: busy || acting,
|
|
17317
|
-
c,
|
|
17318
|
-
showSummary: false,
|
|
17319
|
-
action: (request) => {
|
|
17320
|
-
action(request);
|
|
17321
|
-
},
|
|
17322
|
-
openSource,
|
|
17323
|
-
openClaim,
|
|
17324
|
-
openComponents
|
|
17325
|
-
})
|
|
17326
|
-
})]
|
|
17320
|
+
openSource,
|
|
17321
|
+
openClaim,
|
|
17322
|
+
openComponents
|
|
17327
17323
|
}, item.id)),
|
|
17328
17324
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
17329
17325
|
className: "acn-pagination",
|
|
@@ -18044,6 +18040,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
18044
18040
|
.acn-entity-detail{padding:10px 10px 20px}.acn-detail-fields{display:grid;gap:18px}.acn-detail-fields dt{font-size:12px;line-height:19px;color:var(--dsw-alias-label-secondary,GrayText);margin-bottom:5px}.acn-detail-fields dd{font-size:13px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}.acn-inline-links{display:flex;gap:5px;flex-wrap:wrap}.acn-detail-meta{margin-top:20px;font-size:12px}.acn-detail-meta summary{cursor:pointer;color:var(--dsw-alias-label-secondary,GrayText);line-height:24px}.acn-detail-meta .acn-detail-fields{margin-top:12px;gap:10px}.acn-counts{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--dsw-alias-label-secondary,GrayText);margin:8px 0 18px}.acn-counts span{white-space:nowrap}.acn-empty{padding:30px 12px;text-align:center;color:var(--dsw-alias-label-secondary,GrayText);font-size:13px}.acn-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px}.acn-pagination small{color:var(--dsw-alias-label-secondary,GrayText);font-size:11px}.acn-activity-summary{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
|
|
18045
18041
|
.acn-knowledge-shell{width:100%;min-width:0;max-width:960px;margin:0 auto}.acn-knowledge-shell>.acn-backbar{margin-bottom:12px!important}.acn-knowledge-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:18px}.acn-knowledge-header>.acn-page-heading,.acn-knowledge-header>.acn-filterbar{margin:0;max-width:100%}.acn-knowledge-header h2{font-size:20px;line-height:28px;margin:0}.acn-knowledge-header select{max-width:100%}.acn-kind-tabs .acn-tab[aria-selected=true]{background:var(--dsw-alias-interactive-bg-hover,#8882)}.acn-back-link:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary,Highlight);outline-offset:3px;border-radius:4px}
|
|
18046
18042
|
.acn-reference-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.acn-reference-actions .acn-back-link{scroll-margin-top:64px}.acn-modal-body .acn-reference-actions .acn-back-link{scroll-margin-top:12px}.acn-reference h3{font-size:15px;line-height:22px;margin:16px 0 12px;overflow-wrap:anywhere}.acn-reference>p{overflow-wrap:anywhere}.acn-activity[open] .acn-entity-preview{-webkit-line-clamp:unset}.acn-activity-detail{display:flex;align-items:flex-start;flex-direction:column;gap:10px}.acn-activity-detail>p{margin:0!important;max-width:100%;overflow-wrap:anywhere}.acn-activity-detail .acn-counts{margin:0}.acn-activity-detail .acn-source-sessions{margin-top:4px}
|
|
18043
|
+
.acn-activity-card{padding:16px 8px;border-bottom:1px solid var(--dsw-alias-border-l1,#8883);display:flex;flex-direction:column;gap:7px;min-width:0}.acn-activity-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.acn-activity-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0;font-size:13px;line-height:20px}.acn-activity-title strong{font-weight:550}.acn-activity-card .acn-activity-source{font-size:12px;line-height:19px;color:var(--dsw-alias-label-secondary,GrayText);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.acn-activity-outcome{font-size:12px;line-height:20px!important;overflow-wrap:anywhere}.acn-activity-links{display:flex;flex-wrap:wrap;gap:2px 14px}.acn-activity-links .acn-btn{min-height:24px;padding:0;max-width:100%;overflow-wrap:anywhere;justify-content:flex-start;font-family:ui-monospace,monospace}.acn-execution{font-size:12px;width:100%;min-width:0}.acn-execution>summary{cursor:pointer;color:var(--dsw-alias-label-secondary,GrayText);width:fit-content;line-height:24px;border-radius:4px}.acn-execution>summary:focus-visible{outline:2px solid var(--acn-accent);outline-offset:2px}.acn-execution-body{display:flex;flex-direction:column;gap:8px;padding:10px 0 3px;font-size:12px;line-height:20px;overflow-wrap:anywhere}.acn-execution-body .acn-counts{margin:0}.acn-activity-source-action{display:flex}.acn-activity-source-action .acn-btn{min-height:28px}.acn-activity-card .acn-activity-detail{gap:8px}
|
|
18047
18044
|
.acn-modal-backdrop{position:fixed;inset:0;z-index:10002;background:#0005;display:grid;place-items:center;padding:clamp(8px,2vw,20px);box-sizing:border-box}
|
|
18048
18045
|
.acn-modal{width:min(920px,100%);max-height:min(84dvh,800px);display:flex;flex-direction:column;overflow:hidden}.acn-modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px 14px;gap:12px}.acn-modal-header h2{font-size:16px;font-weight:600;line-height:1.5;margin:0}
|
|
18049
18046
|
.acn-modal-body{overflow:auto;overscroll-behavior:contain;min-width:0;padding:0 24px 22px}.acn-command-result{font:inherit;font-size:12px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0 0}
|
|
@@ -18111,7 +18108,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
18111
18108
|
agentSoloHint: "In solo mode, choose any fixed name, such as personal, using lowercase letters, numbers, underscores or hyphens. It identifies local knowledge storage: projects and sessions using this configuration share the same knowledge. It does not change with the project; keep it stable after setup.",
|
|
18112
18109
|
agentTeamHint: "Use a stable, unique ID for each team member, matching the identity authorized by your team services. Only lowercase letters, numbers, underscores or hyphens are allowed. This ID identifies the owner of shared knowledge.",
|
|
18113
18110
|
home: "Knowledge directory",
|
|
18114
|
-
homeHint: "An absolute path or ~/ path on the DSH host.
|
|
18111
|
+
homeHint: "An absolute path or ~/ path on the DSH host. Each work configuration has an isolated directory under upstreams/. This is separate from the project workspace.",
|
|
18115
18112
|
switchHint: "Changing the ID or directory switches to that storage location. Existing data stays in place; it is not migrated. Finish the current turn before saving. After changing identity or directory, old sessions and historical forks are blocked; start a new session.",
|
|
18116
18113
|
model: "ACN background model",
|
|
18117
18114
|
modelHint: "Used for Recap, Finalize, Inbox and Dream. The chat model is selected separately in DSH.",
|
|
@@ -18160,7 +18157,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
18160
18157
|
agentSoloHint: "个人模式下可自取任意固定名称,如 personal,使用小写字母、数字、下划线或连字符即可。它用于区分本地知识存储:同一配置下的不同项目和会话共用这份知识,不会按项目自动更换 ID,设定后建议保持不变。",
|
|
18161
18158
|
agentTeamHint: "团队模式下,每个成员须使用稳定且唯一的 ID,并与团队服务授权的身份一致。仅使用小写字母、数字、下划线或连字符;此 ID 用于标识共享知识的归属。",
|
|
18162
18159
|
home: "知识目录",
|
|
18163
|
-
homeHint: "填写 DSH 主机上的绝对路径或 ~/
|
|
18160
|
+
homeHint: "填写 DSH 主机上的绝对路径或 ~/ 路径。各工作配置的知识保存在 upstreams/ 下的独立目录中,与项目工作区分开。",
|
|
18164
18161
|
switchHint: "修改身份或目录会切换到对应存储位置,原有数据保留在原处,不会自动迁移。请先结束当前轮次。切换后旧会话及历史派生会话会被阻止,请新建会话。",
|
|
18165
18162
|
model: "ACN 后台模型",
|
|
18166
18163
|
modelHint: "用于 Recap、Finalize、Inbox 和 Dream。聊天模型仍在 DSH 中单独选择。",
|
|
@@ -4,7 +4,7 @@ import { S as LockTimeoutError, n as withFileLock, t as acquireFileLease } from
|
|
|
4
4
|
import { l as sameClaim, r as KnowledgeBusy, s as ensureKnowledgeReady } from "./alignment-CwH0nBf-.js";
|
|
5
5
|
import { i as ClaimStore, r as reportedClaimSetKey, t as ReportedSetStore } from "./reported-sets-DdEKdeVb.js";
|
|
6
6
|
import { a as disputeVersion, i as RejectedDisputeStore, o as consolidationReady, r as UploadStore, s as relatedIds } from "./uploads-BCA2p92b.js";
|
|
7
|
-
import { t as DeliveryStatusStore } from "./delivery-status-
|
|
7
|
+
import { t as DeliveryStatusStore } from "./delivery-status-M7-Rwoyj.js";
|
|
8
8
|
import { t as TeamError } from "./errors-pPumDOGD.js";
|
|
9
9
|
//#region src/upload/deliver.ts
|
|
10
10
|
var UploadDelivery = class {
|