dsh-data-domain-knowledge 0.1.1-alpha.2 → 0.1.1-alpha.3

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 (189) hide show
  1. package/README.md +23 -16
  2. package/lib/client.js +596 -841
  3. package/lib/contract-refs.d.ts +0 -1
  4. package/lib/doc-page.js +7 -7
  5. package/lib/pages.js +928 -1145
  6. package/lib/types/agent-behavior-rules.d.ts.map +1 -1
  7. package/lib/types/agent-behavior-rules.js +1 -2
  8. package/lib/types/agent-behavior-rules.js.map +1 -1
  9. package/lib/types/axis-contract.js +1 -1
  10. package/lib/types/axis-contract.js.map +1 -1
  11. package/lib/types/card-organize.d.ts +2 -1
  12. package/lib/types/card-organize.d.ts.map +1 -1
  13. package/lib/types/card-organize.js +5 -3
  14. package/lib/types/card-organize.js.map +1 -1
  15. package/lib/types/config-schema.d.ts +1 -1
  16. package/lib/types/config-schema.js +1 -1
  17. package/lib/types/convert/host.d.ts +2 -3
  18. package/lib/types/convert/host.d.ts.map +1 -1
  19. package/lib/types/convert/host.js +5 -2
  20. package/lib/types/convert/host.js.map +1 -1
  21. package/lib/types/convert/ingest.d.ts +2 -0
  22. package/lib/types/convert/ingest.d.ts.map +1 -1
  23. package/lib/types/convert/ingest.js +1 -0
  24. package/lib/types/convert/ingest.js.map +1 -1
  25. package/lib/types/diagnosis/types.d.ts +1 -1
  26. package/lib/types/diagnosis/types.js +1 -1
  27. package/lib/types/images.js +1 -1
  28. package/lib/types/index.d.ts +0 -4
  29. package/lib/types/index.d.ts.map +1 -1
  30. package/lib/types/index.js +30 -41
  31. package/lib/types/index.js.map +1 -1
  32. package/lib/types/knowledge-contract.d.ts +6 -0
  33. package/lib/types/knowledge-contract.d.ts.map +1 -1
  34. package/lib/types/knowledge-contract.js +6 -2
  35. package/lib/types/knowledge-contract.js.map +1 -1
  36. package/lib/types/layout.d.ts +9 -26
  37. package/lib/types/layout.d.ts.map +1 -1
  38. package/lib/types/layout.js +10 -28
  39. package/lib/types/layout.js.map +1 -1
  40. package/lib/types/materialize-snapshot.d.ts +5 -0
  41. package/lib/types/materialize-snapshot.d.ts.map +1 -1
  42. package/lib/types/migrate.d.ts +3 -1
  43. package/lib/types/migrate.d.ts.map +1 -1
  44. package/lib/types/migrate.js +3 -1
  45. package/lib/types/migrate.js.map +1 -1
  46. package/lib/types/organize-contract.d.ts.map +1 -1
  47. package/lib/types/organize-contract.js +2 -1
  48. package/lib/types/organize-contract.js.map +1 -1
  49. package/lib/types/pipeline/engine.d.ts +1 -0
  50. package/lib/types/pipeline/engine.d.ts.map +1 -1
  51. package/lib/types/pipeline/engine.js +9 -3
  52. package/lib/types/pipeline/engine.js.map +1 -1
  53. package/lib/types/pipeline/types.d.ts +6 -0
  54. package/lib/types/pipeline/types.d.ts.map +1 -1
  55. package/lib/types/pipeline/types.js.map +1 -1
  56. package/lib/types/present.d.ts +1 -1
  57. package/lib/types/present.js +1 -1
  58. package/lib/types/preset-ids.d.ts +0 -1
  59. package/lib/types/preset-ids.d.ts.map +1 -1
  60. package/lib/types/preset-ids.js +0 -3
  61. package/lib/types/preset-ids.js.map +1 -1
  62. package/lib/types/query-analysis.d.ts +0 -5
  63. package/lib/types/query-analysis.d.ts.map +1 -1
  64. package/lib/types/query-analysis.js +0 -16
  65. package/lib/types/query-analysis.js.map +1 -1
  66. package/lib/types/recall-delivery.d.ts +36 -0
  67. package/lib/types/recall-delivery.d.ts.map +1 -0
  68. package/lib/types/recall-delivery.js +16 -0
  69. package/lib/types/recall-delivery.js.map +1 -0
  70. package/lib/types/runtime.d.ts +26 -12
  71. package/lib/types/runtime.d.ts.map +1 -1
  72. package/lib/types/runtime.js +231 -106
  73. package/lib/types/runtime.js.map +1 -1
  74. package/lib/types/settings-volatile.d.ts +0 -7
  75. package/lib/types/settings-volatile.d.ts.map +1 -1
  76. package/lib/types/settings-volatile.js +0 -7
  77. package/lib/types/settings-volatile.js.map +1 -1
  78. package/lib/types/source-identity.d.ts +3 -0
  79. package/lib/types/source-identity.d.ts.map +1 -0
  80. package/lib/types/source-identity.js +5 -0
  81. package/lib/types/source-identity.js.map +1 -0
  82. package/lib/types/store/axis-references.d.ts.map +1 -1
  83. package/lib/types/store/axis-references.js +5 -3
  84. package/lib/types/store/axis-references.js.map +1 -1
  85. package/lib/types/store/knowledge-db.d.ts +1 -1
  86. package/lib/types/store/knowledge-db.d.ts.map +1 -1
  87. package/lib/types/store/knowledge-db.js +16 -2
  88. package/lib/types/store/knowledge-db.js.map +1 -1
  89. package/lib/types/types.d.ts +5 -4
  90. package/lib/types/types.d.ts.map +1 -1
  91. package/lib/types/types.js +6 -3
  92. package/lib/types/types.js.map +1 -1
  93. package/lib/types/wiki-availability.d.ts +11 -0
  94. package/lib/types/wiki-availability.d.ts.map +1 -0
  95. package/lib/types/wiki-availability.js +39 -0
  96. package/lib/types/wiki-availability.js.map +1 -0
  97. package/lib/types/wiki-finalize.d.ts +4 -2
  98. package/lib/types/wiki-finalize.d.ts.map +1 -1
  99. package/lib/types/wiki-finalize.js +9 -27
  100. package/lib/types/wiki-finalize.js.map +1 -1
  101. package/lib/types/wiki-links.d.ts +35 -0
  102. package/lib/types/wiki-links.d.ts.map +1 -0
  103. package/lib/types/wiki-links.js +129 -0
  104. package/lib/types/wiki-links.js.map +1 -0
  105. package/package.json +16 -16
  106. package/scripts/doctor.mjs +0 -7
  107. package/scripts/setup-embedding.sh +0 -0
  108. package/src/agent-behavior-rules.ts +1 -2
  109. package/src/axis-contract.ts +1 -1
  110. package/src/card-organize.ts +5 -3
  111. package/src/client/AttributionEventGuide.tsx +3 -3
  112. package/src/client/AxisMatrix.tsx +86 -19
  113. package/src/client/DirectoryPicker.tsx +0 -2
  114. package/src/client/GuideArchitectureCanvas.tsx +5 -12
  115. package/src/client/ImportFilesDialog.tsx +1 -0
  116. package/src/client/InfoHint.tsx +1 -1
  117. package/src/client/KnowledgeBaseTab.tsx +113 -39
  118. package/src/client/KnowledgePanel.tsx +16 -9
  119. package/src/client/OperationLogTab.tsx +1 -1
  120. package/src/client/RecallPanel.tsx +5 -16
  121. package/src/client/TabGuide.tsx +3 -7
  122. package/src/client/WikiFlowPanel.tsx +10 -11
  123. package/src/client/arch/NodeLogicPanel.tsx +3 -3
  124. package/src/client/arch/model.ts +5 -113
  125. package/src/client/architecture.css +1 -1
  126. package/src/client/architecture.tsx +13 -27
  127. package/src/client/attribution/AttributionTab.tsx +141 -10
  128. package/src/client/pages.css +2 -2
  129. package/src/client/pages.tsx +4 -11
  130. package/src/client/styles.css +15 -96
  131. package/src/config-schema.ts +1 -1
  132. package/src/convert/host.ts +7 -5
  133. package/src/convert/ingest.ts +3 -0
  134. package/src/diagnosis/types.ts +1 -1
  135. package/src/images.ts +1 -1
  136. package/src/index.ts +27 -49
  137. package/src/knowledge-contract.ts +7 -2
  138. package/src/layout.ts +10 -32
  139. package/src/materialize-snapshot.ts +1 -0
  140. package/src/migrate.ts +3 -1
  141. package/src/organize-contract.ts +2 -1
  142. package/src/pipeline/engine.ts +9 -3
  143. package/src/pipeline/types.ts +2 -0
  144. package/src/present.ts +1 -1
  145. package/src/preset-ids.ts +0 -4
  146. package/src/query-analysis.ts +0 -20
  147. package/src/recall-delivery.ts +19 -0
  148. package/src/runtime.ts +220 -102
  149. package/src/settings-volatile.ts +0 -7
  150. package/src/source-identity.ts +4 -0
  151. package/src/store/axis-references.ts +5 -3
  152. package/src/store/knowledge-db.ts +14 -2
  153. package/src/types.ts +6 -4
  154. package/src/wiki-availability.ts +37 -0
  155. package/src/wiki-finalize.ts +9 -25
  156. package/src/wiki-links.ts +120 -0
  157. package/lib/types/intent/engine.d.ts +0 -122
  158. package/lib/types/intent/engine.d.ts.map +0 -1
  159. package/lib/types/intent/engine.js +0 -488
  160. package/lib/types/intent/engine.js.map +0 -1
  161. package/lib/types/intent/host.d.ts +0 -68
  162. package/lib/types/intent/host.d.ts.map +0 -1
  163. package/lib/types/intent/host.js +0 -249
  164. package/lib/types/intent/host.js.map +0 -1
  165. package/lib/types/intent/scope.d.ts +0 -25
  166. package/lib/types/intent/scope.d.ts.map +0 -1
  167. package/lib/types/intent/scope.js +0 -116
  168. package/lib/types/intent/scope.js.map +0 -1
  169. package/lib/types/intent/store.d.ts +0 -33
  170. package/lib/types/intent/store.d.ts.map +0 -1
  171. package/lib/types/intent/store.js +0 -239
  172. package/lib/types/intent/store.js.map +0 -1
  173. package/lib/types/intent/tools.d.ts +0 -62
  174. package/lib/types/intent/tools.d.ts.map +0 -1
  175. package/lib/types/intent/tools.js +0 -130
  176. package/lib/types/intent/tools.js.map +0 -1
  177. package/lib/types/intent/types.d.ts +0 -170
  178. package/lib/types/intent/types.d.ts.map +0 -1
  179. package/lib/types/intent/types.js +0 -56
  180. package/lib/types/intent/types.js.map +0 -1
  181. package/src/client/IntentLogic.tsx +0 -192
  182. package/src/client/IntentTab.tsx +0 -343
  183. package/src/intent/README.md +0 -42
  184. package/src/intent/engine.ts +0 -515
  185. package/src/intent/host.ts +0 -315
  186. package/src/intent/scope.ts +0 -125
  187. package/src/intent/store.ts +0 -218
  188. package/src/intent/tools.ts +0 -154
  189. package/src/intent/types.ts +0 -229
@@ -1,249 +0,0 @@
1
- import { envelopeFailure, envelopeSuccess } from '#contracts';
2
- import { DEFAULT_INTENT_SETTINGS } from './types.js';
3
- import { IntentEngine } from './engine.js';
4
- import { appendIntentRecord, readIntentRecords } from './store.js';
5
- import { lineageOf, sessionKeyOf } from './tools.js';
6
- import { isIntentAgentSession, isDataIntentCandidate, isDataIntentPayload, isDataToolName, isExplicitNonDataIntentPayload } from './scope.js';
7
- export * from './types.js';
8
- export * from './engine.js';
9
- export * from './tools.js';
10
- /** Session intent audit endpoints. */
11
- export const INTENT_MOUNT_PATH = '/intent';
12
- /** Cordis service name consumers read to inherit the session's active task ids. */
13
- export const INTENT_SERVICE = 'titaDataAgentIntent';
14
- /**
15
- * Concatenate the text of one actual user message.
16
- *
17
- * DSH also emits `user/message` events for runtime context and system reminders. They carry
18
- * the same `content` shape, but must not replace the user's query in the intent audit.
19
- */
20
- function userText(message) {
21
- const value = message;
22
- if (typeof value?.role === 'string' && value.role !== 'user')
23
- return '';
24
- if (typeof value?.source?.kind === 'string' && value.source.kind !== 'user')
25
- return '';
26
- const content = value?.content;
27
- if (typeof content === 'string')
28
- return content;
29
- if (!Array.isArray(content))
30
- return '';
31
- return content
32
- .map(block => typeof block === 'string' ? block : block?.text)
33
- .filter((text) => typeof text === 'string')
34
- .join('\n');
35
- }
36
- export function applyIntent(ctx, deps = {}) {
37
- const engine = new IntentEngine(DEFAULT_INTENT_SETTINGS);
38
- const root = () => deps.intentRoot?.();
39
- /**
40
- * 每个知识库…不,意图不分库(见 `layout.ts` 原理 6),所以这里只有一个根。
41
- * 但**记录是会话级的**,读的时候要按 sessionKey 过滤。
42
- */
43
- /**
44
- * 留痕出口:每条记录写入 `intent/intent.db`,历史版本追加到审计表。
45
- *
46
- * 装的是**同步**闭包,内部 fire-and-forget 一个 Promise:`save()` 在记录路径上,
47
- * 让它 await 磁盘等于把「记录不拦截请求」这条契约交给磁盘可用性。写失败由
48
- * `appendIntentRecord` 自己吞掉 —— 丢一条留痕比让这一轮回答失败轻得多。
49
- */
50
- if (deps.intentRoot) {
51
- engine.store.setSink(record => { void appendIntentRecord(root(), record); });
52
- /**
53
- * 把留痕读回工作集。放在这里而不是 `apply()` 里:`apply` 每次改设置都会跑,
54
- * 而 hydrate 只该在启动时发生一次(重复 hydrate 只是重复覆盖同样的记录,
55
- * 但没必要每次都读一遍磁盘)。
56
- */
57
- void readIntentRecords(root()).then(records => {
58
- engine.store.hydrate(records);
59
- });
60
- }
61
- ctx.provide(INTENT_SERVICE, {
62
- activeLineage: (sessionKey) => engine.activeLineage(sessionKey),
63
- routingPrompt: () => engine.routingPrompt(),
64
- /**
65
- * `intent_record` 的参数落进引擎。放在这里而不是工具定义里:工具定义要与平面
66
- * 无关(`./tools.ts`),而「参数怎么变成一条记录」是引擎的事。
67
- */
68
- record: (args, exec) => {
69
- const lineage = lineageOf(args, exec);
70
- const session = exec?.agent?.session;
71
- if (session && !isIntentAgentSession(session)) {
72
- return envelopeSuccess({ skipped: true, skipReason: 'unsupported_preset' });
73
- }
74
- const sessionKey = sessionKeyOf(exec);
75
- if (!sessionKey) {
76
- return envelopeFailure({ skipped: false }, {
77
- code: 'SESSION_CONTEXT_REQUIRED',
78
- message: '意图记录只能在有活动 DSH 会话的上下文中写入。',
79
- retryable: false,
80
- });
81
- }
82
- if (isExplicitNonDataIntentPayload(args)) {
83
- engine.clearDataIntent(sessionKey);
84
- return envelopeSuccess({ skipped: true, skipReason: 'non_data_turn' });
85
- }
86
- if (!engine.isDataIntentTurn(sessionKey) && !isDataIntentPayload(args)) {
87
- return envelopeSuccess({ skipped: true, skipReason: 'non_data_turn' });
88
- }
89
- engine.markDataIntent(sessionKey);
90
- return engine.record({
91
- userInput: typeof args.user_input === 'string' ? args.user_input : '',
92
- ...(typeof args.act === 'string' ? { act: args.act } : {}),
93
- ...(typeof args.category === 'string' ? { category: args.category } : {}),
94
- ...(typeof args.predicate === 'string' ? { predicate: args.predicate } : {}),
95
- ...(args.slots !== undefined ? { slots: args.slots } : {}),
96
- ...(typeof args.confidence === 'number' ? { confidence: args.confidence } : {}),
97
- ...(Array.isArray(args.refs) ? { refs: args.refs } : {}),
98
- ...(args.relation === 'new_task' || args.relation === 'subtask_of' ? { relation: args.relation } : {}),
99
- sessionKey,
100
- ...(lineage ? { lineage } : {}),
101
- });
102
- },
103
- view: (sessionKey, includePrompt) => engine.view(sessionKey, includePrompt),
104
- });
105
- // 0023:路由提示词不再单独注入 system prompt 段,它现在是 `intent_record` 的工具
106
- // 描述(见 `./tools.ts` 的 `registerIntentTools`)。两处都放会重复占用上下文,
107
- // 而且会漂移。
108
- // Turn bookkeeping: allocate provisional ids for standard data turns and backfill
109
- // one record only when a data turn ends without one (issue 0012 decision B).
110
- const pendingInput = new Map();
111
- ctx.on('session/event', (session, event) => {
112
- const sessionKey = session.header.id;
113
- if (!isIntentAgentSession(session)) {
114
- pendingInput.delete(sessionKey);
115
- return;
116
- }
117
- if (event.type === 'user/message') {
118
- const text = userText(event.data);
119
- if (!text)
120
- return;
121
- pendingInput.set(sessionKey, text);
122
- // `turn/start` may have arrived before the user message. In that case update the
123
- // provisional state instead of leaving the record with an empty userInput.
124
- engine.updateTurnInput(sessionKey, text);
125
- if (isDataIntentCandidate(text))
126
- engine.markDataIntent(sessionKey);
127
- return;
128
- }
129
- if (event.type === 'turn/start') {
130
- const input = pendingInput.get(sessionKey) ?? '';
131
- engine.beginTurn(sessionKey, event.data.turn, input, isDataIntentCandidate(input));
132
- return;
133
- }
134
- if (event.type === 'turn/end') {
135
- engine.fallbackWhenMissing(sessionKey, event.data.turn);
136
- pendingInput.delete(sessionKey);
137
- }
138
- });
139
- /**
140
- * 实际数据工具是比关键词更可靠的后置证据。
141
- *
142
- * 例如「帮我看看这个」本身没有明显关键词,但模型随后调用了
143
- * `recall_knowledge`;这种轮次仍应在结束时补齐一条数据意图审计。
144
- */
145
- ctx.on('tools/pre-execute', (exec, next) => {
146
- const session = exec?.agent?.session;
147
- if (isIntentAgentSession(session) && isDataToolName(exec?.name)) {
148
- const sessionKey = session?.header?.id;
149
- if (typeof sessionKey === 'string')
150
- engine.markDataToolUse(sessionKey);
151
- }
152
- return next();
153
- });
154
- // Intent audit HTTP surface. It exposes stored intent data only.
155
- ctx.inject(['webServer'], webCtx => {
156
- const web = webCtx;
157
- const send = (res, status, body) => {
158
- res.statusCode = status;
159
- res.setHeader('content-type', 'application/json; charset=utf-8');
160
- res.setHeader('cache-control', 'no-store');
161
- res.end(JSON.stringify(body));
162
- };
163
- const routes = [
164
- {
165
- kind: 'exact',
166
- path: `${INTENT_MOUNT_PATH}/overview`,
167
- handler: async (_req, res) => {
168
- const overview = engine.overview();
169
- const base = root();
170
- if (base) {
171
- /**
172
- * 用**留痕**补齐工作集里已经没有的会话(0033)。
173
- *
174
- * 工作集有 600 秒 TTL,所以重启或隔一段时间回来,面板上的会话列表会
175
- * 空掉 —— 而磁盘上明明留着。这里把文件里出现过、工作集里没有的会话补上,
176
- * 数字与最后一条分类都从留痕读。工作集里已有的不覆盖:那一条带着活的
177
- * `tasks`(血缘),比从文件重算的更准。
178
- */
179
- const all = await readIntentRecords(base, undefined, 500);
180
- const seen = new Set(overview.sessions.map(session => String(session.sessionKey)));
181
- const bySession = new Map();
182
- for (const record of all) {
183
- const list = bySession.get(record.sessionKey) ?? [];
184
- list.push(record);
185
- bySession.set(record.sessionKey, list);
186
- }
187
- for (const [sessionKey, records] of bySession) {
188
- if (seen.has(sessionKey))
189
- continue;
190
- const last = records[records.length - 1];
191
- if (!last)
192
- continue;
193
- overview.sessions.push({
194
- sessionKey,
195
- recordCount: records.length,
196
- lastAt: last.updatedAt ?? last.createdAt,
197
- activeIntentId: last.id,
198
- lastAct: last.act,
199
- ...(last.category ? { lastCategory: last.category } : {}),
200
- lastRelation: last.relation,
201
- ...(last.lineage.taskId ? { activeTaskId: last.lineage.taskId } : {}),
202
- ...(last.confidence !== undefined ? { lastConfidence: last.confidence } : {}),
203
- durable: true,
204
- });
205
- }
206
- overview.sessions.sort((left, right) => String(right.lastAt ?? '').localeCompare(String(left.lastAt ?? '')));
207
- }
208
- send(res, 200, envelopeSuccess(overview));
209
- },
210
- },
211
- {
212
- kind: 'exact',
213
- path: `${INTENT_MOUNT_PATH}/store`,
214
- handler: async (req, res) => {
215
- const url = new URL(req.url ?? '/', 'http://127.0.0.1');
216
- const sessionKey = url.searchParams.get('session_key')?.trim() || 'default';
217
- const includePrompt = url.searchParams.get('include_prompt') === 'true';
218
- const requestedLimit = Number(url.searchParams.get('limit'));
219
- const recentLimit = Number.isFinite(requestedLimit) && requestedLimit > 0
220
- ? Math.min(500, Math.max(1, Math.round(requestedLimit)))
221
- : 10;
222
- const view = engine.view(sessionKey, includePrompt);
223
- const base = root();
224
- if (base) {
225
- /**
226
- * `recent` 读**留痕**而不是工作集(0033)。
227
- *
228
- * 工作集有 TTL:600 秒之后同一个会话的 `records()` 就是空数组,面板上
229
- * 「意图记录」会莫名其妙变空,而文件里明明一条不少。`tasks` /
230
- * `activeTaskId` 仍来自工作集 —— 那是**活的血缘**,不是历史。
231
- */
232
- const durable = await readIntentRecords(base, sessionKey, recentLimit);
233
- const store = view.data.store;
234
- if (store)
235
- store.recent = durable.slice(-recentLimit).reverse();
236
- }
237
- send(res, 200, view);
238
- },
239
- },
240
- ];
241
- const disposers = routes.map(route => web.webServer.register(route));
242
- return () => { for (const dispose of disposers)
243
- void dispose(); };
244
- });
245
- return {
246
- reprocess: () => undefined,
247
- };
248
- }
249
- //# sourceMappingURL=host.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"host.js","sourceRoot":"","sources":["../../../src/intent/host.ts"],"names":[],"mappings":"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"}
@@ -1,25 +0,0 @@
1
- /**
2
- * 会话意图的作用域门控。
3
- *
4
- * 意图记录只服务于 DSH 标准模式,不是宿主里每个 Agent 都要承担的全局开销。
5
- * 这里的判断只回答「这一轮是否值得进入数据意图链路」,不负责替模型判断具体的
6
- * act / category。具体分类仍由 `intent_record` 的固定提示词完成。
7
- */
8
- /** 读取 DSH Session 的 preset 标识;结构读取以兼容测试替身和旧宿主。 */
9
- export declare function sessionPresetOf(session: unknown): string | undefined;
10
- /** 标准模式参与数据 / 知识意图留痕。 */
11
- export declare function isIntentAgentSession(session: unknown): boolean;
12
- /** 判断一个工具是否代表真实的数据 / 知识工作。 */
13
- export declare function isDataToolName(name: unknown): boolean;
14
- /**
15
- * 判断用户原文是否明显进入数据域。
16
- *
17
- * 这是 gate,不是 NLU:宁可让模型通过 `category` 或实际数据工具调用补充一次,
18
- * 也不在这里生成意图分类,避免第二套分类逻辑与 `intent_record` 漂移。
19
- */
20
- export declare function isDataIntentCandidate(value: unknown): boolean;
21
- /** 模型已经给出数据分类 / predicate 时,允许这一轮进入审计。 */
22
- export declare function isDataIntentPayload(args: Record<string, unknown>): boolean;
23
- /** 模型已经明确表示这是普通对话时,覆盖廉价的文本 gate。 */
24
- export declare function isExplicitNonDataIntentPayload(args: Record<string, unknown>): boolean;
25
- //# sourceMappingURL=scope.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../../../src/intent/scope.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAuEH,kDAAkD;AAClD,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAGpE;AAED,yBAAyB;AACzB,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAE9D;AAED,8BAA8B;AAC9B,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAGrD;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAK7D;AAED,0CAA0C;AAC1C,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAS1E;AAED,oCAAoC;AACpC,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAIrF"}
@@ -1,116 +0,0 @@
1
- /**
2
- * 会话意图的作用域门控。
3
- *
4
- * 意图记录只服务于 DSH 标准模式,不是宿主里每个 Agent 都要承担的全局开销。
5
- * 这里的判断只回答「这一轮是否值得进入数据意图链路」,不负责替模型判断具体的
6
- * act / category。具体分类仍由 `intent_record` 的固定提示词完成。
7
- */
8
- import { isIntentEnabledPreset } from '../preset-ids.js';
9
- /** 数据域分类。其它分类(闲聊、运维、Agent 工程等)不应写入数据意图审计。 */
10
- const DATA_CATEGORY_IDS = new Set([
11
- 'data_analysis',
12
- 'metadata_exploration',
13
- 'data_validation',
14
- 'knowledge_consultation',
15
- 'knowledge_building',
16
- 'document_research',
17
- 'artifact_delivery',
18
- ]);
19
- /** 模型明确标成普通对话 / Agent 运维时,不因原文碰到一个数据词就强行落记录。 */
20
- const NON_DATA_CATEGORY_IDS = new Set([
21
- 'conversation',
22
- 'agent_engineering',
23
- 'tooling_operations',
24
- 'personal_assistant',
25
- 'message_collaboration',
26
- ]);
27
- const NON_DATA_ACT_IDS = new Set(['greet', 'chat']);
28
- /** 直接表示数据 / 知识链路的 predicate。 */
29
- const DATA_PREDICATE_IDS = new Set([
30
- 'query_babel_data',
31
- 'query_knowledge',
32
- 'query_source_truth',
33
- 'query_metadata',
34
- 'query_graph',
35
- 'add_source',
36
- 'propose_wiki_cards',
37
- 'rebuild_knowledge',
38
- ]);
39
- /** 发生实际数据工作的工具。意图工具本身不在这里,避免自调用激活门控。 */
40
- const DATA_TOOL_NAMES = new Set([
41
- 'recall_knowledge',
42
- 'get_knowledge_events',
43
- 'get_knowledge_cases',
44
- 'run_knowledge_pipeline',
45
- 'get_knowledge_pipeline',
46
- 'query_knowledge_graph',
47
- 'query_source_truth',
48
- 'list_knowledge_bases',
49
- 'check_knowledge_embeddings',
50
- 'add_source',
51
- 'import_sources',
52
- 'propose_wiki_cards',
53
- 'annotate_wiki_card',
54
- 'review_wiki_card',
55
- 'set_knowledge_status',
56
- 'record_feedback',
57
- 'rebuild_knowledge',
58
- 'convert_source',
59
- 'convert_ingest',
60
- 'convert_task',
61
- ]);
62
- /**
63
- * 这些词只做「是否进入数据域」的廉价门控,不做分类,也不替代模型判断。
64
- * 列表刻意覆盖知识库、表格、查询、编译与召回;普通聊天不会因为一个泛化动词
65
- * (例如「帮我写」)被误判成数据请求。
66
- */
67
- const DATA_DOMAIN_RE = /数据|指标|字段|数据库|知识库|知识卡|知识矩阵|召回|检索|向量|坐标|实体|source.?raw|wiki.?card|文档|资料|表格?|SQL|Excel|GMV|销售额|订单|报表|口径|编译|重建|导入|抽取|卡片/i;
68
- const DATA_ACTION_RE = /查|查询|统计|分析|计算|核对|校验|对比|召回|检索|读取|查看|导入|编译|重建|抽取|整理|生成|导出|写入|构建|解释|定义|口径/i;
69
- const DATA_QUESTION_RE = /(?:数据|指标|字段|数据库|知识库|文档|表格?|报表|口径)(?:里|中|有|是|怎么|如何|哪个|哪些|什么|相关)/i;
70
- /** 读取 DSH Session 的 preset 标识;结构读取以兼容测试替身和旧宿主。 */
71
- export function sessionPresetOf(session) {
72
- const value = session;
73
- return typeof value?.header?.agentPreset === 'string' ? value.header.agentPreset : undefined;
74
- }
75
- /** 标准模式参与数据 / 知识意图留痕。 */
76
- export function isIntentAgentSession(session) {
77
- return isIntentEnabledPreset(sessionPresetOf(session));
78
- }
79
- /** 判断一个工具是否代表真实的数据 / 知识工作。 */
80
- export function isDataToolName(name) {
81
- if (typeof name !== 'string')
82
- return false;
83
- return DATA_TOOL_NAMES.has(name) || /^workbook_/.test(name);
84
- }
85
- /**
86
- * 判断用户原文是否明显进入数据域。
87
- *
88
- * 这是 gate,不是 NLU:宁可让模型通过 `category` 或实际数据工具调用补充一次,
89
- * 也不在这里生成意图分类,避免第二套分类逻辑与 `intent_record` 漂移。
90
- */
91
- export function isDataIntentCandidate(value) {
92
- if (typeof value !== 'string')
93
- return false;
94
- const text = value.trim();
95
- if (!text)
96
- return false;
97
- return (DATA_DOMAIN_RE.test(text) && DATA_ACTION_RE.test(text)) || DATA_QUESTION_RE.test(text);
98
- }
99
- /** 模型已经给出数据分类 / predicate 时,允许这一轮进入审计。 */
100
- export function isDataIntentPayload(args) {
101
- const category = typeof args.category === 'string' ? args.category.trim() : '';
102
- const predicate = typeof args.predicate === 'string' ? args.predicate.trim() : '';
103
- const domain = typeof args.domain === 'string' ? args.domain.trim().toLowerCase() : '';
104
- return DATA_CATEGORY_IDS.has(category)
105
- || DATA_PREDICATE_IDS.has(predicate)
106
- || domain === 'data'
107
- || domain === 'knowledge'
108
- || isDataIntentCandidate(args.user_input);
109
- }
110
- /** 模型已经明确表示这是普通对话时,覆盖廉价的文本 gate。 */
111
- export function isExplicitNonDataIntentPayload(args) {
112
- const category = typeof args.category === 'string' ? args.category.trim() : '';
113
- const act = typeof args.act === 'string' ? args.act.trim() : '';
114
- return NON_DATA_CATEGORY_IDS.has(category) || NON_DATA_ACT_IDS.has(act);
115
- }
116
- //# sourceMappingURL=scope.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scope.js","sourceRoot":"","sources":["../../../src/intent/scope.ts"],"names":[],"mappings":"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"}
@@ -1,33 +0,0 @@
1
- /**
2
- * 意图审计的持久化层。
3
- *
4
- * 意图是 agent / session 级数据,不属于某一个知识库,所以它放在:
5
- *
6
- * <agentRoot>/intent/intent.db
7
- *
8
- * SQLite 里有两张记录表:
9
- *
10
- * - `intent_records`:按 `session_key + turn_key` 保存当前版本,供面板与会话恢复读取;
11
- * - `intent_record_history`:每次保存都追加一版,保留审计轨迹。
12
- *
13
- * 旧版本的 `records.ndjson` 只作为一次性迁移输入,不再继续写入。
14
- */
15
- import type { IntentRecord } from './types.js';
16
- /** 新的持久化文件。 */
17
- export declare const INTENT_DB_FILE = "intent.db";
18
- /** 迁移旧版本时仍会读取这个文件,但新写入不再使用它。 */
19
- export declare const INTENT_RECORDS_FILE = "records.ndjson";
20
- /**
21
- * 保存一条意图记录。
22
- *
23
- * 同一根目录的写入串行化,避免多个工具调用同时打开 SQLite 时互相抢写锁。
24
- * 持久化失败只影响留痕,不影响当前回答。
25
- */
26
- export declare function appendIntentRecord(root: string, record: IntentRecord): Promise<void>;
27
- /**
28
- * 读取当前版本。
29
- *
30
- * `limit` 是每个会话的上限,不是全库总数;返回按更新时间升序,面板再反转显示最近一条。
31
- */
32
- export declare function readIntentRecords(root: string, sessionKey?: string, limit?: number): Promise<IntentRecord[]>;
33
- //# sourceMappingURL=store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/intent/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,eAAe;AACf,eAAO,MAAM,cAAc,cAAc,CAAA;AACzC,gCAAgC;AAChC,eAAO,MAAM,mBAAmB,mBAAmB,CAAA;AAsInD;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAsB1F;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAwB/G"}