@zhin.js/service-activity-feedback 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -5,18 +5,24 @@
5
5
  ## 模块结构
6
6
 
7
7
  ```
8
- AI 事件 ──► ai-event-binder(薄) ──► ActivityFeedbackOrchestrator
9
- │
10
- ┌────────────────────┼────────────────────┐
11
- ▼ ▼ ▼
12
- context.ts policy.ts executor.ts
13
- payload → 上下文 根级 YAML → phase 配置 platform/generic 统一执行
8
+ ZhinAgentEventEmitter.emit
9
+ │
10
+ ▼
11
+ activityFeedbackAiBus ──► ai-event-binder(薄) ──► ActivityFeedbackOrchestrator
12
+ │
13
+ ┌────────────────────┼────────────────────┐
14
+ ▼ ▼ ▼
15
+ context.ts policy.ts executor.ts
16
+ payload → 上下文 根级 YAML → phase 配置 platform/generic 统一执行
14
17
  ```
15
18
 
16
19
  - **Orchestrator**:对外 `startPhase` / `stopPhase` / `updateThinkingText`
17
20
  - **Policy**:根级 `activityFeedback` 合并与 phase 解析
18
21
  - **Executor**:隐藏 platform 自管 manager 与 generic manager 双路径
19
22
  - **Adapter**:仅提供 `$activityFeedback` IO 能力
23
+ - **Runtime slice-2**:`plugin.ts` setup 经 `activityFeedbackAiBus` 订阅(无 `usePlugin`);
24
+ endpoint access 暂为 noop(phase 在 resolve 失败时静默跳过)。
25
+ **TODO**:注入真实 Adapter/endpoint access,使 typing/reaction 真正出站。
20
26
 
21
27
  ## 安装
22
28
 
@@ -1,14 +1,28 @@
1
1
  import type { Plugin } from 'zhin.js';
2
- import type { ActivityFeedbackServiceConfig } from './config.js';
2
+ import { type AIEventHandlers } from '@zhin.js/agent';
3
+ import { type ActivityFeedbackServiceConfig } from './config.js';
3
4
  import { type ActivityFeedbackEndpointAccess } from './executor.js';
4
5
  import { ActivityFeedbackOrchestrator } from './orchestrator.js';
6
+ export declare function createActivityFeedbackAIEventHandlers(orchestrator: ActivityFeedbackOrchestrator): AIEventHandlers;
7
+ /** Legacy host Plugin path (ALS-aware subscribeAIEvents). */
5
8
  export declare function bindActivityFeedbackToAIEvents(root: Plugin['root'], orchestrator: ActivityFeedbackOrchestrator): () => void;
9
+ /**
10
+ * Plugin Runtime path: subscribe on module-level `activityFeedbackAiBus`
11
+ * (fed by ZhinAgentEventEmitter.emit). No usePlugin / Adapter inject.
12
+ */
13
+ export declare function bindActivityFeedbackToAIEventBus(orchestrator: ActivityFeedbackOrchestrator): () => void;
6
14
  export declare function mountActivityFeedbackService(plugin: Plugin, orchestrator: ActivityFeedbackOrchestrator): void;
15
+ export type ActivityFeedbackLogger = {
16
+ debug: (msg: string, ...args: unknown[]) => void;
17
+ error: (msg: string, ...args: unknown[]) => void;
18
+ };
7
19
  export interface CreateActivityFeedbackOrchestratorOptions {
8
20
  serviceConfig: ActivityFeedbackServiceConfig;
9
21
  access: ActivityFeedbackEndpointAccess;
10
- logger: Plugin['logger'];
22
+ logger: ActivityFeedbackLogger;
11
23
  }
12
24
  export declare function createActivityFeedbackOrchestrator(options: CreateActivityFeedbackOrchestratorOptions): ActivityFeedbackOrchestrator;
13
25
  export declare function createActivityFeedbackOrchestratorFromPlugin(plugin: Plugin, serviceConfig: ActivityFeedbackServiceConfig): ActivityFeedbackOrchestrator;
26
+ /** Runtime: prefer OutboundHost-backed access; else noop until Host wires outbound. */
27
+ export declare function createActivityFeedbackOrchestratorForRuntime(serviceConfig: ActivityFeedbackServiceConfig, logger: ActivityFeedbackLogger, access?: ActivityFeedbackEndpointAccess): ActivityFeedbackOrchestrator;
14
28
  //# sourceMappingURL=ai-event-binder.d.ts.map
@@ -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;AACtC,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAqC,KAAK,6BAA6B,EAAE,MAAM,aAAa,CAAC;AACpG,OAAO,EAIL,KAAK,8BAA8B,EACpC,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AAGjE,wBAAgB,qCAAqC,CACnD,YAAY,EAAE,4BAA4B,GACzC,eAAe,CAoEjB;AAED,6DAA6D;AAC7D,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EACpB,YAAY,EAAE,4BAA4B,GACzC,MAAM,IAAI,CAEZ;AAED;;;GAGG;AACH,wBAAgB,gCAAgC,CAC9C,YAAY,EAAE,4BAA4B,GACzC,MAAM,IAAI,CAKZ;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,4BAA4B,GACzC,IAAI,CAMN;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACjD,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CAClD,CAAC;AAEF,MAAM,WAAW,yCAAyC;IACxD,aAAa,EAAE,6BAA6B,CAAC;IAC7C,MAAM,EAAE,8BAA8B,CAAC;IACvC,MAAM,EAAE,sBAAsB,CAAC;CAChC;AAED,wBAAgB,kCAAkC,CAChD,OAAO,EAAE,yCAAyC,GACjD,4BAA4B,CAI9B;AAED,wBAAgB,4CAA4C,CAC1D,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,6BAA6B,GAC3C,4BAA4B,CAM9B;AAED,uFAAuF;AACvF,wBAAgB,4CAA4C,CAC1D,aAAa,EAAE,6BAA6B,EAC5C,MAAM,EAAE,sBAAsB,EAC9B,MAAM,GAAE,8BAA2D,GAClE,4BAA4B,CAM9B"}
@@ -1,29 +1,49 @@
1
- import { subscribeAIEvents } from '@zhin.js/agent';
2
- import { ActivityFeedbackExecutor, createRootEndpointAccess, } from './executor.js';
1
+ import { subscribeAIEvents, subscribeAIEventsOnTarget, activityFeedbackAiBus, isActivityFeedbackEnabled, } from '@zhin.js/agent';
2
+ import { loadActivityFeedbackServiceConfig } from './config.js';
3
+ import { ActivityFeedbackExecutor, createNoopEndpointAccess, 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
- export function bindActivityFeedbackToAIEvents(root, orchestrator) {
7
- return subscribeAIEvents(root, {
8
- onQueuedStart: (payload) => orchestrator.startPhase(payload, 'queued', 'activity.queued.start'),
9
- onQueuedClear: (payload) => orchestrator.stopPhase(payload, 'queued', 'activity.queued.clear'),
6
+ export function createActivityFeedbackAIEventHandlers(orchestrator) {
7
+ return {
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,10 +61,29 @@ 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
  },
45
- });
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
+ },
75
+ };
76
+ }
77
+ /** Legacy host Plugin path (ALS-aware subscribeAIEvents). */
78
+ export function bindActivityFeedbackToAIEvents(root, orchestrator) {
79
+ return subscribeAIEvents(root, createActivityFeedbackAIEventHandlers(orchestrator));
80
+ }
81
+ /**
82
+ * Plugin Runtime path: subscribe on module-level `activityFeedbackAiBus`
83
+ * (fed by ZhinAgentEventEmitter.emit). No usePlugin / Adapter inject.
84
+ */
85
+ export function bindActivityFeedbackToAIEventBus(orchestrator) {
86
+ return subscribeAIEventsOnTarget(activityFeedbackAiBus, createActivityFeedbackAIEventHandlers(orchestrator));
46
87
  }
47
88
  export function mountActivityFeedbackService(plugin, orchestrator) {
48
89
  const dispose = bindActivityFeedbackToAIEvents(plugin.root, orchestrator);
@@ -63,4 +104,12 @@ export function createActivityFeedbackOrchestratorFromPlugin(plugin, serviceConf
63
104
  logger: plugin.logger,
64
105
  });
65
106
  }
107
+ /** Runtime: prefer OutboundHost-backed access; else noop until Host wires outbound. */
108
+ export function createActivityFeedbackOrchestratorForRuntime(serviceConfig, logger, access = createNoopEndpointAccess()) {
109
+ return createActivityFeedbackOrchestrator({
110
+ serviceConfig,
111
+ access,
112
+ logger,
113
+ });
114
+ }
66
115
  //# sourceMappingURL=ai-event-binder.js.map
@@ -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,6 @@
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';
3
+ import type { OutboundHost } from '@zhin.js/plugin-runtime';
4
4
  /** IM 侧 endpoint 访问 seam(便于测试注入 fake) */
5
5
  export interface ActivityFeedbackEndpointAccess {
6
6
  resolve(platform: string, endpointId: string): {
@@ -11,6 +11,19 @@ export interface ActivityFeedbackEndpointAccess {
11
11
  export declare function createRootEndpointAccess(root: {
12
12
  injectAdapter(platform: string): Adapter | undefined;
13
13
  }): ActivityFeedbackEndpointAccess;
14
+ /** Slice-2: no Adapter inject — executor start/stop no-op when resolve returns undefined. */
15
+ export declare function createNoopEndpointAccess(): ActivityFeedbackEndpointAccess;
16
+ /**
17
+ * Plugin Runtime: resolve endpoints via OutboundHost → ImRuntime.sendEndpointMessage.
18
+ * Typing/reaction text goes through the unified outbound chain (no legacy Adapter.inject).
19
+ *
20
+ * 按 platform:endpointId 缓存 { endpoint, adapter }:activity manager 挂在
21
+ * endpoint.$activityFeedback 上,start/stop 必须解析到同一个对象,否则
22
+ * stop 时拿不到 manager,typing 指示器永远无法停止。
23
+ */
24
+ export declare function createOutboundEndpointAccess(outbound: OutboundHost, logger?: {
25
+ debug: (msg: string, ...args: unknown[]) => void;
26
+ }): ActivityFeedbackEndpointAccess;
14
27
  export declare class ActivityFeedbackExecutor {
15
28
  private readonly access;
16
29
  constructor(access: ActivityFeedbackEndpointAccess);
@@ -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;AAChT,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,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;AAED,6FAA6F;AAC7F,wBAAgB,wBAAwB,IAAI,8BAA8B,CAMzE;AAqBD;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,YAAY,EACtB,MAAM,CAAC,EAAE;IAAE,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;CAAE,GAC5D,8BAA8B,CAwFhC;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) {
@@ -10,6 +10,120 @@ export function createRootEndpointAccess(root) {
10
10
  },
11
11
  };
12
12
  }
13
+ /** Slice-2: no Adapter inject — executor start/stop no-op when resolve returns undefined. */
14
+ export function createNoopEndpointAccess() {
15
+ return {
16
+ resolve() {
17
+ return undefined;
18
+ },
19
+ };
20
+ }
21
+ function stringifySendContent(content) {
22
+ if (typeof content === 'string')
23
+ return content;
24
+ if (!Array.isArray(content))
25
+ return content == null ? '' : String(content);
26
+ return content.map((segment) => {
27
+ if (typeof segment === 'string')
28
+ return segment;
29
+ if (segment && typeof segment === 'object') {
30
+ const data = segment.data
31
+ ?? segment;
32
+ if (typeof data === 'object' && data && 'text' in data && typeof data.text === 'string') {
33
+ return data.text;
34
+ }
35
+ if (typeof segment.text === 'string') {
36
+ return segment.text;
37
+ }
38
+ }
39
+ return '';
40
+ }).join('');
41
+ }
42
+ /**
43
+ * Plugin Runtime: resolve endpoints via OutboundHost → ImRuntime.sendEndpointMessage.
44
+ * Typing/reaction text goes through the unified outbound chain (no legacy Adapter.inject).
45
+ *
46
+ * 按 platform:endpointId 缓存 { endpoint, adapter }:activity manager 挂在
47
+ * endpoint.$activityFeedback 上,start/stop 必须解析到同一个对象,否则
48
+ * stop 时拿不到 manager,typing 指示器永远无法停止。
49
+ */
50
+ export function createOutboundEndpointAccess(outbound, logger) {
51
+ const cache = new Map();
52
+ return {
53
+ resolve(platform, endpointId) {
54
+ const key = `${platform}:${endpointId}`;
55
+ const cached = cache.get(key);
56
+ if (cached)
57
+ return cached;
58
+ const endpoint = {
59
+ $id: endpointId,
60
+ // Prefer real OutboundHost.recall when available (icqq RECALL_MSG).
61
+ $recallMessage: async (messageId) => {
62
+ if (outbound.recall) {
63
+ try {
64
+ await outbound.recall({ adapter: platform, endpointId, messageId });
65
+ return;
66
+ }
67
+ catch (error) {
68
+ logger?.debug(`[ActivityFeedback] outbound recall failed (${key}):`, error instanceof Error ? error.message : String(error));
69
+ return;
70
+ }
71
+ }
72
+ logger?.debug(`[ActivityFeedback] recall not supported via OutboundHost (${key}, messageId=${messageId})`);
73
+ },
74
+ $addReaction: outbound.addReaction
75
+ ? async (messageId, emoji, hint) => outbound.addReaction({
76
+ adapter: platform,
77
+ endpointId,
78
+ messageId,
79
+ emoji,
80
+ sceneType: hint?.sceneType,
81
+ channelId: hint?.channelId,
82
+ })
83
+ : undefined,
84
+ $removeReaction: outbound.removeReaction
85
+ ? async (messageId, reactionId) => {
86
+ await outbound.removeReaction({
87
+ adapter: platform,
88
+ endpointId,
89
+ messageId,
90
+ reactionId,
91
+ });
92
+ }
93
+ : undefined,
94
+ };
95
+ const adapter = {
96
+ sendMessage: async (options) => {
97
+ const text = stringifySendContent(options.content);
98
+ if (!text || !options.id)
99
+ return null;
100
+ try {
101
+ const messageId = await outbound.send({
102
+ adapter: platform,
103
+ endpointId,
104
+ channelType: options.type || 'private',
105
+ channelId: options.id,
106
+ content: text,
107
+ });
108
+ // Prefer real id; fall back to a sentinel so MessageTypingIndicator
109
+ // keeps the phase active until stop (recall is a no-op here).
110
+ return messageId || `outbound:${Date.now()}`;
111
+ }
112
+ catch (error) {
113
+ logger?.debug(`[ActivityFeedback] outbound send failed (${key}):`, error instanceof Error ? error.message : String(error));
114
+ return null;
115
+ }
116
+ },
117
+ endpoints: {
118
+ get: (id) => (id === endpointId ? endpoint : undefined),
119
+ },
120
+ };
121
+ const resolved = { endpoint, adapter: adapter };
122
+ cache.set(key, resolved);
123
+ return resolved;
124
+ },
125
+ };
126
+ }
13
127
  class PlatformPhaseDriver {
14
128
  manager;
15
129
  constructor(manager) {
@@ -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.d.ts CHANGED
@@ -1,8 +1,12 @@
1
- declare const plugin: import("zhin.js").Plugin;
2
- export { bindActivityFeedbackToAIEvents, createActivityFeedbackOrchestrator, createActivityFeedbackOrchestratorFromPlugin, mountActivityFeedbackService, } from './ai-event-binder.js';
1
+ /**
2
+ * @zhin.js/service-activity-feedback
3
+ *
4
+ * Pure module exports. Plugin Runtime entry is `plugin.ts`.
5
+ */
6
+ export { bindActivityFeedbackToAIEvents, bindActivityFeedbackToAIEventBus, createActivityFeedbackAIEventHandlers, createActivityFeedbackOrchestrator, createActivityFeedbackOrchestratorFromPlugin, createActivityFeedbackOrchestratorForRuntime, mountActivityFeedbackService, } from './ai-event-binder.js';
3
7
  export { ActivityFeedbackOrchestrator } from './orchestrator.js';
4
8
  export { ActivityFeedbackPolicy } from './policy.js';
5
9
  export { loadActivityFeedbackServiceConfig, resolveActivityFeedbackForTarget, type ActivityFeedbackServiceConfig, } from './config.js';
6
10
  export type { ActivityFeedbackEndpointAccess } from './executor.js';
7
- export default plugin;
11
+ export { createNoopEndpointAccess, createOutboundEndpointAccess, createRootEndpointAccess, } from './executor.js';
8
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAUA,QAAA,MAAM,MAAM,0BAAc,CAAC;AAgB3B,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,EAChC,KAAK,6BAA6B,GACnC,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,8BAA8B,EAAE,MAAM,eAAe,CAAC;AACpE,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,8BAA8B,EAC9B,gCAAgC,EAChC,qCAAqC,EACrC,kCAAkC,EAClC,4CAA4C,EAC5C,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,EAChC,KAAK,6BAA6B,GACnC,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,8BAA8B,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,wBAAwB,GACzB,MAAM,eAAe,CAAC"}
package/lib/index.js CHANGED
@@ -1,23 +1,11 @@
1
1
  /**
2
2
  * @zhin.js/service-activity-feedback
3
+ *
4
+ * Pure module exports. Plugin Runtime entry is `plugin.ts`.
3
5
  */
4
- import { usePlugin } from 'zhin.js';
5
- import { createActivityFeedbackOrchestratorFromPlugin, mountActivityFeedbackService, } from './ai-event-binder.js';
6
- import { loadActivityFeedbackServiceConfig } from './config.js';
7
- const plugin = usePlugin();
8
- const { root, logger } = plugin;
9
- const configService = root.inject('config');
10
- const appConfig = configService?.getPrimary() || {};
11
- const serviceConfig = loadActivityFeedbackServiceConfig(appConfig.activityFeedback);
12
- if (serviceConfig.enabled !== false) {
13
- mountActivityFeedbackService(plugin, createActivityFeedbackOrchestratorFromPlugin(plugin, serviceConfig));
14
- }
15
- else {
16
- logger.info('[ActivityFeedback] disabled by activityFeedback.enabled=false');
17
- }
18
- export { bindActivityFeedbackToAIEvents, createActivityFeedbackOrchestrator, createActivityFeedbackOrchestratorFromPlugin, mountActivityFeedbackService, } from './ai-event-binder.js';
6
+ export { bindActivityFeedbackToAIEvents, bindActivityFeedbackToAIEventBus, createActivityFeedbackAIEventHandlers, createActivityFeedbackOrchestrator, createActivityFeedbackOrchestratorFromPlugin, createActivityFeedbackOrchestratorForRuntime, mountActivityFeedbackService, } from './ai-event-binder.js';
19
7
  export { ActivityFeedbackOrchestrator } from './orchestrator.js';
20
8
  export { ActivityFeedbackPolicy } from './policy.js';
21
9
  export { loadActivityFeedbackServiceConfig, resolveActivityFeedbackForTarget, } from './config.js';
22
- export default plugin;
10
+ export { createNoopEndpointAccess, createOutboundEndpointAccess, createRootEndpointAccess, } from './executor.js';
23
11
  //# sourceMappingURL=index.js.map
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;;;;GAIG;AACH,OAAO,EACL,8BAA8B,EAC9B,gCAAgC,EAChC,qCAAqC,EACrC,kCAAkC,EAClC,4CAA4C,EAC5C,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,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,wBAAwB,GACzB,MAAM,eAAe,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,7 +1,7 @@
1
1
  {
2
2
  "name": "@zhin.js/service-activity-feedback",
3
- "version": "1.0.0",
4
- "description": "Activity Feedback 服务插件:订阅 AI 生命周期事件,按 endpoint activityFeedback 配置驱动适配器能力",
3
+ "version": "1.0.2",
4
+ "description": "Activity Feedback 服务插件(Plugin Runtime)",
5
5
  "type": "module",
6
6
  "main": "./lib/index.js",
7
7
  "types": "./lib/index.d.ts",
@@ -14,9 +14,10 @@
14
14
  "./package.json": "./package.json"
15
15
  },
16
16
  "files": [
17
+ "plugin.ts",
18
+ "schema.json",
17
19
  "src",
18
20
  "lib",
19
- "plugin.yml",
20
21
  "README.md"
21
22
  ],
22
23
  "keywords": [
@@ -35,20 +36,40 @@
35
36
  "directory": "plugins/services/activity-feedback"
36
37
  },
37
38
  "dependencies": {
38
- "@zhin.js/agent": "1.0.1"
39
+ "@zhin.js/agent": "1.0.4",
40
+ "@zhin.js/logger": "1.0.75",
41
+ "@zhin.js/plugin-runtime": "1.0.1"
39
42
  },
40
43
  "devDependencies": {
41
- "@types/node": "^25.9.2",
44
+ "@types/node": "^26.1.0",
42
45
  "typescript": "^6.0.3",
43
- "zhin.js": "4.1.0"
46
+ "vitest": "^4.1.10",
47
+ "zhin.js": "4.1.3"
44
48
  },
45
49
  "peerDependencies": {
46
- "@zhin.js/agent": "1.0.1",
47
- "zhin.js": "4.1.0"
50
+ "@zhin.js/agent": "1.0.4",
51
+ "zhin.js": "4.1.3"
52
+ },
53
+ "peerDependenciesMeta": {
54
+ "zhin.js": {
55
+ "optional": true
56
+ }
57
+ },
58
+ "engines": {
59
+ "node": "^20.19.0 || >=22.12.0"
60
+ },
61
+ "zhin": {
62
+ "protocol": 1,
63
+ "type": "plugin",
64
+ "entry": "./plugin.ts",
65
+ "engine": "^1.0.0",
66
+ "runtime": "trusted",
67
+ "features": [],
68
+ "plugins": []
48
69
  },
49
70
  "scripts": {
50
71
  "build": "tsc",
51
72
  "clean": "rimraf lib",
52
- "test": "vitest run --config ../../../vitest.config.ts plugins/services/activity-feedback/tests"
73
+ "test": "vitest run --root ../../.. plugins/services/activity-feedback/tests"
53
74
  }
54
75
  }