@qnote/q-ai-note 1.0.2 → 1.0.4

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 (40) hide show
  1. package/dist/server/aiClient.d.ts.map +1 -1
  2. package/dist/server/aiClient.js +7 -0
  3. package/dist/server/aiClient.js.map +1 -1
  4. package/dist/server/api/chat.d.ts.map +1 -1
  5. package/dist/server/api/chat.js +3 -0
  6. package/dist/server/api/chat.js.map +1 -1
  7. package/dist/server/api/nodeEntities.d.ts +3 -0
  8. package/dist/server/api/nodeEntities.d.ts.map +1 -0
  9. package/dist/server/api/nodeEntities.js +116 -0
  10. package/dist/server/api/nodeEntities.js.map +1 -0
  11. package/dist/server/api/settings.d.ts.map +1 -1
  12. package/dist/server/api/settings.js +16 -1
  13. package/dist/server/api/settings.js.map +1 -1
  14. package/dist/server/config.d.ts +3 -2
  15. package/dist/server/config.d.ts.map +1 -1
  16. package/dist/server/config.js +6 -1
  17. package/dist/server/config.js.map +1 -1
  18. package/dist/server/index.d.ts.map +1 -1
  19. package/dist/server/index.js +2 -0
  20. package/dist/server/index.js.map +1 -1
  21. package/dist/server/nodeEntitiesStore.d.ts +78 -0
  22. package/dist/server/nodeEntitiesStore.d.ts.map +1 -0
  23. package/dist/server/nodeEntitiesStore.js +196 -0
  24. package/dist/server/nodeEntitiesStore.js.map +1 -0
  25. package/dist/server/react/agent.d.ts +3 -0
  26. package/dist/server/react/agent.d.ts.map +1 -1
  27. package/dist/server/react/agent.js +132 -2
  28. package/dist/server/react/agent.js.map +1 -1
  29. package/dist/server/react/prompts.d.ts +1 -0
  30. package/dist/server/react/prompts.d.ts.map +1 -1
  31. package/dist/server/react/prompts.js +25 -4
  32. package/dist/server/react/prompts.js.map +1 -1
  33. package/dist/server/react/tools.d.ts.map +1 -1
  34. package/dist/server/react/tools.js +105 -0
  35. package/dist/server/react/tools.js.map +1 -1
  36. package/dist/web/app.js +872 -57
  37. package/dist/web/index.html +78 -1
  38. package/dist/web/styles.css +783 -33
  39. package/dist/web/vueRenderers.js +228 -13
  40. package/package.json +1 -1
@@ -0,0 +1,196 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ import { v4 as uuidv4 } from 'uuid';
4
+ import { db, getResolvedDbPath } from './db.js';
5
+ const FILE_NAME = 'node-entities.json';
6
+ function now() {
7
+ return new Date().toISOString();
8
+ }
9
+ function getFilePath() {
10
+ return path.join(getResolvedDbPath(), FILE_NAME);
11
+ }
12
+ function readAll() {
13
+ const filePath = getFilePath();
14
+ if (!fs.existsSync(filePath)) {
15
+ return [];
16
+ }
17
+ try {
18
+ const text = fs.readFileSync(filePath, 'utf-8');
19
+ const parsed = JSON.parse(text);
20
+ return Array.isArray(parsed) ? parsed : [];
21
+ }
22
+ catch {
23
+ return [];
24
+ }
25
+ }
26
+ function stableStringify(input) {
27
+ const normalize = (value) => {
28
+ if (Array.isArray(value)) {
29
+ return value.map((item) => normalize(item));
30
+ }
31
+ if (value && typeof value === 'object') {
32
+ const obj = value;
33
+ return Object.keys(obj).sort().reduce((acc, key) => {
34
+ acc[key] = normalize(obj[key]);
35
+ return acc;
36
+ }, {});
37
+ }
38
+ return value;
39
+ };
40
+ return JSON.stringify(normalize(input), null, 2);
41
+ }
42
+ function writeAll(rows) {
43
+ const filePath = getFilePath();
44
+ const dir = path.dirname(filePath);
45
+ if (!fs.existsSync(dir)) {
46
+ fs.mkdirSync(dir, { recursive: true });
47
+ }
48
+ const sorted = [...rows].sort((a, b) => `${a.sandbox_id}/${a.work_item_id}/${a.entity_type}/${a.updated_at}/${a.id}`.localeCompare(`${b.sandbox_id}/${b.work_item_id}/${b.entity_type}/${b.updated_at}/${b.id}`));
49
+ const tmp = `${filePath}.tmp`;
50
+ fs.writeFileSync(tmp, stableStringify(sorted), 'utf-8');
51
+ fs.renameSync(tmp, filePath);
52
+ }
53
+ function normalizeLinks(value) {
54
+ if (!Array.isArray(value)) {
55
+ return [];
56
+ }
57
+ return value
58
+ .map((item) => {
59
+ const row = item;
60
+ const title = String(row.title || '').trim();
61
+ const url = String(row.url || '').trim();
62
+ if (!url)
63
+ return null;
64
+ return { title: title || url, url };
65
+ })
66
+ .filter((item) => Boolean(item));
67
+ }
68
+ function assertWorkItemBelongsToSandbox(workItemId, sandboxId) {
69
+ const item = db.prepare('SELECT * FROM work_items WHERE id = ? AND sandbox_id = ?').get(workItemId, sandboxId);
70
+ if (!item) {
71
+ throw new Error('工作节点不存在或不属于当前沙盘');
72
+ }
73
+ }
74
+ function touchSandbox(sandboxId) {
75
+ db.prepare('UPDATE sandboxes SET updated_at = ? WHERE id = ?').run(now(), sandboxId);
76
+ }
77
+ function saveOperation(sandboxId, operationType, dataBefore, dataAfter) {
78
+ db.prepare('INSERT INTO operations (id, sandbox_id, operation_type, data_before, data_after, created_at) VALUES (?, ?, ?, ?, ?, ?)')
79
+ .run(uuidv4(), sandboxId, operationType, dataBefore ? JSON.stringify(dataBefore) : null, dataAfter ? JSON.stringify(dataAfter) : null, now());
80
+ }
81
+ function defaultsByType(entityType) {
82
+ if (entityType === 'issue') {
83
+ return { status: 'open', priority: 'medium', assignee: '', capability_type: '' };
84
+ }
85
+ if (entityType === 'capability') {
86
+ return { status: 'building', priority: '', assignee: '', capability_type: 'tool' };
87
+ }
88
+ return { status: '', priority: '', assignee: '', capability_type: '' };
89
+ }
90
+ function assertEntityType(value) {
91
+ if (value !== 'issue' && value !== 'knowledge' && value !== 'capability') {
92
+ throw new Error('entity_type 必须是 issue/knowledge/capability');
93
+ }
94
+ }
95
+ export function listNodeEntities(params) {
96
+ const rows = readAll().filter((row) => row.sandbox_id === params.sandbox_id);
97
+ const byWorkItem = params.work_item_id ? rows.filter((row) => row.work_item_id === params.work_item_id) : rows;
98
+ const byType = params.entity_type ? byWorkItem.filter((row) => row.entity_type === params.entity_type) : byWorkItem;
99
+ return byType.sort((a, b) => b.updated_at.localeCompare(a.updated_at));
100
+ }
101
+ export function getNodeEntityById(id) {
102
+ return readAll().find((row) => row.id === id);
103
+ }
104
+ export function createNodeEntity(input) {
105
+ assertEntityType(String(input.entity_type || ''));
106
+ assertWorkItemBelongsToSandbox(input.work_item_id, input.sandbox_id);
107
+ if (!input.title || !input.title.trim()) {
108
+ throw new Error('title 不能为空');
109
+ }
110
+ const ts = now();
111
+ const defaults = defaultsByType(input.entity_type);
112
+ const row = {
113
+ id: uuidv4(),
114
+ sandbox_id: input.sandbox_id,
115
+ work_item_id: input.work_item_id,
116
+ entity_type: input.entity_type,
117
+ title: input.title.trim(),
118
+ content_md: String(input.content_md || '').trim(),
119
+ status: String(input.status ?? defaults.status),
120
+ priority: String(input.priority ?? defaults.priority),
121
+ assignee: String(input.assignee ?? defaults.assignee),
122
+ capability_type: String(input.capability_type ?? defaults.capability_type),
123
+ links: normalizeLinks(input.links),
124
+ created_at: ts,
125
+ updated_at: ts,
126
+ };
127
+ const all = readAll();
128
+ all.push(row);
129
+ writeAll(all);
130
+ touchSandbox(input.sandbox_id);
131
+ saveOperation(input.sandbox_id, 'create', null, { record_type: 'node_entity', ...row });
132
+ return row;
133
+ }
134
+ export function updateNodeEntity(id, patch) {
135
+ const all = readAll();
136
+ const idx = all.findIndex((row) => row.id === id);
137
+ if (idx < 0) {
138
+ throw new Error('记录不存在');
139
+ }
140
+ const before = all[idx];
141
+ const after = {
142
+ ...before,
143
+ title: patch.title !== undefined ? String(patch.title).trim() : before.title,
144
+ content_md: patch.content_md !== undefined ? String(patch.content_md) : before.content_md,
145
+ status: patch.status !== undefined ? String(patch.status) : before.status,
146
+ priority: patch.priority !== undefined ? String(patch.priority) : before.priority,
147
+ assignee: patch.assignee !== undefined ? String(patch.assignee) : before.assignee,
148
+ capability_type: patch.capability_type !== undefined ? String(patch.capability_type) : before.capability_type,
149
+ links: patch.links !== undefined ? normalizeLinks(patch.links) : before.links,
150
+ updated_at: now(),
151
+ };
152
+ all[idx] = after;
153
+ writeAll(all);
154
+ touchSandbox(after.sandbox_id);
155
+ saveOperation(after.sandbox_id, 'update', { record_type: 'node_entity', ...before }, { record_type: 'node_entity', ...after });
156
+ return after;
157
+ }
158
+ export function deleteNodeEntity(id) {
159
+ const all = readAll();
160
+ const idx = all.findIndex((row) => row.id === id);
161
+ if (idx < 0) {
162
+ throw new Error('记录不存在');
163
+ }
164
+ const before = all[idx];
165
+ all.splice(idx, 1);
166
+ writeAll(all);
167
+ touchSandbox(before.sandbox_id);
168
+ saveOperation(before.sandbox_id, 'delete', { record_type: 'node_entity', ...before }, null);
169
+ return before;
170
+ }
171
+ export function getSandboxEntityStats(sandboxId) {
172
+ const rows = listNodeEntities({ sandbox_id: sandboxId });
173
+ const issueRows = rows.filter((row) => row.entity_type === 'issue');
174
+ const knowledgeRows = rows.filter((row) => row.entity_type === 'knowledge');
175
+ const capabilityRows = rows.filter((row) => row.entity_type === 'capability');
176
+ return {
177
+ total: rows.length,
178
+ issue: {
179
+ total: issueRows.length,
180
+ open: issueRows.filter((row) => row.status === 'open').length,
181
+ in_progress: issueRows.filter((row) => row.status === 'in_progress').length,
182
+ blocked: issueRows.filter((row) => row.status === 'blocked').length,
183
+ resolved: issueRows.filter((row) => row.status === 'resolved').length,
184
+ closed: issueRows.filter((row) => row.status === 'closed').length,
185
+ },
186
+ knowledge: {
187
+ total: knowledgeRows.length,
188
+ },
189
+ capability: {
190
+ total: capabilityRows.length,
191
+ building: capabilityRows.filter((row) => row.status === 'building').length,
192
+ ready: capabilityRows.filter((row) => row.status === 'ready').length,
193
+ },
194
+ };
195
+ }
196
+ //# sourceMappingURL=nodeEntitiesStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodeEntitiesStore.js","sourceRoot":"","sources":["../../src/server/nodeEntitiesStore.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,7 @@ export interface PendingAction {
17
17
  export interface AIAction {
18
18
  thought: string;
19
19
  action: ActionType;
20
+ recovery_source?: 'embedded_response' | 'partial_batch' | 'partial_single';
20
21
  action_type?: string;
21
22
  action_input?: Record<string, unknown>;
22
23
  batch_actions?: {
@@ -38,6 +39,7 @@ export interface AIAction {
38
39
  success_count: number;
39
40
  failure_count: number;
40
41
  failures?: string[];
42
+ details?: string[];
41
43
  };
42
44
  pending_action?: PendingAction;
43
45
  }
@@ -50,6 +52,7 @@ export interface ConversationContext {
50
52
  }[];
51
53
  pendingAction?: PendingAction | null;
52
54
  }
55
+ export declare function coerceClarifyForChildCreateOptionalFields(action: AIAction): AIAction;
53
56
  export declare function buildSystemPrompt(context: ConversationContext): string;
54
57
  export declare function parseAIResponse(content: string): AIAction;
55
58
  export declare function processMessage(userMessage: string, context: ConversationContext): Promise<AIAction>;
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/server/react/agent.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAE9E,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,aAAa,CAAC,EAAE;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACvC,EAAE,CAAC;IACJ,aAAa,CAAC,EAAE;QACd,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC,EAAE,CAAC;CACL;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,UAAU,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,aAAa,CAAC,EAAE;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACvC,EAAE,CAAC;IACJ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE;QACd,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC,EAAE,CAAC;IACJ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE;QACjB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;QACzC,KAAK,EAAE,MAAM,CAAC;QACd,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;IACF,cAAc,CAAC,EAAE,aAAa,CAAC;CAChC;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC7C,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;CACtC;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAStE;AAsKD,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAqDzD;AAID,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,QAAQ,CAAC,CAwBnB"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/server/react/agent.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAE9E,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,aAAa,CAAC,EAAE;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACvC,EAAE,CAAC;IACJ,aAAa,CAAC,EAAE;QACd,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC,EAAE,CAAC;CACL;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,UAAU,CAAC;IACnB,eAAe,CAAC,EAAE,mBAAmB,GAAG,eAAe,GAAG,gBAAgB,CAAC;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,aAAa,CAAC,EAAE;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACvC,EAAE,CAAC;IACJ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE;QACd,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC,EAAE,CAAC;IACJ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE;QACjB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;QACzC,KAAK,EAAE,MAAM,CAAC;QACd,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IACF,cAAc,CAAC,EAAE,aAAa,CAAC;CAChC;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC7C,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;CACtC;AAaD,wBAAgB,yCAAyC,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,CA4CpF;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAStE;AA6PD,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CA0DzD;AAID,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,QAAQ,CAAC,CAwBnB"}
@@ -1,6 +1,56 @@
1
1
  import { getToolDefinitions, getSandboxInfo } from './tools.js';
2
2
  import { buildSystemPromptTemplate } from './prompts.js';
3
3
  import { callAiMessages } from '../aiClient.js';
4
+ function isChildCreateWorkItemInput(input) {
5
+ if (!input)
6
+ return false;
7
+ const parentId = String(input.parent_id || '').trim();
8
+ return parentId.length > 0;
9
+ }
10
+ function isOptionalFieldClarify(text) {
11
+ const normalized = text.trim();
12
+ return /(负责人|assignee|描述|description|优先级|priority)/i.test(normalized);
13
+ }
14
+ export function coerceClarifyForChildCreateOptionalFields(action) {
15
+ if (action.action !== 'clarify') {
16
+ return action;
17
+ }
18
+ const clarifyText = `${String(action.response || '')} ${String(action.thought || '')}`.trim();
19
+ if (!isOptionalFieldClarify(clarifyText)) {
20
+ return action;
21
+ }
22
+ const pending = action.pending_action;
23
+ if (!pending) {
24
+ return action;
25
+ }
26
+ const pendingBatch = Array.isArray(pending.batch_actions) ? pending.batch_actions : [];
27
+ if (pendingBatch.length > 0) {
28
+ const childCreates = pendingBatch.filter((item) => item.action_type === 'create_work_item' && isChildCreateWorkItemInput(item.action_input));
29
+ if (childCreates.length === pendingBatch.length) {
30
+ return {
31
+ ...action,
32
+ action: 'done',
33
+ batch_actions: pendingBatch,
34
+ action_type: undefined,
35
+ action_input: undefined,
36
+ response: undefined,
37
+ observation: '已忽略可选字段追问,继续批量创建子节点',
38
+ };
39
+ }
40
+ return action;
41
+ }
42
+ if (pending.action_type === 'create_work_item' && isChildCreateWorkItemInput(pending.action_input)) {
43
+ return {
44
+ ...action,
45
+ action: 'done',
46
+ action_type: pending.action_type,
47
+ action_input: pending.action_input,
48
+ response: undefined,
49
+ observation: '已忽略可选字段追问,继续创建子节点',
50
+ };
51
+ }
52
+ return action;
53
+ }
4
54
  export function buildSystemPrompt(context) {
5
55
  const toolDefs = getToolDefinitions();
6
56
  let contextInfo = '';
@@ -13,6 +63,7 @@ function normalizeParsedAction(parsed) {
13
63
  return {
14
64
  thought: String(parsed.thought || ''),
15
65
  action: parsed.action || 'response',
66
+ recovery_source: parsed.recovery_source,
16
67
  action_type: parsed.action_type,
17
68
  action_input: parsed.action_input,
18
69
  batch_actions: parsed.batch_actions,
@@ -142,15 +193,90 @@ function recoverBatchActionsFromPartialJson(text) {
142
193
  return {
143
194
  thought: '已从截断响应中恢复批量动作',
144
195
  action: 'done',
196
+ recovery_source: 'partial_batch',
145
197
  batch_actions: batchActions,
146
198
  observation: `已恢复 ${batchActions.length} 个批量动作(原始响应疑似被截断)`,
147
199
  };
148
200
  }
201
+ function recoverSingleDoneFromPartialJson(text) {
202
+ if (!text.includes('"action":"done"') || !text.includes('"action_type"') || !text.includes('"action_input"')) {
203
+ return null;
204
+ }
205
+ const actionTypeMatch = text.match(/"action_type"\s*:\s*"([^"]+)"/);
206
+ if (!actionTypeMatch?.[1]) {
207
+ return null;
208
+ }
209
+ const inputKeyIndex = text.indexOf('"action_input"');
210
+ if (inputKeyIndex < 0) {
211
+ return null;
212
+ }
213
+ const inputObjectStart = text.indexOf('{', inputKeyIndex);
214
+ if (inputObjectStart < 0) {
215
+ return null;
216
+ }
217
+ const inputObjectText = extractBalancedObject(text, inputObjectStart);
218
+ if (!inputObjectText) {
219
+ return null;
220
+ }
221
+ let actionInput;
222
+ try {
223
+ actionInput = JSON.parse(inputObjectText);
224
+ }
225
+ catch {
226
+ return null;
227
+ }
228
+ const observationMatch = text.match(/"observation"\s*:\s*"([^"]*)"/);
229
+ return {
230
+ thought: '已从截断响应中恢复单个动作',
231
+ action: 'done',
232
+ recovery_source: 'partial_single',
233
+ action_type: actionTypeMatch[1],
234
+ action_input: actionInput,
235
+ observation: observationMatch?.[1] || '已从截断响应恢复动作并继续执行',
236
+ };
237
+ }
238
+ function recoverEmbeddedActionFromResponseField(action) {
239
+ if (action.action !== 'response' || !action.response) {
240
+ return action;
241
+ }
242
+ const embedded = String(action.response).replace(/```json|```/g, '').trim();
243
+ if (!embedded.startsWith('{')) {
244
+ return action;
245
+ }
246
+ try {
247
+ const parsed = JSON.parse(embedded);
248
+ const normalized = normalizeParsedAction(parsed);
249
+ if (normalized.action !== 'response') {
250
+ return {
251
+ ...normalized,
252
+ recovery_source: normalized.recovery_source || 'embedded_response',
253
+ };
254
+ }
255
+ }
256
+ catch {
257
+ // ignore and continue with recovery
258
+ }
259
+ const recoveredBatch = recoverBatchActionsFromPartialJson(embedded);
260
+ if (recoveredBatch) {
261
+ return {
262
+ ...recoveredBatch,
263
+ recovery_source: 'embedded_response',
264
+ };
265
+ }
266
+ const recoveredSingle = recoverSingleDoneFromPartialJson(embedded);
267
+ if (recoveredSingle) {
268
+ return {
269
+ ...recoveredSingle,
270
+ recovery_source: 'embedded_response',
271
+ };
272
+ }
273
+ return action;
274
+ }
149
275
  export function parseAIResponse(content) {
150
276
  const cleaned = content.replace(/```json|```/g, '').trim();
151
277
  try {
152
278
  const parsed = JSON.parse(cleaned);
153
- return normalizeParsedAction(parsed);
279
+ return recoverEmbeddedActionFromResponseField(normalizeParsedAction(parsed));
154
280
  }
155
281
  catch {
156
282
  const objectChunks = extractJsonObjects(cleaned);
@@ -189,6 +315,10 @@ export function parseAIResponse(content) {
189
315
  if (recovered) {
190
316
  return recovered;
191
317
  }
318
+ const recoveredSingle = recoverSingleDoneFromPartialJson(cleaned);
319
+ if (recoveredSingle) {
320
+ return recoveredSingle;
321
+ }
192
322
  return {
193
323
  thought: '解析响应失败',
194
324
  action: 'response',
@@ -206,7 +336,7 @@ export async function processMessage(userMessage, context) {
206
336
  const aiResponse = await callAiMessages(messages, {
207
337
  convertSystemToUserForMiniMax: true
208
338
  });
209
- const action = parseAIResponse(aiResponse);
339
+ const action = coerceClarifyForChildCreateOptionalFields(parseAIResponse(aiResponse));
210
340
  if (action.action === 'clarify' || action.action === 'stop' || action.action === 'response' || action.action === 'confirm' || action.action === 'done') {
211
341
  return action;
212
342
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/server/react/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/server/react/agent.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export declare const PROMPT_SECTIONS: {
5
5
  CONTEXT_INFO: (contextInfo: string) => string;
6
6
  PENDING_ACTION: (pendingAction: PendingAction) => string;
7
7
  BASE_RULES: string;
8
+ NODE_CONTEXT_RULES: string;
8
9
  OUTPUT_FORMAT: string;
9
10
  CLARIFY_MODE: string;
10
11
  START: (sandboxId?: string) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/server/react/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,eAAO,MAAM,eAAe;;sBAGR,MAAM;gCAEI,MAAM;oCAEF,aAAa;;;;wBAmEzB,MAAM;CAC3B,CAAC;AAEF,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,aAAa,GAAG,IAAI,EACnC,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,CAsBR"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/server/react/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,eAAO,MAAM,eAAe;;sBAGR,MAAM;gCAEI,MAAM;oCAEF,aAAa;;;;;wBAyFzB,MAAM;CAC3B,CAAC;AAEF,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,aAAa,GAAG,IAAI,EACnC,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,CAuBR"}
@@ -1,5 +1,5 @@
1
1
  export const PROMPT_SECTIONS = {
2
- ROLE: `你是一个智能工作助手,帮助用户管理沙盘中的工作项。`,
2
+ ROLE: `你是一个智能工作助手,帮助用户管理沙盘中的工作项与节点知识资产。`,
3
3
  TOOLS: (toolDefs) => `## 可用工具\n${toolDefs}`,
4
4
  CONTEXT_INFO: (contextInfo) => `## 当前沙盘信息\n${contextInfo}\n`,
5
5
  PENDING_ACTION: (pendingAction) => `## 待执行操作(来自上一轮对话)
@@ -16,7 +16,28 @@ export const PROMPT_SECTIONS = {
16
16
  2. **更新/删除任务**:必须使用"任务ID对照表"中的ID作为task_id
17
17
  3. 对照表中的ID格式为:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
18
18
  4. 遇到“每个节点/全部节点/批量”类指令时,优先返回 batch_actions 批量执行协议
19
- 5. assignee、priority、description 都是可选字段,缺失时直接执行,不要为可选字段发起 clarify`,
19
+ 5. assignee、priority、description 都是可选字段,缺失时直接执行,不要为可选字段发起 clarify
20
+ 6. issue/knowledge/capability 都是**挂在工作节点下**,必须提供 work_item_id,不要挂在 sandbox 根上
21
+ 7. 如果用户消息包含 [NODE_CONTEXT] ... [/NODE_CONTEXT] 且 node_type=work_item:当用户说“增加子节点/在下面新增/添加孩子节点”等,默认 parent_id=node_id,**不要再追问父节点是谁**`,
22
+ NODE_CONTEXT_RULES: `## NODE_CONTEXT 解析规则(快捷提问场景)
23
+
24
+ 当用户消息里出现以下结构时:
25
+ [NODE_CONTEXT]
26
+ sandbox_id=...
27
+ node_type=work_item
28
+ node_id=...
29
+ ...
30
+ [/NODE_CONTEXT]
31
+
32
+ 请按下面规则执行:
33
+ 1. 该 node_id 就是“当前选中节点”坐标。
34
+ 2. 用户表达“增加子节点/在下面新增/挂到当前节点下”时,直接将 parent_id 设为 node_id。
35
+ 3. 若用户同时给了多个名称(例如 A/B/C),优先输出 done + batch_actions,一次性创建。
36
+ 4. 只在以下情况使用 clarify:
37
+ - 缺少必填字段且无法从上下文推断(例如完全没有任务名称)
38
+ - 用户明确说“不是当前节点,挂到XX下面”,但XX无法定位
39
+ 5. 对“责任人/优先级/描述”等可选字段,缺失时直接执行,不追问。
40
+ 6. 对“增加子节点”场景(单条或批量)禁止询问“是否补充负责人/描述/优先级”。`,
20
41
  OUTPUT_FORMAT: `## 输出格式
21
42
 
22
43
  {
@@ -52,7 +73,7 @@ clarify 模式是"先询问、后执行"的两阶段模式:
52
73
 
53
74
  - **返回 done 时必须包含 action_type 和 action_input!** 如果省略,工具不会被执行!
54
75
  - **批量执行时返回 done + batch_actions**,不要拆成多轮对话
55
- - 对“在X下面增加A/B/C”这类指令,若 parent_id 已明确,直接返回 done + batch_actions,不要追问描述
76
+ - 对“在X下面增加A/B/C”这类指令,若 parent_id 已明确,直接返回 done + batch_actions,不要追问负责人/优先级/描述
56
77
  - 即使是"不需要"的情况,也要返回完整的 action_type 和 action_input
57
78
  - pending_action 是上下文参考,返回 done 时直接使用或修改它
58
79
 
@@ -78,7 +99,7 @@ export function buildSystemPromptTemplate(toolDefs, contextInfo, pendingAction,
78
99
  if (pendingAction) {
79
100
  parts.push(PROMPT_SECTIONS.PENDING_ACTION(pendingAction));
80
101
  }
81
- parts.push(PROMPT_SECTIONS.BASE_RULES, PROMPT_SECTIONS.OUTPUT_FORMAT, PROMPT_SECTIONS.CLARIFY_MODE, PROMPT_SECTIONS.START(sandboxId));
102
+ parts.push(PROMPT_SECTIONS.BASE_RULES, PROMPT_SECTIONS.NODE_CONTEXT_RULES, PROMPT_SECTIONS.OUTPUT_FORMAT, PROMPT_SECTIONS.CLARIFY_MODE, PROMPT_SECTIONS.START(sandboxId));
82
103
  return parts.join('\n\n');
83
104
  }
84
105
  //# sourceMappingURL=prompts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/server/react/prompts.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,IAAI,EAAE,2BAA2B;IAEjC,KAAK,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,YAAY,QAAQ,EAAE;IAEnD,YAAY,EAAE,CAAC,WAAmB,EAAE,EAAE,CAAC,cAAc,WAAW,IAAI;IAEpE,cAAc,EAAE,CAAC,aAA4B,EAAE,EAAE,CAAC;;UAE1C,aAAa,CAAC,WAAW;UACzB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,YAAY,CAAC;;;;6CAIP;IAE3C,UAAU,EAAE;;;;;;kEAMoD;IAEhE,aAAa,EAAE;;;;;;;;;;;;EAYf;IAEA,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oGAkCoF;IAElG,KAAK,EAAE,CAAC,SAAkB,EAAE,EAAE,CAAC,UAAU,SAAS,CAAC,CAAC,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;CACrF,CAAC;AAEF,MAAM,UAAU,yBAAyB,CACvC,QAAgB,EAChB,WAAmB,EACnB,aAAmC,EACnC,SAAkB;IAElB,MAAM,KAAK,GAAa;QACtB,eAAe,CAAC,IAAI;QACpB,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC;KAChC,CAAC;IAEF,IAAI,WAAW,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,aAAa,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,IAAI,CACR,eAAe,CAAC,UAAU,EAC1B,eAAe,CAAC,aAAa,EAC7B,eAAe,CAAC,YAAY,EAC5B,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,CACjC,CAAC;IAEF,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/server/react/prompts.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,IAAI,EAAE,kCAAkC;IAExC,KAAK,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,YAAY,QAAQ,EAAE;IAEnD,YAAY,EAAE,CAAC,WAAmB,EAAE,EAAE,CAAC,cAAc,WAAW,IAAI;IAEpE,cAAc,EAAE,CAAC,aAA4B,EAAE,EAAE,CAAC;;UAE1C,aAAa,CAAC,WAAW;UACzB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,YAAY,CAAC;;;;6CAIP;IAE3C,UAAU,EAAE;;;;;;;;mIAQqH;IAEjI,kBAAkB,EAAE;;;;;;;;;;;;;;;;;;0CAkBoB;IAExC,aAAa,EAAE;;;;;;;;;;;;EAYf;IAEA,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oGAkCoF;IAElG,KAAK,EAAE,CAAC,SAAkB,EAAE,EAAE,CAAC,UAAU,SAAS,CAAC,CAAC,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;CACrF,CAAC;AAEF,MAAM,UAAU,yBAAyB,CACvC,QAAgB,EAChB,WAAmB,EACnB,aAAmC,EACnC,SAAkB;IAElB,MAAM,KAAK,GAAa;QACtB,eAAe,CAAC,IAAI;QACpB,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC;KAChC,CAAC;IAEF,IAAI,WAAW,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,aAAa,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,IAAI,CACR,eAAe,CAAC,UAAU,EAC1B,eAAe,CAAC,kBAAkB,EAClC,eAAe,CAAC,aAAa,EAC7B,eAAe,CAAC,YAAY,EAC5B,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,CACjC,CAAC;IAEF,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/server/react/tools.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,eAAO,MAAM,KAAK,EAAE,cAAc,EA+CjC,CAAC;AAEF,wBAAgB,kBAAkB,IAAI,MAAM,CAU3C;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAsBxD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,QAAQ,CAAA;CAAE,CA0BzD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,QAAQ,CAAA;CAAE,CA6BzD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAiBpF;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,QAAQ,CAAA;CAAE,CA0B/H;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAgD/H"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/server/react/tools.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,eAAO,MAAM,KAAK,EAAE,cAAc,EA2FjC,CAAC;AAEF,wBAAgB,kBAAkB,IAAI,MAAM,CAU3C;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAsBxD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,QAAQ,CAAA;CAAE,CA0BzD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,QAAQ,CAAA;CAAE,CA6BzD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAiBpF;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,QAAQ,CAAA;CAAE,CA0B/H;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CA4G/H"}