@zhin.js/service-activity-feedback 1.0.0 → 1.0.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.
@@ -1,5 +1,5 @@
1
1
  import type { Plugin } from 'zhin.js';
2
- import type { ActivityFeedbackServiceConfig } from './config.js';
2
+ import { type ActivityFeedbackServiceConfig } from './config.js';
3
3
  import { type ActivityFeedbackEndpointAccess } from './executor.js';
4
4
  import { ActivityFeedbackOrchestrator } from './orchestrator.js';
5
5
  export declare function bindActivityFeedbackToAIEvents(root: Plugin['root'], orchestrator: ActivityFeedbackOrchestrator): () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"ai-event-binder.d.ts","sourceRoot":"","sources":["../src/ai-event-binder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEtC,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAGL,KAAK,8BAA8B,EACpC,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AAIjE,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EACpB,YAAY,EAAE,4BAA4B,GACzC,MAAM,IAAI,CA8CZ;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,4BAA4B,GACzC,IAAI,CAMN;AAED,MAAM,WAAW,yCAAyC;IACxD,aAAa,EAAE,6BAA6B,CAAC;IAC7C,MAAM,EAAE,8BAA8B,CAAC;IACvC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;CAC1B;AAED,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,yCAAyC,GACjD,4BAA4B,CAI9B;AAED,wBAAgB,4CAA4C,CAC1D,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,6BAA6B,GAC3C,4BAA4B,CAM9B"}
1
+ {"version":3,"file":"ai-event-binder.d.ts","sourceRoot":"","sources":["../src/ai-event-binder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEtC,OAAO,EAAqC,KAAK,6BAA6B,EAAE,MAAM,aAAa,CAAC;AACpG,OAAO,EAGL,KAAK,8BAA8B,EACpC,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AAGjE,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EACpB,YAAY,EAAE,4BAA4B,GACzC,MAAM,IAAI,CAoEZ;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,4BAA4B,GACzC,IAAI,CAMN;AAED,MAAM,WAAW,yCAAyC;IACxD,aAAa,EAAE,6BAA6B,CAAC;IAC7C,MAAM,EAAE,8BAA8B,CAAC;IACvC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;CAC1B;AAED,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,yCAAyC,GACjD,4BAA4B,CAI9B;AAED,wBAAgB,4CAA4C,CAC1D,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,6BAA6B,GAC3C,4BAA4B,CAM9B"}
@@ -1,29 +1,49 @@
1
- import { subscribeAIEvents } from '@zhin.js/agent';
1
+ import { subscribeAIEvents, isActivityFeedbackEnabled } from '@zhin.js/agent';
2
+ import { loadActivityFeedbackServiceConfig } from './config.js';
2
3
  import { ActivityFeedbackExecutor, createRootEndpointAccess, } from './executor.js';
3
4
  import { ActivityFeedbackOrchestrator } from './orchestrator.js';
4
5
  import { ActivityFeedbackPolicy } from './policy.js';
5
- import { loadActivityFeedbackServiceConfig } from './config.js';
6
6
  export function bindActivityFeedbackToAIEvents(root, orchestrator) {
7
7
  return subscribeAIEvents(root, {
8
- onQueuedStart: (payload) => orchestrator.startPhase(payload, 'queued', 'activity.queued.start'),
9
- onQueuedClear: (payload) => orchestrator.stopPhase(payload, 'queued', 'activity.queued.clear'),
8
+ onQueuedStart: (payload) => {
9
+ if (!isActivityFeedbackEnabled(payload, 'queued'))
10
+ return;
11
+ return orchestrator.startPhase(payload, 'queued', 'activity.queued.start');
12
+ },
13
+ onQueuedClear: (payload) => {
14
+ if (!isActivityFeedbackEnabled(payload, 'queued'))
15
+ return;
16
+ return orchestrator.stopPhase(payload, 'queued', 'activity.queued.clear');
17
+ },
10
18
  onProcessingStart: async (payload) => {
19
+ if (!isActivityFeedbackEnabled(payload, 'active'))
20
+ return;
11
21
  await orchestrator.stopPhase(payload, 'queued', 'processing.start');
12
22
  await orchestrator.startPhase(payload, 'active', 'processing.start');
13
23
  },
14
24
  onTypingStart: async () => { },
15
25
  onProcessingFinish: async (payload) => {
26
+ if (!isActivityFeedbackEnabled(payload, 'active'))
27
+ return;
16
28
  if (payload.keepTyping)
17
29
  return;
18
30
  await orchestrator.stopPhase(payload, 'thinking', 'processing.finish');
19
31
  await orchestrator.stopPhase(payload, 'active', 'processing.finish');
20
32
  },
21
33
  onProcessingError: async (payload) => {
34
+ if (!isActivityFeedbackEnabled(payload, 'active'))
35
+ return;
22
36
  await orchestrator.stopPhase(payload, 'thinking', 'processing.error');
23
37
  await orchestrator.stopPhase(payload, 'active', 'processing.error');
24
38
  },
25
- onTypingStop: (payload) => orchestrator.stopPhase(payload, 'active', 'typing.stop'),
39
+ onTypingStop: (payload) => {
40
+ if (!isActivityFeedbackEnabled(payload, 'active'))
41
+ return;
42
+ return orchestrator.stopPhase(payload, 'active', 'typing.stop');
43
+ },
26
44
  onThinking: async (payload) => {
45
+ if (!isActivityFeedbackEnabled(payload, 'thinking'))
46
+ return;
27
47
  if (!payload.thinking)
28
48
  return;
29
49
  await orchestrator.stopPhase(payload, 'active', 'thinking');
@@ -31,6 +51,8 @@ export function bindActivityFeedbackToAIEvents(root, orchestrator) {
31
51
  await orchestrator.updateThinkingText(payload, payload.thinking);
32
52
  },
33
53
  onSubagentStart: async (payload) => {
54
+ if (!isActivityFeedbackEnabled(payload, 'thinking'))
55
+ return;
34
56
  await orchestrator.stopPhase(payload, 'active', 'subagent.start');
35
57
  await orchestrator.startPhase(payload, 'thinking', 'subagent.start');
36
58
  const label = payload.label
@@ -39,9 +61,17 @@ export function bindActivityFeedbackToAIEvents(root, orchestrator) {
39
61
  await orchestrator.updateThinkingText(payload, label);
40
62
  },
41
63
  onSubagentFinish: async (payload) => {
64
+ if (!isActivityFeedbackEnabled(payload, 'active'))
65
+ return;
42
66
  await orchestrator.stopPhase(payload, 'thinking', 'subagent.finish');
43
67
  await orchestrator.startPhase(payload, 'active', 'subagent.finish');
44
68
  },
69
+ onScheduleStart: (payload) => orchestrator.startPhase(payload, 'schedule_start', 'schedule.start'),
70
+ onScheduleFinish: (payload) => orchestrator.stopPhase(payload, 'schedule_start', 'schedule.finish'),
71
+ onScheduleError: async (payload) => {
72
+ await orchestrator.stopPhase(payload, 'schedule_start', 'schedule.error');
73
+ await orchestrator.startPhase(payload, 'schedule_error', 'schedule.error');
74
+ },
45
75
  });
46
76
  }
47
77
  export function mountActivityFeedbackService(plugin, orchestrator) {
@@ -1 +1 @@
1
- {"version":3,"file":"ai-event-binder.js","sourceRoot":"","sources":["../src/ai-event-binder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-event-binder.js","sourceRoot":"","sources":["../src/ai-event-binder.ts"],"names":[],"mappings":"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"}
package/lib/config.d.ts CHANGED
@@ -5,6 +5,10 @@ export interface ActivityFeedbackServiceConfig {
5
5
  defaults?: ActivityFeedbackConfig;
6
6
  platforms?: Record<string, ActivityFeedbackConfig>;
7
7
  endpoints?: Record<string, ActivityFeedbackConfig>;
8
+ /** Schedule turn 专用相位配置 */
9
+ schedule?: {
10
+ phases?: Partial<Record<'start' | 'error' | 'finish', import('@zhin.js/agent').ActivityFeedbackScenePhases>>;
11
+ };
8
12
  }
9
13
  export declare function mergeActivityFeedbackLayers(...layers: (ActivityFeedbackConfig | undefined)[]): ActivityFeedbackConfig | undefined;
10
14
  export declare function loadActivityFeedbackServiceConfig(raw: ActivityFeedbackServiceConfig | undefined): ActivityFeedbackServiceConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAE7D,+DAA+D;AAC/D,MAAM,WAAW,6BAA6B;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;CACpD;AAyBD,wBAAgB,2BAA2B,CACzC,GAAG,MAAM,EAAE,CAAC,sBAAsB,GAAG,SAAS,CAAC,EAAE,GAChD,sBAAsB,GAAG,SAAS,CAcpC;AAED,wBAAgB,iCAAiC,CAC/C,GAAG,EAAE,6BAA6B,GAAG,SAAS,GAC7C,6BAA6B,CAK/B;AAED,4CAA4C;AAC5C,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,6BAA6B,EACtC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,sBAAsB,GAAG,SAAS,CASpC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAE7D,+DAA+D;AAC/D,MAAM,WAAW,6BAA6B;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IACnD,2BAA2B;IAC3B,QAAQ,CAAC,EAAE;QACT,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,OAAO,GAAG,QAAQ,EAAE,OAAO,gBAAgB,EAAE,2BAA2B,CAAC,CAAC,CAAC;KAC9G,CAAC;CACH;AAyBD,wBAAgB,2BAA2B,CACzC,GAAG,MAAM,EAAE,CAAC,sBAAsB,GAAG,SAAS,CAAC,EAAE,GAChD,sBAAsB,GAAG,SAAS,CAcpC;AAED,wBAAgB,iCAAiC,CAC/C,GAAG,EAAE,6BAA6B,GAAG,SAAS,GAC7C,6BAA6B,CAK/B;AAED,4CAA4C;AAC5C,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,6BAA6B,EACtC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,sBAAsB,GAAG,SAAS,CASpC"}
package/lib/config.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAUA,SAAS,eAAe,CACtB,IAAsC,EACtC,QAA0C;IAE1C,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IACzC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC;QACrB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QAC1B,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;KAC/B,CAA6D,CAAC;IAE/D,MAAM,MAAM,GAAkD,EAAE,CAAC;IACjE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,CAAC,KAAK,CAAC,GAAG;YACd,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC;YAChB,GAAG,QAAQ,EAAE,CAAC,KAAK,CAAC;YACpB,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE;YACrE,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE;YAC/D,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE;SACtE,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,GAAG,MAA8C;IAEjD,IAAI,MAA0C,CAAC;IAC/C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;YAC9E,SAAS;QACX,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;YAAE,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAChE,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,GAA8C;IAE9C,OAAO;QACL,OAAO,EAAE,IAAI;QACb,GAAG,GAAG;KACP,CAAC;AACJ,CAAC;AAED,4CAA4C;AAC5C,MAAM,UAAU,gCAAgC,CAC9C,OAAsC,EACtC,QAAgB,EAChB,UAAkB;IAElB,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QAC9B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IACD,OAAO,2BAA2B,CAChC,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,EAC7B,OAAO,CAAC,SAAS,EAAE,CAAC,GAAG,QAAQ,IAAI,UAAU,EAAE,CAAC,CACjD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAcA,SAAS,eAAe,CACtB,IAAsC,EACtC,QAA0C;IAE1C,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IACzC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC;QACrB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QAC1B,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;KAC/B,CAA6D,CAAC;IAE/D,MAAM,MAAM,GAAkD,EAAE,CAAC;IACjE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,CAAC,KAAK,CAAC,GAAG;YACd,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC;YAChB,GAAG,QAAQ,EAAE,CAAC,KAAK,CAAC;YACpB,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE;YACrE,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE;YAC/D,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE;SACtE,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,GAAG,MAA8C;IAEjD,IAAI,MAA0C,CAAC;IAC/C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;YAC9E,SAAS;QACX,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;YAAE,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAChE,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,GAA8C;IAE9C,OAAO;QACL,OAAO,EAAE,IAAI;QACb,GAAG,GAAG;KACP,CAAC;AACJ,CAAC;AAED,4CAA4C;AAC5C,MAAM,UAAU,gCAAgC,CAC9C,OAAsC,EACtC,QAAgB,EAChB,UAAkB;IAElB,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QAC9B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IACD,OAAO,2BAA2B,CAChC,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,EAC7B,OAAO,CAAC,SAAS,EAAE,CAAC,GAAG,QAAQ,IAAI,UAAU,EAAE,CAAC,CACjD,CAAC;AACJ,CAAC"}
package/lib/executor.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  import type { Adapter } from 'zhin.js';
2
- import { type ActivityFeedbackPhase, type EndpointWithActivityFeedback, type ResolvedActivityFeedbackPhaseConfig } from '@zhin.js/agent';
3
- import type { ActivityFeedbackEventContext } from '@zhin.js/agent';
2
+ import { type ActivityFeedbackPhase, type EndpointWithActivityFeedback, type ResolvedActivityFeedbackPhaseConfig, type ActivityFeedbackEventContext } from '@zhin.js/agent';
4
3
  /** IM 侧 endpoint 访问 seam(便于测试注入 fake) */
5
4
  export interface ActivityFeedbackEndpointAccess {
6
5
  resolve(platform: string, endpointId: string): {
@@ -1 +1 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAIL,KAAK,qBAAqB,EAC1B,KAAK,4BAA4B,EAEjC,KAAK,mCAAmC,EACzC,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAEnE,yCAAyC;AACzC,MAAM,WAAW,8BAA8B;IAC7C,OAAO,CACL,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB;QAAE,QAAQ,EAAE,4BAA4B,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,GAAG,SAAS,CAAC;CAC7E;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACtD,GAAG,8BAA8B,CASjC;AA2GD,qBAAa,wBAAwB;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,8BAA8B;IAE7D,KAAK,CACT,GAAG,EAAE,4BAA4B,EACjC,KAAK,EAAE,qBAAqB,EAC5B,WAAW,EAAE,mCAAmC,GAC/C,OAAO,CAAC,IAAI,CAAC;IAOV,IAAI,CAAC,GAAG,EAAE,4BAA4B,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpF,kBAAkB,CAAC,GAAG,EAAE,4BAA4B,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAMzF"}
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAgG,KAAK,qBAAqB,EAAE,KAAK,4BAA4B,EAAwC,KAAK,mCAAmC,EAAE,KAAK,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAEhT,yCAAyC;AACzC,MAAM,WAAW,8BAA8B;IAC7C,OAAO,CACL,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB;QAAE,QAAQ,EAAE,4BAA4B,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,GAAG,SAAS,CAAC;CAC7E;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACtD,GAAG,8BAA8B,CASjC;AA2GD,qBAAa,wBAAwB;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,8BAA8B;IAE7D,KAAK,CACT,GAAG,EAAE,4BAA4B,EACjC,KAAK,EAAE,qBAAqB,EAC5B,WAAW,EAAE,mCAAmC,GAC/C,OAAO,CAAC,IAAI,CAAC;IAOV,IAAI,CAAC,GAAG,EAAE,4BAA4B,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpF,kBAAkB,CAAC,GAAG,EAAE,4BAA4B,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAMzF"}
package/lib/executor.js CHANGED
@@ -1,4 +1,4 @@
1
- import { enableActivityFeedbackForBot, isGenericActivityFeedbackManager, } from '@zhin.js/agent';
1
+ import { enableActivityFeedbackForBot, isGenericActivityFeedbackManager } from '@zhin.js/agent';
2
2
  export function createRootEndpointAccess(root) {
3
3
  return {
4
4
  resolve(platform, endpointId) {
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"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"}
package/lib/index.js CHANGED
@@ -13,7 +13,7 @@ if (serviceConfig.enabled !== false) {
13
13
  mountActivityFeedbackService(plugin, createActivityFeedbackOrchestratorFromPlugin(plugin, serviceConfig));
14
14
  }
15
15
  else {
16
- logger.info('[ActivityFeedback] disabled by activityFeedback.enabled=false');
16
+ logger.debug('[ActivityFeedback] disabled by activityFeedback.enabled=false');
17
17
  }
18
18
  export { bindActivityFeedbackToAIEvents, createActivityFeedbackOrchestrator, createActivityFeedbackOrchestratorFromPlugin, mountActivityFeedbackService, } from './ai-event-binder.js';
19
19
  export { ActivityFeedbackOrchestrator } from './orchestrator.js';
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EACL,4CAA4C,EAC5C,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iCAAiC,EAAsC,MAAM,aAAa,CAAC;AAEpG,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;AAC3B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;AAEhC,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC5C,MAAM,SAAS,GAAG,aAAa,EAAE,UAAU,EAAwD,IAAI,EAAE,CAAC;AAC1G,MAAM,aAAa,GAAG,iCAAiC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;AAEpF,IAAI,aAAa,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;IACpC,4BAA4B,CAC1B,MAAM,EACN,4CAA4C,CAAC,MAAM,EAAE,aAAa,CAAC,CACpE,CAAC;AACJ,CAAC;KAAM,CAAC;IACN,MAAM,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;AAC/E,CAAC;AAED,OAAO,EACL,8BAA8B,EAC9B,kCAAkC,EAClC,4CAA4C,EAC5C,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EACL,iCAAiC,EACjC,gCAAgC,GAEjC,MAAM,aAAa,CAAC;AAErB,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EACL,4CAA4C,EAC5C,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iCAAiC,EAAsC,MAAM,aAAa,CAAC;AAEpG,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;AAC3B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;AAEhC,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC5C,MAAM,SAAS,GAAG,aAAa,EAAE,UAAU,EAAwD,IAAI,EAAE,CAAC;AAC1G,MAAM,aAAa,GAAG,iCAAiC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;AAEpF,IAAI,aAAa,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;IACpC,4BAA4B,CAC1B,MAAM,EACN,4CAA4C,CAAC,MAAM,EAAE,aAAa,CAAC,CACpE,CAAC;AACJ,CAAC;KAAM,CAAC;IACN,MAAM,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;AAChF,CAAC;AAED,OAAO,EACL,8BAA8B,EAC9B,kCAAkC,EAClC,4CAA4C,EAC5C,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EACL,iCAAiC,EACjC,gCAAgC,GAEjC,MAAM,aAAa,CAAC;AAErB,eAAe,MAAM,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC3B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,KAAK,MAAM,GAAG;IAAE,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;CAAE,CAAC;AAErH,qBAAa,4BAA4B;IAErC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAFH,MAAM,EAAE,sBAAsB,EAC9B,QAAQ,EAAE,wBAAwB,EAClC,GAAG,EAAE,MAAM;IAGxB,UAAU,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAehG,SAAS,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY/F,kBAAkB,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAU/E"}
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC3B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,KAAK,MAAM,GAAG;IAAE,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;CAAE,CAAC;AAErH,qBAAa,4BAA4B;IAErC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAFH,MAAM,EAAE,sBAAsB,EAC9B,QAAQ,EAAE,wBAAwB,EAClC,GAAG,EAAE,MAAM;IAGxB,UAAU,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBhG,SAAS,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY/F,kBAAkB,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAU/E"}
@@ -1,4 +1,4 @@
1
- import { toActivityFeedbackEventContext, } from '@zhin.js/agent';
1
+ import { toActivityFeedbackEventContext, isActivityFeedbackEnabled, } from '@zhin.js/agent';
2
2
  export class ActivityFeedbackOrchestrator {
3
3
  policy;
4
4
  executor;
@@ -9,6 +9,9 @@ export class ActivityFeedbackOrchestrator {
9
9
  this.log = log;
10
10
  }
11
11
  async startPhase(payload, phase, reason) {
12
+ const gatePhase = phase;
13
+ if (!isActivityFeedbackEnabled(payload, gatePhase))
14
+ return;
12
15
  const ctx = toActivityFeedbackEventContext(payload);
13
16
  if (!ctx)
14
17
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,GAG/B,MAAM,gBAAgB,CAAC;AAMxB,MAAM,OAAO,4BAA4B;IAEpB;IACA;IACA;IAHnB,YACmB,MAA8B,EAC9B,QAAkC,EAClC,GAAW;QAFX,WAAM,GAAN,MAAM,CAAwB;QAC9B,aAAQ,GAAR,QAAQ,CAA0B;QAClC,QAAG,GAAH,GAAG,CAAQ;IAC3B,CAAC;IAEJ,KAAK,CAAC,UAAU,CAAC,OAAuB,EAAE,KAA4B,EAAE,MAAc;QACpF,MAAM,GAAG,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,GAAG;YAAE,OAAO;QAEjB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;YAChG,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO;YAEzC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4BAA4B,KAAK,KAAK,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;YACzF,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4BAA4B,KAAK,YAAY,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAuB,EAAE,KAA4B,EAAE,MAAc;QACnF,MAAM,GAAG,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,GAAG;YAAE,OAAO;QAEjB,IAAI,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,2BAA2B,KAAK,KAAK,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;YACxF,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,2BAA2B,KAAK,YAAY,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,OAAuB,EAAE,IAAY;QAC5D,MAAM,GAAG,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI;YAAE,OAAO;QAE1B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,GAG1B,MAAM,gBAAgB,CAAC;AAMxB,MAAM,OAAO,4BAA4B;IAEpB;IACA;IACA;IAHnB,YACmB,MAA8B,EAC9B,QAAkC,EAClC,GAAW;QAFX,WAAM,GAAN,MAAM,CAAwB;QAC9B,aAAQ,GAAR,QAAQ,CAA0B;QAClC,QAAG,GAAH,GAAG,CAAQ;IAC3B,CAAC;IAEJ,KAAK,CAAC,UAAU,CAAC,OAAuB,EAAE,KAA4B,EAAE,MAAc;QACpF,MAAM,SAAS,GAAG,KAA2D,CAAC;QAC9E,IAAI,CAAC,yBAAyB,CAAC,OAAO,EAAE,SAAS,CAAC;YAAE,OAAO;QAC3D,MAAM,GAAG,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,GAAG;YAAE,OAAO;QAEjB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;YAChG,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO;YAEzC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4BAA4B,KAAK,KAAK,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;YACzF,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4BAA4B,KAAK,YAAY,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAuB,EAAE,KAA4B,EAAE,MAAc;QACnF,MAAM,GAAG,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,GAAG;YAAE,OAAO;QAEjB,IAAI,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,2BAA2B,KAAK,KAAK,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;YACxF,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,2BAA2B,KAAK,YAAY,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,OAAuB,EAAE,IAAY;QAC5D,MAAM,GAAG,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI;YAAE,OAAO;QAE1B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zhin.js/service-activity-feedback",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Activity Feedback 服务插件:订阅 AI 生命周期事件,按 endpoint activityFeedback 配置驱动适配器能力",
5
5
  "type": "module",
6
6
  "main": "./lib/index.js",
@@ -35,16 +35,16 @@
35
35
  "directory": "plugins/services/activity-feedback"
36
36
  },
37
37
  "dependencies": {
38
- "@zhin.js/agent": "1.0.1"
38
+ "@zhin.js/agent": "1.0.3"
39
39
  },
40
40
  "devDependencies": {
41
- "@types/node": "^25.9.2",
41
+ "@types/node": "^26.1.0",
42
42
  "typescript": "^6.0.3",
43
- "zhin.js": "4.1.0"
43
+ "zhin.js": "4.1.2"
44
44
  },
45
45
  "peerDependencies": {
46
- "@zhin.js/agent": "1.0.1",
47
- "zhin.js": "4.1.0"
46
+ "@zhin.js/agent": "1.0.3",
47
+ "zhin.js": "4.1.2"
48
48
  },
49
49
  "scripts": {
50
50
  "build": "tsc",
@@ -1,6 +1,6 @@
1
1
  import type { Plugin } from 'zhin.js';
2
- import { subscribeAIEvents } from '@zhin.js/agent';
3
- import type { ActivityFeedbackServiceConfig } from './config.js';
2
+ import { subscribeAIEvents, isActivityFeedbackEnabled } from '@zhin.js/agent';
3
+ import { loadActivityFeedbackServiceConfig, type ActivityFeedbackServiceConfig } from './config.js';
4
4
  import {
5
5
  ActivityFeedbackExecutor,
6
6
  createRootEndpointAccess,
@@ -8,17 +8,23 @@ import {
8
8
  } from './executor.js';
9
9
  import { ActivityFeedbackOrchestrator } from './orchestrator.js';
10
10
  import { ActivityFeedbackPolicy } from './policy.js';
11
- import { loadActivityFeedbackServiceConfig } from './config.js';
12
11
 
13
12
  export function bindActivityFeedbackToAIEvents(
14
13
  root: Plugin['root'],
15
14
  orchestrator: ActivityFeedbackOrchestrator,
16
15
  ): () => void {
17
16
  return subscribeAIEvents(root, {
18
- onQueuedStart: (payload) => orchestrator.startPhase(payload, 'queued', 'activity.queued.start'),
19
- onQueuedClear: (payload) => orchestrator.stopPhase(payload, 'queued', 'activity.queued.clear'),
17
+ onQueuedStart: (payload) => {
18
+ if (!isActivityFeedbackEnabled(payload, 'queued')) return;
19
+ return orchestrator.startPhase(payload, 'queued', 'activity.queued.start');
20
+ },
21
+ onQueuedClear: (payload) => {
22
+ if (!isActivityFeedbackEnabled(payload, 'queued')) return;
23
+ return orchestrator.stopPhase(payload, 'queued', 'activity.queued.clear');
24
+ },
20
25
 
21
26
  onProcessingStart: async (payload) => {
27
+ if (!isActivityFeedbackEnabled(payload, 'active')) return;
22
28
  await orchestrator.stopPhase(payload, 'queued', 'processing.start');
23
29
  await orchestrator.startPhase(payload, 'active', 'processing.start');
24
30
  },
@@ -26,19 +32,25 @@ export function bindActivityFeedbackToAIEvents(
26
32
  onTypingStart: async () => {},
27
33
 
28
34
  onProcessingFinish: async (payload) => {
35
+ if (!isActivityFeedbackEnabled(payload, 'active')) return;
29
36
  if (payload.keepTyping) return;
30
37
  await orchestrator.stopPhase(payload, 'thinking', 'processing.finish');
31
38
  await orchestrator.stopPhase(payload, 'active', 'processing.finish');
32
39
  },
33
40
 
34
41
  onProcessingError: async (payload) => {
42
+ if (!isActivityFeedbackEnabled(payload, 'active')) return;
35
43
  await orchestrator.stopPhase(payload, 'thinking', 'processing.error');
36
44
  await orchestrator.stopPhase(payload, 'active', 'processing.error');
37
45
  },
38
46
 
39
- onTypingStop: (payload) => orchestrator.stopPhase(payload, 'active', 'typing.stop'),
47
+ onTypingStop: (payload) => {
48
+ if (!isActivityFeedbackEnabled(payload, 'active')) return;
49
+ return orchestrator.stopPhase(payload, 'active', 'typing.stop');
50
+ },
40
51
 
41
52
  onThinking: async (payload) => {
53
+ if (!isActivityFeedbackEnabled(payload, 'thinking')) return;
42
54
  if (!payload.thinking) return;
43
55
  await orchestrator.stopPhase(payload, 'active', 'thinking');
44
56
  await orchestrator.startPhase(payload, 'thinking', 'thinking');
@@ -46,6 +58,7 @@ export function bindActivityFeedbackToAIEvents(
46
58
  },
47
59
 
48
60
  onSubagentStart: async (payload) => {
61
+ if (!isActivityFeedbackEnabled(payload, 'thinking')) return;
49
62
  await orchestrator.stopPhase(payload, 'active', 'subagent.start');
50
63
  await orchestrator.startPhase(payload, 'thinking', 'subagent.start');
51
64
  const label = payload.label
@@ -55,9 +68,17 @@ export function bindActivityFeedbackToAIEvents(
55
68
  },
56
69
 
57
70
  onSubagentFinish: async (payload) => {
71
+ if (!isActivityFeedbackEnabled(payload, 'active')) return;
58
72
  await orchestrator.stopPhase(payload, 'thinking', 'subagent.finish');
59
73
  await orchestrator.startPhase(payload, 'active', 'subagent.finish');
60
74
  },
75
+
76
+ onScheduleStart: (payload) => orchestrator.startPhase(payload, 'schedule_start', 'schedule.start'),
77
+ onScheduleFinish: (payload) => orchestrator.stopPhase(payload, 'schedule_start', 'schedule.finish'),
78
+ onScheduleError: async (payload) => {
79
+ await orchestrator.stopPhase(payload, 'schedule_start', 'schedule.error');
80
+ await orchestrator.startPhase(payload, 'schedule_error', 'schedule.error');
81
+ },
61
82
  });
62
83
  }
63
84
 
package/src/config.ts CHANGED
@@ -6,6 +6,10 @@ export interface ActivityFeedbackServiceConfig {
6
6
  defaults?: ActivityFeedbackConfig;
7
7
  platforms?: Record<string, ActivityFeedbackConfig>;
8
8
  endpoints?: Record<string, ActivityFeedbackConfig>;
9
+ /** Schedule turn 专用相位配置 */
10
+ schedule?: {
11
+ phases?: Partial<Record<'start' | 'error' | 'finish', import('@zhin.js/agent').ActivityFeedbackScenePhases>>;
12
+ };
9
13
  }
10
14
 
11
15
  function mergePhaseScene(
package/src/executor.ts CHANGED
@@ -1,14 +1,5 @@
1
1
  import type { Adapter } from 'zhin.js';
2
- import {
3
- enableActivityFeedbackForBot,
4
- isGenericActivityFeedbackManager,
5
- type ActivityFeedbackManager,
6
- type ActivityFeedbackPhase,
7
- type EndpointWithActivityFeedback,
8
- type PlatformActivityFeedbackManager,
9
- type ResolvedActivityFeedbackPhaseConfig,
10
- } from '@zhin.js/agent';
11
- import type { ActivityFeedbackEventContext } from '@zhin.js/agent';
2
+ import { enableActivityFeedbackForBot, isGenericActivityFeedbackManager, type ActivityFeedbackManager, type ActivityFeedbackPhase, type EndpointWithActivityFeedback, type PlatformActivityFeedbackManager, type ResolvedActivityFeedbackPhaseConfig, type ActivityFeedbackEventContext } from '@zhin.js/agent';
12
3
 
13
4
  /** IM 侧 endpoint 访问 seam(便于测试注入 fake) */
14
5
  export interface ActivityFeedbackEndpointAccess {
package/src/index.ts CHANGED
@@ -21,7 +21,7 @@ if (serviceConfig.enabled !== false) {
21
21
  createActivityFeedbackOrchestratorFromPlugin(plugin, serviceConfig),
22
22
  );
23
23
  } else {
24
- logger.info('[ActivityFeedback] disabled by activityFeedback.enabled=false');
24
+ logger.debug('[ActivityFeedback] disabled by activityFeedback.enabled=false');
25
25
  }
26
26
 
27
27
  export {
@@ -1,5 +1,6 @@
1
1
  import {
2
2
  toActivityFeedbackEventContext,
3
+ isActivityFeedbackEnabled,
3
4
  type AIEventPayload,
4
5
  type ActivityFeedbackPhase,
5
6
  } from '@zhin.js/agent';
@@ -16,6 +17,8 @@ export class ActivityFeedbackOrchestrator {
16
17
  ) {}
17
18
 
18
19
  async startPhase(payload: AIEventPayload, phase: ActivityFeedbackPhase, reason: string): Promise<void> {
20
+ const gatePhase = phase as import('@zhin.js/agent').ActivityFeedbackGatePhase;
21
+ if (!isActivityFeedbackEnabled(payload, gatePhase)) return;
19
22
  const ctx = toActivityFeedbackEventContext(payload);
20
23
  if (!ctx) return;
21
24
 
package/lib/context.d.ts DELETED
@@ -1,21 +0,0 @@
1
- import type { AIEventPayload, TypingIndicatorOptions } from '@zhin.js/agent';
2
- export type ActivitySceneType = 'private' | 'group' | 'channel';
3
- /** 单次 phase 操作的归一化上下文(由 AI 事件 payload 解析而来) */
4
- export interface ActivityFeedbackContext {
5
- platform: string;
6
- endpointId: string;
7
- sessionId: string;
8
- messageId?: string;
9
- sceneType: ActivitySceneType;
10
- userId?: string;
11
- groupId?: string;
12
- options: TypingIndicatorOptions;
13
- }
14
- export declare function resolveSceneType(payload: AIEventPayload): ActivitySceneType;
15
- export declare function resolveTargets(payload: AIEventPayload, sceneType: ActivitySceneType): {
16
- userId?: string;
17
- groupId?: string;
18
- };
19
- /** 将 AI 事件转为可执行的 activity 上下文;缺少定位信息时返回 null */
20
- export declare function toActivityContext(payload: AIEventPayload): ActivityFeedbackContext | null;
21
- //# sourceMappingURL=context.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAE7E,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAEhE,+CAA+C;AAC/C,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,sBAAsB,CAAC;CACjC;AAID,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc,GAAG,iBAAiB,CAO3E;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,iBAAiB,GAC3B;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAwBvC;AAED,gDAAgD;AAChD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,uBAAuB,GAAG,IAAI,CAyBzF"}
package/lib/context.js DELETED
@@ -1,65 +0,0 @@
1
- const SYNTHETIC_SENDER_IDS = new Set(['system', 'cron', 'assistant']);
2
- export function resolveSceneType(payload) {
3
- const scope = payload.scope;
4
- if (scope === 'group' || scope === 'channel' || scope === 'private')
5
- return scope;
6
- const sceneId = payload.sceneId ?? '';
7
- if (sceneId.startsWith('group:'))
8
- return 'group';
9
- if (sceneId.startsWith('channel:'))
10
- return 'channel';
11
- return 'private';
12
- }
13
- export function resolveTargets(payload, sceneType) {
14
- const { sceneId, userId, sessionId } = payload;
15
- const parts = sessionId.split(':').filter((p) => p.length > 0);
16
- let resolvedUserId = userId;
17
- let groupId;
18
- if (sceneType === 'group' || sceneType === 'channel') {
19
- groupId = sceneId?.replace(/^(group|channel):/, '') || sceneId;
20
- if (!groupId && parts.length >= 3)
21
- groupId = parts[1];
22
- if (!resolvedUserId && parts.length >= 3)
23
- resolvedUserId = parts[parts.length - 1];
24
- }
25
- else {
26
- if (sceneId?.startsWith('private:'))
27
- resolvedUserId = sceneId.slice('private:'.length);
28
- else if ((!resolvedUserId || SYNTHETIC_SENDER_IDS.has(resolvedUserId))
29
- && sceneId
30
- && !SYNTHETIC_SENDER_IDS.has(sceneId)) {
31
- resolvedUserId = sceneId;
32
- }
33
- else if (!resolvedUserId && parts.length >= 2) {
34
- resolvedUserId = parts.length >= 3 ? parts[parts.length - 1] : parts[1];
35
- }
36
- }
37
- return { userId: resolvedUserId, groupId };
38
- }
39
- /** 将 AI 事件转为可执行的 activity 上下文;缺少定位信息时返回 null */
40
- export function toActivityContext(payload) {
41
- const { platform, endpointId, sessionId } = payload;
42
- if (!platform || !endpointId)
43
- return null;
44
- const sceneType = resolveSceneType(payload);
45
- const targets = resolveTargets(payload, sceneType);
46
- return {
47
- platform,
48
- endpointId,
49
- sessionId,
50
- messageId: payload.messageId,
51
- sceneType,
52
- userId: targets.userId,
53
- groupId: targets.groupId,
54
- options: {
55
- platform,
56
- endpointId,
57
- sessionId,
58
- messageId: payload.messageId,
59
- sceneType,
60
- userId: targets.userId,
61
- groupId: targets.groupId,
62
- },
63
- };
64
- }
65
- //# sourceMappingURL=context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Activity Feedback — AI 生命周期事件绑定(服务插件)
3
- */
4
- import type { Plugin } from 'zhin.js';
5
- import { type ActivityFeedbackServiceConfig } from './config.js';
6
- export declare function mountActivityFeedbackBinder(plugin: Plugin, serviceConfig: ActivityFeedbackServiceConfig): void;
7
- //# sourceMappingURL=register-binder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"register-binder.d.ts","sourceRoot":"","sources":["../src/register-binder.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAW,MAAM,EAAE,MAAM,SAAS,CAAC;AAc/C,OAAO,EACL,KAAK,6BAA6B,EAEnC,MAAM,aAAa,CAAC;AA6MrB,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,6BAA6B,GAC3C,IAAI,CA4DN"}
@@ -1,215 +0,0 @@
1
- import { subscribeAIEvents, enableActivityFeedbackForBot, isGenericActivityFeedbackManager, resolveActivityFeedbackPhaseConfig, } from '@zhin.js/agent';
2
- import { resolveActivityFeedbackForTarget, } from './config.js';
3
- const SYNTHETIC_SENDER_IDS = new Set(['system', 'cron', 'assistant']);
4
- function resolveSceneType(payload) {
5
- const scope = payload.scope;
6
- if (scope === 'group' || scope === 'channel' || scope === 'private')
7
- return scope;
8
- const sceneId = payload.sceneId ?? '';
9
- if (sceneId.startsWith('group:'))
10
- return 'group';
11
- if (sceneId.startsWith('channel:'))
12
- return 'channel';
13
- return 'private';
14
- }
15
- function resolveTargets(payload, sceneType) {
16
- const { sceneId, userId, sessionId } = payload;
17
- const parts = sessionId.split(':').filter((p) => p.length > 0);
18
- let resolvedUserId = userId;
19
- let groupId;
20
- if (sceneType === 'group' || sceneType === 'channel') {
21
- groupId = sceneId?.replace(/^(group|channel):/, '') || sceneId;
22
- if (!groupId && parts.length >= 3)
23
- groupId = parts[1];
24
- if (!resolvedUserId && parts.length >= 3)
25
- resolvedUserId = parts[parts.length - 1];
26
- }
27
- else {
28
- if (sceneId?.startsWith('private:'))
29
- resolvedUserId = sceneId.slice('private:'.length);
30
- else if ((!resolvedUserId || SYNTHETIC_SENDER_IDS.has(resolvedUserId))
31
- && sceneId
32
- && !SYNTHETIC_SENDER_IDS.has(sceneId)) {
33
- resolvedUserId = sceneId;
34
- }
35
- else if (!resolvedUserId && parts.length >= 2) {
36
- resolvedUserId = parts.length >= 3 ? parts[parts.length - 1] : parts[1];
37
- }
38
- }
39
- return { userId: resolvedUserId, groupId };
40
- }
41
- function buildIndicatorOptions(payload, sceneType) {
42
- const targets = resolveTargets(payload, sceneType);
43
- return {
44
- platform: payload.platform,
45
- endpointId: payload.endpointId,
46
- sessionId: payload.sessionId,
47
- messageId: payload.messageId,
48
- sceneType,
49
- userId: targets.userId,
50
- groupId: targets.groupId,
51
- };
52
- }
53
- function syncPolicyToPlatformManager(endpoint, policy) {
54
- const manager = endpoint.$activityFeedback;
55
- if (!manager || isGenericActivityFeedbackManager(manager))
56
- return;
57
- const withUpdate = manager;
58
- withUpdate.updateConfig?.(policy ?? {});
59
- }
60
- async function resolveGenericManager(root, endpoint, platform, adapter) {
61
- if (endpoint.$activityFeedback && isGenericActivityFeedbackManager(endpoint.$activityFeedback)) {
62
- return endpoint.$activityFeedback;
63
- }
64
- return enableActivityFeedbackForBot(endpoint, platform, adapter);
65
- }
66
- function resolvePolicy(serviceConfig, platform, endpointId) {
67
- return resolveActivityFeedbackForTarget(serviceConfig, platform, endpointId);
68
- }
69
- async function startPhase(root, logger, serviceConfig, payload, phase, reason) {
70
- const { platform, endpointId } = payload;
71
- if (!platform || !endpointId)
72
- return;
73
- try {
74
- const adapter = root.injectAdapter(platform);
75
- const endpoint = adapter?.endpoints?.get(endpointId);
76
- if (!endpoint)
77
- return;
78
- const activityConfig = resolvePolicy(serviceConfig, platform, endpointId);
79
- if (activityConfig?.enabled === false)
80
- return;
81
- const sceneType = resolveSceneType(payload);
82
- const phaseConfig = resolveActivityFeedbackPhaseConfig(platform, activityConfig, phase, sceneType);
83
- if (phaseConfig.type === 'none')
84
- return;
85
- const options = buildIndicatorOptions(payload, sceneType);
86
- syncPolicyToPlatformManager(endpoint, activityConfig);
87
- if (phase === 'active'
88
- && endpoint.$activityFeedback
89
- && !isGenericActivityFeedbackManager(endpoint.$activityFeedback)) {
90
- const platformManager = endpoint.$activityFeedback;
91
- const targets = resolveTargets(payload, sceneType);
92
- await platformManager.start({
93
- messageId: payload.messageId,
94
- sessionId: payload.sessionId,
95
- userId: targets.userId,
96
- groupId: targets.groupId,
97
- sceneType: sceneType === 'channel' ? 'group' : sceneType,
98
- phase,
99
- });
100
- return;
101
- }
102
- const manager = await resolveGenericManager(root, endpoint, platform, adapter);
103
- const existing = manager.getActiveIndicator(phase, options);
104
- if (existing)
105
- return;
106
- logger.debug(`[ActivityFeedback] start ${phase} (${reason}) session=${payload.sessionId}`);
107
- await manager.start(phase, options, phaseConfig);
108
- }
109
- catch (error) {
110
- logger.error(`[ActivityFeedback] start ${phase} failed (${reason}):`, error);
111
- }
112
- }
113
- async function stopPhase(root, logger, payload, phase, reason) {
114
- const { platform, endpointId } = payload;
115
- if (!platform || !endpointId)
116
- return;
117
- try {
118
- const adapter = root.injectAdapter(platform);
119
- const endpoint = adapter?.endpoints?.get(endpointId);
120
- if (!endpoint?.$activityFeedback)
121
- return;
122
- const sceneType = resolveSceneType(payload);
123
- const options = buildIndicatorOptions(payload, sceneType);
124
- if (phase === 'active' && !isGenericActivityFeedbackManager(endpoint.$activityFeedback)) {
125
- const targets = resolveTargets(payload, sceneType);
126
- await endpoint.$activityFeedback.stop({
127
- sessionId: payload.sessionId,
128
- userId: targets.userId,
129
- groupId: targets.groupId,
130
- phase,
131
- });
132
- return;
133
- }
134
- if (!isGenericActivityFeedbackManager(endpoint.$activityFeedback))
135
- return;
136
- logger.debug(`[ActivityFeedback] stop ${phase} (${reason}) session=${payload.sessionId}`);
137
- await endpoint.$activityFeedback.stop(phase, options);
138
- }
139
- catch (error) {
140
- logger.error(`[ActivityFeedback] stop ${phase} failed (${reason}):`, error);
141
- }
142
- }
143
- async function updateThinkingPhase(root, logger, payload, text) {
144
- const { platform, endpointId } = payload;
145
- if (!platform || !endpointId || !text)
146
- return;
147
- try {
148
- const adapter = root.injectAdapter(platform);
149
- const endpoint = adapter?.endpoints?.get(endpointId);
150
- if (!endpoint?.$activityFeedback || !isGenericActivityFeedbackManager(endpoint.$activityFeedback))
151
- return;
152
- const sceneType = resolveSceneType(payload);
153
- const options = buildIndicatorOptions(payload, sceneType);
154
- const indicator = endpoint.$activityFeedback.getActiveIndicator('thinking', options);
155
- if (indicator?.update) {
156
- await indicator.update(text);
157
- }
158
- }
159
- catch (error) {
160
- logger.error('[ActivityFeedback] thinking update failed:', error);
161
- }
162
- }
163
- export function mountActivityFeedbackBinder(plugin, serviceConfig) {
164
- const { root, logger } = plugin;
165
- const dispose = subscribeAIEvents(root, {
166
- onQueuedStart: async (payload) => {
167
- await startPhase(root, logger, serviceConfig, payload, 'queued', 'activity.queued.start');
168
- },
169
- onQueuedClear: async (payload) => {
170
- await stopPhase(root, logger, payload, 'queued', 'activity.queued.clear');
171
- },
172
- onProcessingStart: async (payload) => {
173
- await stopPhase(root, logger, payload, 'queued', 'processing.start');
174
- await startPhase(root, logger, serviceConfig, payload, 'active', 'processing.start');
175
- },
176
- onTypingStart: async () => {
177
- // active 由 processing.start 统一拉起
178
- },
179
- onProcessingFinish: async (payload) => {
180
- if (payload.keepTyping)
181
- return;
182
- await stopPhase(root, logger, payload, 'thinking', 'processing.finish');
183
- await stopPhase(root, logger, payload, 'active', 'processing.finish');
184
- },
185
- onProcessingError: async (payload) => {
186
- await stopPhase(root, logger, payload, 'thinking', 'processing.error');
187
- await stopPhase(root, logger, payload, 'active', 'processing.error');
188
- },
189
- onTypingStop: async (payload) => {
190
- await stopPhase(root, logger, payload, 'active', 'typing.stop');
191
- },
192
- onThinking: async (payload) => {
193
- if (!payload.thinking)
194
- return;
195
- await stopPhase(root, logger, payload, 'active', 'thinking');
196
- await startPhase(root, logger, serviceConfig, payload, 'thinking', 'thinking');
197
- await updateThinkingPhase(root, logger, payload, payload.thinking);
198
- },
199
- onSubagentStart: async (payload) => {
200
- await stopPhase(root, logger, payload, 'active', 'subagent.start');
201
- await startPhase(root, logger, serviceConfig, payload, 'thinking', 'subagent.start');
202
- const label = payload.label ? `🔍 子任务执行中: ${payload.label}...` : '🔍 子 agent 处理中...';
203
- await updateThinkingPhase(root, logger, payload, label);
204
- },
205
- onSubagentFinish: async (payload) => {
206
- await stopPhase(root, logger, payload, 'thinking', 'subagent.finish');
207
- await startPhase(root, logger, serviceConfig, payload, 'active', 'subagent.finish');
208
- },
209
- });
210
- plugin.onDispose(() => {
211
- logger.debug('[ActivityFeedback] Disposing binder');
212
- dispose();
213
- });
214
- }
215
- //# sourceMappingURL=register-binder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"register-binder.js","sourceRoot":"","sources":["../src/register-binder.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,iBAAiB,EAIjB,4BAA4B,EAC5B,gCAAgC,EAIhC,kCAAkC,GAEnC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAEL,gCAAgC,GACjC,MAAM,aAAa,CAAC;AAErB,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;AAEtE,SAAS,gBAAgB,CAAC,OAAuB;IAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC5B,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAClF,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;IACtC,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,OAAO,CAAC;IACjD,IAAI,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,SAAS,CAAC;IACrD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,cAAc,CAAC,OAAuB,EAAE,SAA0C;IACzF,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAC/C,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/D,IAAI,cAAc,GAAG,MAAM,CAAC;IAC5B,IAAI,OAA2B,CAAC;IAEhC,IAAI,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QACrD,OAAO,GAAG,OAAO,EAAE,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC;QAC/D,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;YAAE,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrF,CAAC;SAAM,CAAC;QACN,IAAI,OAAO,EAAE,UAAU,CAAC,UAAU,CAAC;YAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;aAClF,IACH,CAAC,CAAC,cAAc,IAAI,oBAAoB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;eAC1D,OAAO;eACP,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,EACrC,CAAC;YACD,cAAc,GAAG,OAAO,CAAC;QAC3B,CAAC;aAAM,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAChD,cAAc,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC;AAC7C,CAAC;AAED,SAAS,qBAAqB,CAC5B,OAAuB,EACvB,SAA0C;IAE1C,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACnD,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,QAAS;QAC3B,UAAU,EAAE,OAAO,CAAC,UAAW;QAC/B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,SAAS;QACT,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAClC,QAAsC,EACtC,MAA0C;IAE1C,MAAM,OAAO,GAAG,QAAQ,CAAC,iBAAiB,CAAC;IAC3C,IAAI,CAAC,OAAO,IAAI,gCAAgC,CAAC,OAAO,CAAC;QAAE,OAAO;IAClE,MAAM,UAAU,GAAG,OAElB,CAAC;IACF,UAAU,CAAC,YAAY,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;AAC1C,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,IAAY,EACZ,QAAsC,EACtC,QAAgB,EAChB,OAAgB;IAEhB,IAAI,QAAQ,CAAC,iBAAiB,IAAI,gCAAgC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC/F,OAAO,QAAQ,CAAC,iBAAiB,CAAC;IACpC,CAAC;IACD,OAAO,4BAA4B,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,aAAa,CACpB,aAA4C,EAC5C,QAAgB,EAChB,UAAkB;IAElB,OAAO,gCAAgC,CAAC,aAAa,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC/E,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,IAAY,EACZ,MAAwB,EACxB,aAA4C,EAC5C,OAAuB,EACvB,KAA4B,EAC5B,MAAc;IAEd,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IACzC,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU;QAAE,OAAO;IAErC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,UAAU,CAA6C,CAAC;QACjG,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,MAAM,cAAc,GAAG,aAAa,CAAC,aAAa,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC1E,IAAI,cAAc,EAAE,OAAO,KAAK,KAAK;YAAE,OAAO;QAE9C,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,WAAW,GAAG,kCAAkC,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QACnG,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO;QAExC,MAAM,OAAO,GAAG,qBAAqB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC1D,2BAA2B,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QAEtD,IACE,KAAK,KAAK,QAAQ;eACf,QAAQ,CAAC,iBAAiB;eAC1B,CAAC,gCAAgC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAChE,CAAC;YACD,MAAM,eAAe,GAAG,QAAQ,CAAC,iBAAoD,CAAC;YACtF,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACnD,MAAM,eAAe,CAAC,KAAK,CAAC;gBAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,SAAS,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;gBACxD,KAAK;aACN,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAQ,CAAC,CAAC;QAChF,MAAM,QAAQ,GAAG,OAAO,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC5D,IAAI,QAAQ;YAAE,OAAO;QAErB,MAAM,CAAC,KAAK,CAAC,4BAA4B,KAAK,KAAK,MAAM,aAAa,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QAC3F,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,4BAA4B,KAAK,YAAY,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC;IAC/E,CAAC;AACH,CAAC;AAED,KAAK,UAAU,SAAS,CACtB,IAAY,EACZ,MAAwB,EACxB,OAAuB,EACvB,KAA4B,EAC5B,MAAc;IAEd,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IACzC,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU;QAAE,OAAO;IAErC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,UAAU,CAA6C,CAAC;QACjG,IAAI,CAAC,QAAQ,EAAE,iBAAiB;YAAE,OAAO;QAEzC,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,qBAAqB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAE1D,IAAI,KAAK,KAAK,QAAQ,IAAI,CAAC,gCAAgC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACxF,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACnD,MAAO,QAAQ,CAAC,iBAAqD,CAAC,IAAI,CAAC;gBACzE,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,KAAK;aACN,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,IAAI,CAAC,gCAAgC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAAE,OAAO;QAE1E,MAAM,CAAC,KAAK,CAAC,2BAA2B,KAAK,KAAK,MAAM,aAAa,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QAC1F,MAAM,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,2BAA2B,KAAK,YAAY,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,IAAY,EACZ,MAAwB,EACxB,OAAuB,EACvB,IAAY;IAEZ,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IACzC,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI;QAAE,OAAO;IAE9C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,UAAU,CAA6C,CAAC;QACjG,IAAI,CAAC,QAAQ,EAAE,iBAAiB,IAAI,CAAC,gCAAgC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAAE,OAAO;QAE1G,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,qBAAqB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,QAAQ,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACrF,IAAI,SAAS,EAAE,MAAM,EAAE,CAAC;YACtB,MAAM,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,MAAc,EACd,aAA4C;IAE5C,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAEhC,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,EAAE;QACtC,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YAC/B,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;QAC5F,CAAC;QAED,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YAC/B,MAAM,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;QAC5E,CAAC;QAED,iBAAiB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACnC,MAAM,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC;YACrE,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QACvF,CAAC;QAED,aAAa,EAAE,KAAK,IAAI,EAAE;YACxB,iCAAiC;QACnC,CAAC;QAED,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACpC,IAAI,OAAO,CAAC,UAAU;gBAAE,OAAO;YAC/B,MAAM,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,mBAAmB,CAAC,CAAC;YACxE,MAAM,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC;QACxE,CAAC;QAED,iBAAiB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACnC,MAAM,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAC;YACvE,MAAM,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QACvE,CAAC;QAED,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YAC9B,MAAM,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QAClE,CAAC;QAED,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YAC5B,IAAI,CAAC,OAAO,CAAC,QAAQ;gBAAE,OAAO;YAC9B,MAAM,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;YAC7D,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;YAC/E,MAAM,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QACrE,CAAC;QAED,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACjC,MAAM,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;YACnE,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAC;YACrF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,OAAO,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC;YACrF,MAAM,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAC1D,CAAC;QAED,gBAAgB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YAClC,MAAM,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC;YACtE,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QACtF,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE;QACpB,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACpD,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC"}