@fgbg/mdocs 0.8.14 → 0.8.16

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 (84) hide show
  1. package/agent-skills/changelog/SKILL.md +15 -1
  2. package/agent-skills/index/SKILL.md +1 -1
  3. package/agent-skills/index.json +2 -2
  4. package/agent-skills/usage-onboarding-ai/SKILL.md +37 -13
  5. package/dist/server/agent/Agent/run.js +113 -20
  6. package/dist/server/agent/Agent/run.js.map +1 -1
  7. package/dist/server/agent/Agent/session-manager.doc-scope.test.js +15 -0
  8. package/dist/server/agent/Agent/session-manager.doc-scope.test.js.map +1 -0
  9. package/dist/server/agent/Agent/session-manager.js +181 -37
  10. package/dist/server/agent/Agent/session-manager.js.map +1 -1
  11. package/dist/server/agent/Agent/system-prompt.js +18 -9
  12. package/dist/server/agent/Agent/system-prompt.js.map +1 -1
  13. package/dist/server/agent/Agent/tools-coding.get-working.test.js +29 -0
  14. package/dist/server/agent/Agent/tools-coding.get-working.test.js.map +1 -0
  15. package/dist/server/agent/Agent/tools-coding.js +72 -0
  16. package/dist/server/agent/Agent/tools-coding.js.map +1 -0
  17. package/dist/server/agent/Agent/tools-documents.get-document.test.js +103 -0
  18. package/dist/server/agent/Agent/tools-documents.get-document.test.js.map +1 -0
  19. package/dist/server/agent/Agent/tools-documents.js +49 -2
  20. package/dist/server/agent/Agent/tools-documents.js.map +1 -1
  21. package/dist/server/routes/agent.routes.js +76 -6
  22. package/dist/server/routes/agent.routes.js.map +1 -1
  23. package/dist/server/routes/assets.routes.js +58 -11
  24. package/dist/server/routes/assets.routes.js.map +1 -1
  25. package/dist/web/assets/{MergeView-Qhbb3A-J.js → MergeView-BqQuuHxp.js} +1 -1
  26. package/dist/web/assets/{_baseUniq-BPXimQST.js → _baseUniq-CTLDRefi.js} +1 -1
  27. package/dist/web/assets/{arc-C7LTCKRy.js → arc-C6HVu_cL.js} +1 -1
  28. package/dist/web/assets/{architectureDiagram-Q4EWVU46-B-XBFokd.js → architectureDiagram-Q4EWVU46-BGZyIwfI.js} +1 -1
  29. package/dist/web/assets/{blockDiagram-DXYQGD6D-C9_mbHZp.js → blockDiagram-DXYQGD6D-BnmQmYk5.js} +1 -1
  30. package/dist/web/assets/{c4Diagram-AHTNJAMY-CRONB73V.js → c4Diagram-AHTNJAMY-D5ZSFyGW.js} +1 -1
  31. package/dist/web/assets/channel-ComR_5wI.js +1 -0
  32. package/dist/web/assets/{chunk-4BX2VUAB-DBtUbpwD.js → chunk-4BX2VUAB-bB7dqglW.js} +1 -1
  33. package/dist/web/assets/{chunk-4TB4RGXK-BR9W6sJO.js → chunk-4TB4RGXK-DLOuFWAV.js} +1 -1
  34. package/dist/web/assets/{chunk-55IACEB6-DGqID-YO.js → chunk-55IACEB6-F-vn8P_5.js} +1 -1
  35. package/dist/web/assets/{chunk-EDXVE4YY-BTZQICED.js → chunk-EDXVE4YY-DJggdpTr.js} +1 -1
  36. package/dist/web/assets/{chunk-FMBD7UC4-C6rTAcxq.js → chunk-FMBD7UC4-CGFWLCLP.js} +1 -1
  37. package/dist/web/assets/{chunk-OYMX7WX6-DhsxoCd1.js → chunk-OYMX7WX6-nDiR5vU7.js} +1 -1
  38. package/dist/web/assets/{chunk-QZHKN3VN-jzXtJGFf.js → chunk-QZHKN3VN-D29FhQRL.js} +1 -1
  39. package/dist/web/assets/{chunk-YZCP3GAM-DTkwJr8k.js → chunk-YZCP3GAM-BmFALtIq.js} +1 -1
  40. package/dist/web/assets/classDiagram-6PBFFD2Q-CxGT_r56.js +1 -0
  41. package/dist/web/assets/classDiagram-v2-HSJHXN6E-CxGT_r56.js +1 -0
  42. package/dist/web/assets/clone-J85LHgdR.js +1 -0
  43. package/dist/web/assets/{cose-bilkent-S5V4N54A-CvRBtkvd.js → cose-bilkent-S5V4N54A-J4Iar7P4.js} +1 -1
  44. package/dist/web/assets/{dagre-KV5264BT-B-1B_mNA.js → dagre-KV5264BT-Cg07vwKD.js} +1 -1
  45. package/dist/web/assets/{diagram-5BDNPKRD-BDr0po1l.js → diagram-5BDNPKRD-D0FP-ifV.js} +1 -1
  46. package/dist/web/assets/{diagram-G4DWMVQ6-DTv44hrD.js → diagram-G4DWMVQ6-CNejTsu2.js} +1 -1
  47. package/dist/web/assets/{diagram-MMDJMWI5-Cs_0nhHd.js → diagram-MMDJMWI5-DEQjM6f7.js} +1 -1
  48. package/dist/web/assets/{diagram-TYMM5635-BBAIB0Sw.js → diagram-TYMM5635-CRGZl6sR.js} +1 -1
  49. package/dist/web/assets/{erDiagram-SMLLAGMA-CUN320vy.js → erDiagram-SMLLAGMA-BGOATwuq.js} +1 -1
  50. package/dist/web/assets/{flowDiagram-DWJPFMVM-AJtz-K8W.js → flowDiagram-DWJPFMVM-DVHizH8q.js} +1 -1
  51. package/dist/web/assets/{ganttDiagram-T4ZO3ILL-C3z7RPjn.js → ganttDiagram-T4ZO3ILL-dLF_Rbaw.js} +1 -1
  52. package/dist/web/assets/{gitGraphDiagram-UUTBAWPF-ZebvBuFW.js → gitGraphDiagram-UUTBAWPF-BNMxCpkL.js} +1 -1
  53. package/dist/web/assets/{graph-CZBXW5VB.js → graph-p7_cO2pv.js} +1 -1
  54. package/dist/web/assets/index-5eJ_7IuO.css +1 -0
  55. package/dist/web/assets/{index-DXTdmGJ-.js → index-DoJ58x_f.js} +174 -159
  56. package/dist/web/assets/{infoDiagram-42DDH7IO-DIEzS_YO.js → infoDiagram-42DDH7IO-BDffsV8g.js} +1 -1
  57. package/dist/web/assets/{ishikawaDiagram-UXIWVN3A-CIW8AROq.js → ishikawaDiagram-UXIWVN3A-C7fw-Hwt.js} +1 -1
  58. package/dist/web/assets/{journeyDiagram-VCZTEJTY-vKh9CIix.js → journeyDiagram-VCZTEJTY-CuEYHG93.js} +1 -1
  59. package/dist/web/assets/{kanban-definition-6JOO6SKY-DuJSEt-8.js → kanban-definition-6JOO6SKY-iodYb2rc.js} +1 -1
  60. package/dist/web/assets/{layout-BtDnDdeK.js → layout-Dblo7Nv4.js} +1 -1
  61. package/dist/web/assets/{linear-CpW4XqJH.js → linear-Dj7ICVZv.js} +1 -1
  62. package/dist/web/assets/{min-BmlYeGLB.js → min-BC0MiAVU.js} +1 -1
  63. package/dist/web/assets/{mindmap-definition-QFDTVHPH-DREG-tc3.js → mindmap-definition-QFDTVHPH-Bi8kR-nH.js} +1 -1
  64. package/dist/web/assets/{pieDiagram-DEJITSTG-BxlB2Cgn.js → pieDiagram-DEJITSTG-DFXNJaaz.js} +1 -1
  65. package/dist/web/assets/{quadrantDiagram-34T5L4WZ-B8EjaHe8.js → quadrantDiagram-34T5L4WZ-eG750Sg7.js} +1 -1
  66. package/dist/web/assets/{requirementDiagram-MS252O5E-DwoqRuaP.js → requirementDiagram-MS252O5E-BOS23lbk.js} +1 -1
  67. package/dist/web/assets/{sankeyDiagram-XADWPNL6-BY149EBc.js → sankeyDiagram-XADWPNL6-iuLPdF16.js} +1 -1
  68. package/dist/web/assets/{sequenceDiagram-FGHM5R23-BZn7omfU.js → sequenceDiagram-FGHM5R23-9dOhL1F_.js} +1 -1
  69. package/dist/web/assets/{stateDiagram-FHFEXIEX-Bm71P8kW.js → stateDiagram-FHFEXIEX-DiYubp3u.js} +1 -1
  70. package/dist/web/assets/stateDiagram-v2-QKLJ7IA2-C0u2afgY.js +1 -0
  71. package/dist/web/assets/{timeline-definition-GMOUNBTQ-93nA-Ttc.js → timeline-definition-GMOUNBTQ-B7K2SCHF.js} +1 -1
  72. package/dist/web/assets/{vennDiagram-DHZGUBPP-SrZiPQFG.js → vennDiagram-DHZGUBPP-DwsDXISO.js} +1 -1
  73. package/dist/web/assets/wardley-RL74JXVD-DOtyNPcb.js +162 -0
  74. package/dist/web/assets/{wardleyDiagram-NUSXRM2D-BwAHndxm.js → wardleyDiagram-NUSXRM2D-IO3BUkVB.js} +1 -1
  75. package/dist/web/assets/{xychartDiagram-5P7HB3ND-BTDdpAlH.js → xychartDiagram-5P7HB3ND-B_eC9Ig0.js} +1 -1
  76. package/dist/web/index.html +2 -2
  77. package/package.json +2 -2
  78. package/dist/web/assets/channel-CrbDKiW1.js +0 -1
  79. package/dist/web/assets/classDiagram-6PBFFD2Q-DEa_ZIiP.js +0 -1
  80. package/dist/web/assets/classDiagram-v2-HSJHXN6E-DEa_ZIiP.js +0 -1
  81. package/dist/web/assets/clone-CDBuWAOb.js +0 -1
  82. package/dist/web/assets/index-D_o2MyyT.css +0 -1
  83. package/dist/web/assets/stateDiagram-v2-QKLJ7IA2-Dl3SCA5p.js +0 -1
  84. package/dist/web/assets/wardley-RL74JXVD-Czl9dszt.js +0 -162
@@ -3,6 +3,8 @@ import path from "node:path";
3
3
  import { randomUUID } from "node:crypto";
4
4
  import { getConfig } from "../../config/index.js";
5
5
  const SESSION_ID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
6
+ /** 空白帮写(无 documentId)的 lastOpened 键 */
7
+ export const CODING_BLANK_DOC_KEY = "__blank__";
6
8
  function safeString(v) {
7
9
  if (typeof v !== "string")
8
10
  return null;
@@ -21,15 +23,26 @@ function titleFromUserContent(content) {
21
23
  return "新会话";
22
24
  return oneLine.length > 36 ? `${oneLine.slice(0, 36)}…` : oneLine;
23
25
  }
26
+ /** null/空 → 空白桶;有 id → 该文档 */
27
+ export function docScopeKey(documentId) {
28
+ const id = typeof documentId === "string" ? documentId.trim() : "";
29
+ return id || CODING_BLANK_DOC_KEY;
30
+ }
31
+ function entryDocKey(entry) {
32
+ return docScopeKey(entry.documentId);
33
+ }
24
34
  export class AgentSessionManager {
25
35
  visitorId;
26
36
  sessionDir;
27
37
  metaPath;
38
+ kind;
28
39
  cachedSessionId = null;
29
- constructor(visitorId) {
40
+ constructor(visitorId, opts) {
30
41
  this.visitorId = visitorId;
31
42
  const { dataDir } = getConfig();
32
- this.sessionDir = path.join(dataDir, "tenant", visitorId, "agent", "session");
43
+ this.kind = opts?.kind === "coding" ? "coding" : "normal";
44
+ const kindDir = this.kind === "coding" ? "coding-session" : "session";
45
+ this.sessionDir = path.join(dataDir, "tenant", visitorId, "agent", kindDir);
33
46
  this.metaPath = path.join(this.sessionDir, "session.json");
34
47
  }
35
48
  jsonlPath(sessionId) {
@@ -48,7 +61,10 @@ export class AgentSessionManager {
48
61
  const sessions = Array.isArray(parsed?.sessions)
49
62
  ? parsed.sessions.filter((s) => s && isSessionId(String(s.id ?? "")))
50
63
  : [];
51
- return { lastOpenedSessionId, sessions };
64
+ const lastOpenedByDocument = parsed?.lastOpenedByDocument && typeof parsed.lastOpenedByDocument === "object"
65
+ ? Object.fromEntries(Object.entries(parsed.lastOpenedByDocument).filter(([, id]) => typeof id === "string" && isSessionId(id)))
66
+ : undefined;
67
+ return { lastOpenedSessionId, sessions, lastOpenedByDocument };
52
68
  }
53
69
  catch (err) {
54
70
  if (err && typeof err === "object" && "code" in err && err.code === "ENOENT") {
@@ -68,6 +84,7 @@ export class AgentSessionManager {
68
84
  id: sessionId,
69
85
  title: patch?.title,
70
86
  updatedAt: now,
87
+ documentId: patch?.documentId !== undefined ? patch.documentId : undefined,
71
88
  });
72
89
  return;
73
90
  }
@@ -76,17 +93,34 @@ export class AgentSessionManager {
76
93
  ...cur,
77
94
  title: patch?.title !== undefined ? patch.title : cur.title,
78
95
  updatedAt: patch?.touchUpdatedAt === false ? cur.updatedAt ?? now : now,
96
+ documentId: patch?.documentId !== undefined ? patch.documentId : cur.documentId,
97
+ };
98
+ }
99
+ setLastOpenedForDoc(meta, documentId, sessionId) {
100
+ if (this.kind !== "coding")
101
+ return;
102
+ const key = docScopeKey(documentId);
103
+ meta.lastOpenedByDocument = {
104
+ ...(meta.lastOpenedByDocument ?? {}),
105
+ [key]: sessionId,
79
106
  };
80
107
  }
81
108
  sortSummaries(sessions) {
82
109
  return sessions
83
110
  .map((s) => ({
84
111
  id: s.id,
85
- title: (s.title?.trim() || "新会话"),
112
+ title: s.title?.trim() || "新会话",
86
113
  updatedAt: s.updatedAt ?? nowIso(),
114
+ documentId: s.documentId ?? null,
87
115
  }))
88
116
  .sort((a, b) => (a.updatedAt < b.updatedAt ? 1 : a.updatedAt > b.updatedAt ? -1 : 0));
89
117
  }
118
+ filterByDocument(sessions, documentId) {
119
+ if (this.kind !== "coding")
120
+ return sessions;
121
+ const key = docScopeKey(documentId);
122
+ return sessions.filter((s) => entryDocKey(s) === key);
123
+ }
90
124
  async loadTranscript(sessionId) {
91
125
  try {
92
126
  const txt = await fs.promises.readFile(this.jsonlPath(sessionId), "utf8");
@@ -114,53 +148,109 @@ export class AgentSessionManager {
114
148
  return [];
115
149
  }
116
150
  }
117
- async ensureLastOpened() {
151
+ /**
152
+ * 确保有可用 lastOpened。
153
+ * coding + documentId:按文档维度;normal:全局 lastOpened。
154
+ */
155
+ async ensureLastOpened(documentId) {
118
156
  await this.ensureSessionDir();
119
- if (this.cachedSessionId)
120
- return this.cachedSessionId;
121
- const meta = await this.readMeta();
122
- if (!meta) {
123
- const sessionId = randomUUID();
124
- await this.writeMeta({
125
- lastOpenedSessionId: sessionId,
126
- sessions: [{ id: sessionId, updatedAt: nowIso() }],
127
- });
157
+ if (this.kind !== "coding") {
158
+ if (this.cachedSessionId)
159
+ return this.cachedSessionId;
160
+ const meta = await this.readMeta();
161
+ if (!meta) {
162
+ const sessionId = randomUUID();
163
+ await this.writeMeta({
164
+ lastOpenedSessionId: sessionId,
165
+ sessions: [{ id: sessionId, updatedAt: nowIso() }],
166
+ });
167
+ this.cachedSessionId = sessionId;
168
+ return sessionId;
169
+ }
170
+ this.ensureSessionEntry(meta, meta.lastOpenedSessionId, { touchUpdatedAt: false });
171
+ await this.writeMeta(meta);
172
+ this.cachedSessionId = meta.lastOpenedSessionId;
173
+ return meta.lastOpenedSessionId;
174
+ }
175
+ const key = docScopeKey(documentId);
176
+ const meta = (await this.readMeta()) ?? {
177
+ lastOpenedSessionId: "",
178
+ sessions: [],
179
+ lastOpenedByDocument: {},
180
+ };
181
+ const scoped = this.filterByDocument(meta.sessions, documentId);
182
+ const mapped = meta.lastOpenedByDocument?.[key];
183
+ const mappedOk = mapped &&
184
+ isSessionId(mapped) &&
185
+ scoped.some((s) => s.id === mapped);
186
+ if (mappedOk) {
187
+ meta.lastOpenedSessionId = mapped;
188
+ this.ensureSessionEntry(meta, mapped, { touchUpdatedAt: false });
189
+ await this.writeMeta(meta);
190
+ this.cachedSessionId = mapped;
191
+ return mapped;
192
+ }
193
+ if (scoped[0]) {
194
+ const sessionId = scoped[0].id;
195
+ meta.lastOpenedSessionId = sessionId;
196
+ this.setLastOpenedForDoc(meta, documentId, sessionId);
197
+ await this.writeMeta(meta);
128
198
  this.cachedSessionId = sessionId;
129
199
  return sessionId;
130
200
  }
131
- this.ensureSessionEntry(meta, meta.lastOpenedSessionId, { touchUpdatedAt: false });
201
+ const sessionId = randomUUID();
202
+ meta.lastOpenedSessionId = sessionId;
203
+ this.ensureSessionEntry(meta, sessionId, {
204
+ touchUpdatedAt: true,
205
+ documentId: documentId?.trim() ? documentId.trim() : null,
206
+ });
207
+ this.setLastOpenedForDoc(meta, documentId, sessionId);
132
208
  await this.writeMeta(meta);
133
- this.cachedSessionId = meta.lastOpenedSessionId;
134
- return meta.lastOpenedSessionId;
209
+ this.cachedSessionId = sessionId;
210
+ return sessionId;
135
211
  }
136
- async listSessions() {
137
- const lastOpenedSessionId = await this.ensureLastOpened();
212
+ async listSessions(documentId) {
213
+ const lastOpenedSessionId = await this.ensureLastOpened(documentId);
138
214
  const meta = (await this.readMeta());
215
+ const scoped = this.filterByDocument(meta.sessions, documentId);
139
216
  return {
140
217
  lastOpenedSessionId,
141
- sessions: this.sortSummaries(meta.sessions),
218
+ sessions: this.sortSummaries(scoped),
142
219
  };
143
220
  }
144
- async loadLastOpenedMessages() {
145
- const sessionId = await this.ensureLastOpened();
221
+ async loadLastOpenedMessages(documentId) {
222
+ const sessionId = await this.ensureLastOpened(documentId);
146
223
  return { sessionId, messages: await this.loadTranscript(sessionId) };
147
224
  }
148
- /** 新建空会话并设为 lastOpened */
149
- async createSession() {
225
+ /** 新建空会话并设为该文档(或空白桶)的 lastOpened */
226
+ async createSession(documentId) {
150
227
  await this.ensureSessionDir();
151
228
  const sessionId = randomUUID();
152
229
  const meta = (await this.readMeta()) ?? {
153
230
  lastOpenedSessionId: sessionId,
154
231
  sessions: [],
232
+ lastOpenedByDocument: {},
155
233
  };
156
234
  meta.lastOpenedSessionId = sessionId;
157
- this.ensureSessionEntry(meta, sessionId, { title: "新会话", touchUpdatedAt: true });
235
+ const doc = this.kind === "coding"
236
+ ? documentId?.trim()
237
+ ? documentId.trim()
238
+ : null
239
+ : undefined;
240
+ this.ensureSessionEntry(meta, sessionId, {
241
+ title: "新会话",
242
+ touchUpdatedAt: true,
243
+ documentId: doc,
244
+ });
245
+ if (this.kind === "coding") {
246
+ this.setLastOpenedForDoc(meta, documentId, sessionId);
247
+ }
158
248
  await this.writeMeta(meta);
159
249
  this.cachedSessionId = sessionId;
160
250
  return { sessionId, messages: [] };
161
251
  }
162
- /** 切换 lastOpened 并返回该会话 transcript */
163
- async openSession(sessionId) {
252
+ /** 切换 lastOpened;coding 时可校验属于同一 documentId */
253
+ async openSession(sessionId, documentId) {
164
254
  if (!isSessionId(sessionId))
165
255
  throw new Error("invalid_session_id");
166
256
  await this.ensureSessionDir();
@@ -169,25 +259,76 @@ export class AgentSessionManager {
169
259
  const hasFile = fs.existsSync(this.jsonlPath(sessionId));
170
260
  if (!inMeta && !hasFile)
171
261
  throw new Error("session_not_found");
172
- const next = meta ?? { lastOpenedSessionId: sessionId, sessions: [] };
262
+ const next = meta ?? { lastOpenedSessionId: sessionId, sessions: [], lastOpenedByDocument: {} };
263
+ const entry = next.sessions.find((s) => s.id === sessionId);
264
+ if (this.kind === "coding" && documentId !== undefined) {
265
+ const want = docScopeKey(documentId);
266
+ const have = entry ? entryDocKey(entry) : CODING_BLANK_DOC_KEY;
267
+ if (want !== have)
268
+ throw new Error("session_document_mismatch");
269
+ }
173
270
  next.lastOpenedSessionId = sessionId;
174
271
  this.ensureSessionEntry(next, sessionId, { touchUpdatedAt: true });
272
+ if (this.kind === "coding") {
273
+ const bindDoc = entry?.documentId ?? (documentId !== undefined ? documentId : null);
274
+ this.setLastOpenedForDoc(next, bindDoc, sessionId);
275
+ }
175
276
  await this.writeMeta(next);
176
277
  this.cachedSessionId = sessionId;
177
278
  return { sessionId, messages: await this.loadTranscript(sessionId) };
178
279
  }
280
+ /**
281
+ * 空白帮写写回成文后:把 session 绑到新 documentId,并设为该文 lastOpened。
282
+ */
283
+ async bindSessionDocument(sessionId, documentId) {
284
+ if (this.kind !== "coding")
285
+ throw new Error("bind_only_coding");
286
+ if (!isSessionId(sessionId))
287
+ throw new Error("invalid_session_id");
288
+ const doc = documentId.trim();
289
+ if (!doc)
290
+ throw new Error("document_id_required");
291
+ await this.ensureSessionDir();
292
+ const meta = (await this.readMeta()) ?? {
293
+ lastOpenedSessionId: sessionId,
294
+ sessions: [],
295
+ lastOpenedByDocument: {},
296
+ };
297
+ const inMeta = meta.sessions.some((s) => s.id === sessionId);
298
+ const hasFile = fs.existsSync(this.jsonlPath(sessionId));
299
+ if (!inMeta && !hasFile)
300
+ throw new Error("session_not_found");
301
+ this.ensureSessionEntry(meta, sessionId, {
302
+ documentId: doc,
303
+ touchUpdatedAt: true,
304
+ });
305
+ meta.lastOpenedSessionId = sessionId;
306
+ this.setLastOpenedForDoc(meta, doc, sessionId);
307
+ // 从空白桶 lastOpened 清掉自己(若仍指向本 session)
308
+ if (meta.lastOpenedByDocument?.[CODING_BLANK_DOC_KEY] === sessionId) {
309
+ delete meta.lastOpenedByDocument[CODING_BLANK_DOC_KEY];
310
+ }
311
+ await this.writeMeta(meta);
312
+ this.cachedSessionId = sessionId;
313
+ return { sessionId, documentId: doc };
314
+ }
179
315
  async touchLastOpened(sessionId, patch) {
180
316
  const meta = (await this.readMeta()) ?? {
181
317
  lastOpenedSessionId: sessionId,
182
318
  sessions: [],
319
+ lastOpenedByDocument: {},
183
320
  };
184
321
  meta.lastOpenedSessionId = sessionId;
185
322
  const existing = meta.sessions.find((s) => s.id === sessionId);
186
- const needTitle = patch?.titleIfEmpty && !(existing?.title && existing.title.trim() && existing.title !== "新会话");
323
+ const needTitle = patch?.titleIfEmpty &&
324
+ !(existing?.title && existing.title.trim() && existing.title !== "新会话");
187
325
  this.ensureSessionEntry(meta, sessionId, {
188
326
  title: needTitle ? patch.titleIfEmpty : undefined,
189
327
  touchUpdatedAt: true,
190
328
  });
329
+ if (this.kind === "coding") {
330
+ this.setLastOpenedForDoc(meta, existing?.documentId ?? null, sessionId);
331
+ }
191
332
  await this.writeMeta(meta);
192
333
  this.cachedSessionId = sessionId;
193
334
  }
@@ -204,16 +345,19 @@ export class AgentSessionManager {
204
345
  await this.touchLastOpened(sessionId);
205
346
  }
206
347
  }
207
- export async function getAgentSessionForApi(visitorId) {
208
- return new AgentSessionManager(visitorId).loadLastOpenedMessages();
348
+ export async function getAgentSessionForApi(visitorId, kind = "normal", documentId) {
349
+ return new AgentSessionManager(visitorId, { kind }).loadLastOpenedMessages(kind === "coding" ? documentId : undefined);
350
+ }
351
+ export async function listAgentSessionsForApi(visitorId, kind = "normal", documentId) {
352
+ return new AgentSessionManager(visitorId, { kind }).listSessions(kind === "coding" ? documentId : undefined);
209
353
  }
210
- export async function listAgentSessionsForApi(visitorId) {
211
- return new AgentSessionManager(visitorId).listSessions();
354
+ export async function createAgentSessionForApi(visitorId, kind = "normal", documentId) {
355
+ return new AgentSessionManager(visitorId, { kind }).createSession(kind === "coding" ? documentId : undefined);
212
356
  }
213
- export async function createAgentSessionForApi(visitorId) {
214
- return new AgentSessionManager(visitorId).createSession();
357
+ export async function openAgentSessionForApi(visitorId, sessionId, kind = "normal", documentId) {
358
+ return new AgentSessionManager(visitorId, { kind }).openSession(sessionId, kind === "coding" ? documentId : undefined);
215
359
  }
216
- export async function openAgentSessionForApi(visitorId, sessionId) {
217
- return new AgentSessionManager(visitorId).openSession(sessionId);
360
+ export async function bindCodingSessionDocumentForApi(visitorId, sessionId, documentId) {
361
+ return new AgentSessionManager(visitorId, { kind: "coding" }).bindSessionDocument(sessionId, documentId);
218
362
  }
219
363
  //# sourceMappingURL=session-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../../../src/server/agent/Agent/session-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../../../src/server/agent/Agent/session-manager.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,23 @@
1
- const RULES = `你是 mdocs 智能助手:可帮助理解产品用法,也可代为执行账号内的域/目录/空文档操作。
1
+ const NORMAL_RULES = `你是 mdocs 智能助手:上手向导 + 账号助理。可帮助理解产品用法,也可代为执行账号内的域/目录/空文档等结构操作。
2
2
 
3
3
  规则:
4
- 1. 禁止代写、润色、改写用户文档,也不要给出可直接粘贴进正文的长文草稿。
4
+ 1. 禁止代写、润色、改写用户文档,也不要给出可直接粘贴进正文的长文草稿;不做发布、不做删除。
5
5
  2. 需要产品知识时:先调用「查询 mdocs 手册大纲」了解有哪些主题,再调用「查询 mdocs 手册正文」按 id 阅读相关章节后回答。
6
- 3. 允许调用账号工具执行:列访客、列域、列/添加域成员、建域、搜文、列树、列我的文档、建空文档、建文件夹、移动文档;执行后基于工具 JSON 结果如实反馈。用户问「有哪些人可以邀请」时调用「列出活跃访客」;问某域现有成员时调用「列出域成员」;要把某人加进 restricted 域时先列访客再「添加域成员」。移动文档用「移动文档」(parentId 为文件夹 id,不传则到域根);仅创建者可移动。
7
- 4. 若用户要求写作或改文档正文,明确拒绝,并提示他们在编辑器中自行操作。
8
- 5. 回答简洁、面向操作步骤。
9
- 6. 每轮回答正文结束后,另起一段追加一句引导(只追加一次,不要反复追问):先问「您还有什么想了解的吗?」,再给 1~2 个与本轮话题相关、可继续深挖的具体问题示例(例如「比如:受限域怎么加成员?」「比如:文档档位和邀请有什么区别?」)。示例要短、可直接当作下一句提问;与当前无关的主题不要乱推。`;
10
- /** 组装 system prompt:角色规则 + tool 使用说明(手册目录由 tool 按需返回) */
11
- export function buildSystemPrompt() {
12
- return RULES;
6
+ 3. 允许调用账号工具执行:列域、建域、搜文、列树、列我的文档、建空文档、建文件夹;以及列访客、列/添加域成员、读取文档内容、移动文档。执行后基于工具 JSON 结果如实反馈,不得编造工具未返回的字段。用户问某篇具体内容时用「读取文档内容」(documentId);搜文/列树只给摘要或元数据。用户问「有哪些人可以邀请」时调用「列出活跃访客」;问某域现有成员时调用「列出域成员」;要把某人加进 restricted 域时先列访客再「添加域成员」。移动文档用「移动文档」(parentId 为文件夹 id,不传则到域根);仅创建者可移动。
7
+ 4. 若用户要求写作或改文档正文,明确拒绝,并提示他们打开「帮写」功能(coding 模式)在专用工作台完成。可读取用户有权查看的文档来回答问题,但不要据此代写或改写正文。
8
+ 5. 先给出工具结果与结论,再给简短下一步建议;回答简洁、面向操作步骤。
9
+ 6. 每轮回答正文结束后,另起一段追加一句引导(只追加一次,不要反复追问):先问「您还有什么想了解的吗?」,再给 1~2 个与本轮话题相关、可继续深挖的具体问题示例。示例要短、可直接当作下一句提问;与当前无关的主题不要乱推。`;
10
+ const CODING_RULES = `你是 mdocs「帮写」助手(coding 模式):在纯 Markdown 工作台协助用户起草/改稿。
11
+
12
+ 规则:
13
+ 1. 改稿前必须先调用「读取帮写工作稿」(get_working_document) 获取进场快照与当前工作稿;以工具返回为准,禁止臆造正文。工作稿来自本次请求,不是磁盘上的旧版。
14
+ 2. 用工具「设置帮写正文」(set_markdown_document) 提交**完整** Markdown 提案;该工具只更新前端提案,不直接写服务器。用户会按段接受/拒绝后再点完成写回。
15
+ 3. 每次 set_markdown_document 应给出当前完整正文(不要只给局部补丁)。可另用搜文、列树、读取文档内容收集参考材料。
16
+ 4. 允许使用账号结构工具辅助;不要发布、不要删除。
17
+ 5. 特殊块(mermaid / markmap / meta2d)用 Markdown 围栏源码书写即可。
18
+ 6. 先简短说明你要改什么,再调用工具;工具返回后如实确认已更新提案。
19
+ 7. 回答简洁;不要编造工具未返回的字段。`;
20
+ export function buildSystemPrompt(mode = "normal") {
21
+ return mode === "coding" ? CODING_RULES : NORMAL_RULES;
13
22
  }
14
23
  //# sourceMappingURL=system-prompt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../../../src/server/agent/Agent/system-prompt.ts"],"names":[],"mappings":"AAAA,MAAM,KAAK,GAAG;;;;;;;;qJAQuI,CAAC;AAEtJ,yDAAyD;AACzD,MAAM,UAAU,iBAAiB;IAC/B,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../../../src/server/agent/Agent/system-prompt.ts"],"names":[],"mappings":"AAEA,MAAM,YAAY,GAAG;;;;;;;;iHAQ4F,CAAC;AAElH,MAAM,YAAY,GAAG;;;;;;;;;sBASC,CAAC;AAEvB,MAAM,UAAU,iBAAiB,CAAC,OAAkB,QAAQ;IAC1D,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;AACzD,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { createCodingWriteTools } from "./tools-coding.js";
3
+ async function runGetWorking(params = {}) {
4
+ const tool = createCodingWriteTools({
5
+ documentId: "doc-1",
6
+ workingMarkdown: "# working\nhello",
7
+ baseMarkdown: "# base\nold",
8
+ }).find((t) => t.name === "get_working_document");
9
+ if (!tool)
10
+ throw new Error("get_working_document missing");
11
+ return tool.execute("call-1", params, undefined, undefined);
12
+ }
13
+ describe("get_working_document", () => {
14
+ it("returns both base and working by default", async () => {
15
+ const result = await runGetWorking();
16
+ const details = result.details;
17
+ expect(details.documentId).toBe("doc-1");
18
+ expect(details.source).toBe("request_body");
19
+ expect(details.workingMarkdown).toContain("working");
20
+ expect(details.baseMarkdown).toContain("base");
21
+ });
22
+ it("can return only working", async () => {
23
+ const result = await runGetWorking({ which: "working" });
24
+ const details = result.details;
25
+ expect(details.workingMarkdown).toBeDefined();
26
+ expect(details.baseMarkdown).toBeUndefined();
27
+ });
28
+ });
29
+ //# sourceMappingURL=tools-coding.get-working.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools-coding.get-working.test.js","sourceRoot":"","sources":["../../../../src/server/agent/Agent/tools-coding.get-working.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,KAAK,UAAU,aAAa,CAAC,SAAkC,EAAE;IAC/D,MAAM,IAAI,GAAG,sBAAsB,CAAC;QAClC,UAAU,EAAE,OAAO;QACnB,eAAe,EAAE,kBAAkB;QACnC,YAAY,EAAE,aAAa;KAC5B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,sBAAsB,CAAC,CAAC;IAClD,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC3D,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAe,EAAE,SAAkB,EAAE,SAAkB,CAAC,CAAC;AACzF,CAAC;AAED,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,MAAM,CAAC,OAKtB,CAAC;QACF,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5C,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACrD,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;QACvC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAkC,CAAC;QAC1D,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,CAAC;QAC9C,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,aAAa,EAAE,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,72 @@
1
+ import { Type } from "@earendil-works/pi-ai";
2
+ import { createAccountTools } from "./tools-account.js";
3
+ const WORKING_DOC_MAX_CHARS = 50_000;
4
+ function asToolResult(payload) {
5
+ return {
6
+ content: [{ type: "text", text: JSON.stringify(payload, null, 2) }],
7
+ details: payload,
8
+ };
9
+ }
10
+ function clipMarkdown(md) {
11
+ const charCount = md.length;
12
+ if (charCount <= WORKING_DOC_MAX_CHARS) {
13
+ return { text: md, truncated: false, charCount };
14
+ }
15
+ return {
16
+ text: md.slice(0, WORKING_DOC_MAX_CHARS) + "\n\n…(truncated)",
17
+ truncated: true,
18
+ charCount,
19
+ };
20
+ }
21
+ /** coding 模式专用:读/写前端 MD buffer,不写磁盘 */
22
+ export function createCodingWriteTools(ctx) {
23
+ return [
24
+ {
25
+ name: "get_working_document",
26
+ label: "读取帮写工作稿",
27
+ description: "读取本轮帮写工作台中的文章:进场快照(base)与当前工作稿(working,含已接受的修改)。改稿前应先调用。内容来自本次请求,不是服务器磁盘。",
28
+ parameters: Type.Object({
29
+ which: Type.Optional(Type.Union([Type.Literal("working"), Type.Literal("base"), Type.Literal("both")], {
30
+ description: "读哪一份;默认 both",
31
+ })),
32
+ }),
33
+ execute: async (_id, params) => {
34
+ const which = params.which ?? "both";
35
+ const working = clipMarkdown(ctx.workingMarkdown);
36
+ const base = clipMarkdown(ctx.baseMarkdown);
37
+ const payload = {
38
+ documentId: ctx.documentId,
39
+ source: "request_body",
40
+ };
41
+ if (which === "working" || which === "both") {
42
+ payload.workingMarkdown = working.text;
43
+ payload.workingTruncated = working.truncated;
44
+ payload.workingCharCount = working.charCount;
45
+ }
46
+ if (which === "base" || which === "both") {
47
+ payload.baseMarkdown = base.text;
48
+ payload.baseTruncated = base.truncated;
49
+ payload.baseCharCount = base.charCount;
50
+ }
51
+ return asToolResult(payload);
52
+ },
53
+ },
54
+ {
55
+ name: "set_markdown_document",
56
+ label: "设置帮写正文",
57
+ description: "用完整 Markdown 覆写帮写工作台右侧提案正文。不写入服务器文档;用户按段接受后才会写回。每次调用应给出当前完整 MD。改稿前请先 get_working_document。",
58
+ parameters: Type.Object({
59
+ markdown: Type.String({ description: "完整 Markdown 正文" }),
60
+ }),
61
+ execute: async (_id, params) => {
62
+ const markdown = String(params.markdown ?? "");
63
+ return asToolResult({ markdown, applied: true });
64
+ },
65
+ },
66
+ ];
67
+ }
68
+ /** coding:账号结构 tools + 读写 buffer tools(手册 tools 在 run 里另挂) */
69
+ export function createCodingTools(visitorId, ctx) {
70
+ return [...createAccountTools(visitorId), ...createCodingWriteTools(ctx)];
71
+ }
72
+ //# sourceMappingURL=tools-coding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools-coding.js","sourceRoot":"","sources":["../../../../src/server/agent/Agent/tools-coding.ts"],"names":[],"mappings":"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"}