@zhin.js/service-activity-feedback 1.0.1 → 1.1.0

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/lib/executor.js CHANGED
@@ -1,12 +1,146 @@
1
1
  import { enableActivityFeedbackForBot, isGenericActivityFeedbackManager } from '@zhin.js/agent';
2
- export function createRootEndpointAccess(root) {
2
+ /** Slice-2: no Adapter inject — executor start/stop no-op when resolve returns undefined. */
3
+ export function createNoopEndpointAccess() {
3
4
  return {
4
- resolve(platform, endpointId) {
5
- const adapter = root.injectAdapter(platform);
6
- const endpoint = adapter?.endpoints?.get(endpointId);
7
- if (!endpoint || !adapter)
8
- return undefined;
9
- return { endpoint, adapter };
5
+ resolve() {
6
+ return undefined;
7
+ },
8
+ };
9
+ }
10
+ function stringifySendContent(content) {
11
+ if (typeof content === 'string')
12
+ return content;
13
+ if (!Array.isArray(content))
14
+ return content == null ? '' : String(content);
15
+ return content.map((segment) => {
16
+ if (typeof segment === 'string')
17
+ return segment;
18
+ if (segment && typeof segment === 'object') {
19
+ const data = segment.data
20
+ ?? segment;
21
+ if (typeof data === 'object' && data && 'text' in data && typeof data.text === 'string') {
22
+ return data.text;
23
+ }
24
+ if (typeof segment.text === 'string') {
25
+ return segment.text;
26
+ }
27
+ }
28
+ return '';
29
+ }).join('');
30
+ }
31
+ /**
32
+ * Plugin Runtime: resolve endpoints via OutboundHost → ImRuntime.sendEndpointMessage.
33
+ * Typing/reaction text goes through the unified outbound chain (no legacy Adapter.inject).
34
+ *
35
+ * 按 platform:endpointKey 缓存 { endpoint, outbound }:activity manager 挂在
36
+ * endpoint.$activityFeedback 上,start/stop 必须解析到同一个对象,否则
37
+ * stop 时拿不到 manager,typing 指示器永远无法停止。
38
+ */
39
+ export function createOutboundEndpointAccess(outbound, logger) {
40
+ const cache = new Map();
41
+ return {
42
+ resolve(platform, endpointKey) {
43
+ const key = JSON.stringify([platform, endpointKey]);
44
+ const cached = cache.get(key);
45
+ if (cached)
46
+ return cached;
47
+ const declared = outbound.capabilities?.({ adapter: platform, endpointKey })?.operations;
48
+ const supports = (operation) => declared?.includes(operation) === true;
49
+ const recall = outbound.recall;
50
+ const edit = outbound.edit;
51
+ const addReaction = outbound.addReaction;
52
+ const removeReaction = outbound.removeReaction;
53
+ const typing = outbound.typing;
54
+ const endpoint = {
55
+ $id: endpointKey,
56
+ control: {
57
+ ...(recall && supports('recall') ? {
58
+ recall: async (message) => {
59
+ try {
60
+ await recall({ adapter: platform, endpointKey, message });
61
+ }
62
+ catch (error) {
63
+ logger?.debug(`[ActivityFeedback] outbound recall failed (${key}):`, error instanceof Error ? error.message : String(error));
64
+ }
65
+ },
66
+ } : {}),
67
+ ...(edit && supports('edit') ? {
68
+ edit: async (message, content) => {
69
+ try {
70
+ return await edit({ adapter: platform, endpointKey, message, content });
71
+ }
72
+ catch (error) {
73
+ logger?.debug(`[ActivityFeedback] outbound edit failed (${key}):`, error instanceof Error ? error.message : String(error));
74
+ return null;
75
+ }
76
+ },
77
+ } : {}),
78
+ ...(addReaction && supports('reaction') ? {
79
+ addReaction: async (message, emoji, hint) => {
80
+ try {
81
+ return await addReaction({
82
+ adapter: platform,
83
+ endpointKey,
84
+ message,
85
+ emoji,
86
+ sceneType: hint?.sceneType,
87
+ channelId: hint?.channelId,
88
+ });
89
+ }
90
+ catch (error) {
91
+ logger?.debug(`[ActivityFeedback] outbound addReaction failed (${key}):`, error instanceof Error ? error.message : String(error));
92
+ return null;
93
+ }
94
+ },
95
+ } : {}),
96
+ ...(removeReaction && supports('reaction') ? {
97
+ removeReaction: async (message, reactionId) => {
98
+ try {
99
+ await removeReaction({ adapter: platform, endpointKey, message, reactionId });
100
+ }
101
+ catch (error) {
102
+ logger?.debug(`[ActivityFeedback] outbound removeReaction failed (${key}):`, error instanceof Error ? error.message : String(error));
103
+ }
104
+ },
105
+ } : {}),
106
+ ...(typing && supports('typing') ? {
107
+ typing: async (conversation, active) => {
108
+ try {
109
+ await typing({ adapter: platform, endpointKey, conversation, active });
110
+ }
111
+ catch (error) {
112
+ logger?.debug(`[ActivityFeedback] outbound typing failed (${key}):`, error instanceof Error ? error.message : String(error));
113
+ }
114
+ },
115
+ } : {}),
116
+ },
117
+ };
118
+ const sendPort = {
119
+ send: async ({ conversation, content }) => {
120
+ const text = stringifySendContent(content);
121
+ if (!text || !conversation.id)
122
+ return null;
123
+ try {
124
+ const messageId = await outbound.send({
125
+ adapter: platform,
126
+ endpointKey,
127
+ conversation: {
128
+ kind: conversation.kind,
129
+ id: conversation.id,
130
+ },
131
+ content: text,
132
+ });
133
+ return messageId || null;
134
+ }
135
+ catch (error) {
136
+ logger?.debug(`[ActivityFeedback] outbound send failed (${key}):`, error instanceof Error ? error.message : String(error));
137
+ return null;
138
+ }
139
+ },
140
+ };
141
+ const resolved = { endpoint, outbound: sendPort };
142
+ cache.set(key, resolved);
143
+ return resolved;
10
144
  },
11
145
  };
12
146
  }
@@ -45,12 +179,12 @@ class PlatformPhaseDriver {
45
179
  class GenericPhaseDriver {
46
180
  endpoint;
47
181
  platform;
48
- adapter;
182
+ outbound;
49
183
  manager;
50
- constructor(endpoint, platform, adapter) {
184
+ constructor(endpoint, platform, outbound) {
51
185
  this.endpoint = endpoint;
52
186
  this.platform = platform;
53
- this.adapter = adapter;
187
+ this.outbound = outbound;
54
188
  }
55
189
  async ensureManager() {
56
190
  if (this.manager)
@@ -60,7 +194,7 @@ class GenericPhaseDriver {
60
194
  this.manager = existing;
61
195
  return existing;
62
196
  }
63
- this.manager = enableActivityFeedbackForBot(this.endpoint, this.platform, this.adapter);
197
+ this.manager = enableActivityFeedbackForBot(this.endpoint, this.platform, this.outbound);
64
198
  return this.manager;
65
199
  }
66
200
  async start(ctx, phase, phaseConfig) {
@@ -85,12 +219,12 @@ class GenericPhaseDriver {
85
219
  }
86
220
  }
87
221
  }
88
- function createPhaseDriver(endpoint, platform, adapter) {
222
+ function createPhaseDriver(endpoint, platform, outbound) {
89
223
  const manager = endpoint.$activityFeedback;
90
224
  if (manager && !isGenericActivityFeedbackManager(manager)) {
91
225
  return new PlatformPhaseDriver(manager);
92
226
  }
93
- return new GenericPhaseDriver(endpoint, platform, adapter);
227
+ return new GenericPhaseDriver(endpoint, platform, outbound);
94
228
  }
95
229
  export class ActivityFeedbackExecutor {
96
230
  access;
@@ -98,25 +232,36 @@ export class ActivityFeedbackExecutor {
98
232
  this.access = access;
99
233
  }
100
234
  async start(ctx, phase, phaseConfig) {
101
- const resolved = this.access.resolve(ctx.platform, ctx.endpointId);
235
+ const resolved = this.access.resolve(ctx.platform, ctx.endpointKey);
102
236
  if (!resolved)
103
237
  return;
104
- const driver = createPhaseDriver(resolved.endpoint, ctx.platform, resolved.adapter);
238
+ const driver = createPhaseDriver(resolved.endpoint, ctx.platform, resolved.outbound);
105
239
  await driver.start(ctx, phase, phaseConfig);
106
240
  }
107
241
  async stop(ctx, phase) {
108
- const resolved = this.access.resolve(ctx.platform, ctx.endpointId);
242
+ const resolved = this.access.resolve(ctx.platform, ctx.endpointKey);
109
243
  if (!resolved?.endpoint.$activityFeedback)
110
244
  return;
111
- const driver = createPhaseDriver(resolved.endpoint, ctx.platform, resolved.adapter);
245
+ const driver = createPhaseDriver(resolved.endpoint, ctx.platform, resolved.outbound);
112
246
  await driver.stop(ctx, phase);
113
247
  }
114
- async updateThinkingText(ctx, text) {
115
- const resolved = this.access.resolve(ctx.platform, ctx.endpointId);
248
+ async updateText(ctx, phase, text) {
249
+ const resolved = this.access.resolve(ctx.platform, ctx.endpointKey);
116
250
  if (!resolved)
117
251
  return;
118
- const driver = createPhaseDriver(resolved.endpoint, ctx.platform, resolved.adapter);
119
- await driver.updateThinkingText(ctx, text);
252
+ const driver = createPhaseDriver(resolved.endpoint, ctx.platform, resolved.outbound);
253
+ const manager = resolved.endpoint.$activityFeedback;
254
+ if (!manager || !isGenericActivityFeedbackManager(manager)) {
255
+ if (phase === 'thinking')
256
+ await driver.updateThinkingText(ctx, text);
257
+ return;
258
+ }
259
+ const indicator = manager.getActiveIndicator(phase, ctx.options);
260
+ if (indicator?.update)
261
+ await indicator.update(text);
262
+ }
263
+ async updateThinkingText(ctx, text) {
264
+ await this.updateText(ctx, 'thinking', text);
120
265
  }
121
266
  }
122
267
  //# sourceMappingURL=executor.js.map
@@ -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 { bindActivityFeedbackToAIEventBus, createActivityFeedbackAIEventHandlers, createActivityFeedbackOrchestrator, createActivityFeedbackOrchestratorForRuntime, } 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, } 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,gCAAgC,EAChC,qCAAqC,EACrC,kCAAkC,EAClC,4CAA4C,GAC7C,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,GAC7B,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.debug('[ActivityFeedback] disabled by activityFeedback.enabled=false');
17
- }
18
- export { bindActivityFeedbackToAIEvents, createActivityFeedbackOrchestrator, createActivityFeedbackOrchestratorFromPlugin, mountActivityFeedbackService, } from './ai-event-binder.js';
6
+ export { bindActivityFeedbackToAIEventBus, createActivityFeedbackAIEventHandlers, createActivityFeedbackOrchestrator, createActivityFeedbackOrchestratorForRuntime, } 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, } 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,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
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,gCAAgC,EAChC,qCAAqC,EACrC,kCAAkC,EAClC,4CAA4C,GAC7C,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,GAC7B,MAAM,eAAe,CAAC"}
@@ -9,10 +9,18 @@ export declare class ActivityFeedbackOrchestrator {
9
9
  private readonly policy;
10
10
  private readonly executor;
11
11
  private readonly log;
12
+ private readonly active;
13
+ private readonly transient;
14
+ private readonly pendingCleanup;
12
15
  constructor(policy: ActivityFeedbackPolicy, executor: ActivityFeedbackExecutor, log: Logger);
13
16
  startPhase(payload: AIEventPayload, phase: ActivityFeedbackPhase, reason: string): Promise<void>;
14
17
  stopPhase(payload: AIEventPayload, phase: ActivityFeedbackPhase, reason: string): Promise<void>;
15
18
  updateThinkingText(payload: AIEventPayload, text: string): Promise<void>;
19
+ updatePhaseText(payload: AIEventPayload, phase: ActivityFeedbackPhase, text: string): Promise<void>;
20
+ showTransientPhase(payload: AIEventPayload, phase: ActivityFeedbackPhase, reason: string): Promise<void>;
21
+ dispose(): Promise<void>;
22
+ private phaseKey;
23
+ private clearTransient;
16
24
  }
17
25
  export {};
18
26
  //# sourceMappingURL=orchestrator.d.ts.map
@@ -1 +1 @@
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
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,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;IAarC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAdtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAGlB;IACL,OAAO,CAAC,QAAQ,CAAC,SAAS,CAIrB;IACL,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4B;gBAGxC,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;IAqChG,SAAS,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAe/F,kBAAkB,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxE,eAAe,CACnB,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,qBAAqB,EAC5B,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC;IAWV,kBAAkB,CACtB,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,qBAAqB,EAC5B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IAyBV,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAY9B,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,cAAc;CAMvB"}
@@ -1,8 +1,11 @@
1
- import { toActivityFeedbackEventContext, isActivityFeedbackEnabled, } from '@zhin.js/agent';
1
+ import { toActivityFeedbackEventContext, isActivityFeedbackEnabled, applySubagentActivityPrefixToConfig, withSubagentActivityPrefix, } from '@zhin.js/agent';
2
2
  export class ActivityFeedbackOrchestrator {
3
3
  policy;
4
4
  executor;
5
5
  log;
6
+ active = new Map();
7
+ transient = new Map();
8
+ pendingCleanup = new Set();
6
9
  constructor(policy, executor, log) {
7
10
  this.policy = policy;
8
11
  this.executor = executor;
@@ -10,17 +13,28 @@ export class ActivityFeedbackOrchestrator {
10
13
  }
11
14
  async startPhase(payload, phase, reason) {
12
15
  const gatePhase = phase;
13
- if (!isActivityFeedbackEnabled(payload, gatePhase))
16
+ if (!isActivityFeedbackEnabled(payload, gatePhase)) {
17
+ this.log.debug(`[ActivityFeedback] skip ${phase} (${reason}): gate closed`
18
+ + ` (eligible=${String(payload.hookContext?.activityFeedbackEligible)})`);
14
19
  return;
20
+ }
15
21
  const ctx = toActivityFeedbackEventContext(payload);
16
- if (!ctx)
22
+ if (!ctx) {
23
+ this.log.debug(`[ActivityFeedback] skip ${phase} (${reason}): unresolvable context`
24
+ + ` (platform=${String(payload.platform)} endpoint=${String(payload.endpointKey)})`);
17
25
  return;
26
+ }
18
27
  try {
19
- const resolution = this.policy.resolvePhase(ctx.platform, ctx.endpointId, phase, ctx.sceneType);
20
- if (resolution.kind !== 'active')
28
+ const resolution = this.policy.resolvePhase(ctx.platform, ctx.endpointKey, phase, ctx.sceneType);
29
+ if (resolution.kind !== 'active') {
30
+ this.log.debug(`[ActivityFeedback] skip ${phase} (${reason}): policy=${resolution.kind}`
31
+ + ` (${ctx.platform}:${ctx.endpointKey} ${ctx.sceneType})`);
21
32
  return;
33
+ }
34
+ const config = applySubagentActivityPrefixToConfig(resolution.config, payload);
22
35
  this.log.debug(`[ActivityFeedback] start ${phase} (${reason}) session=${ctx.sessionId}`);
23
- await this.executor.start(ctx, phase, resolution.config);
36
+ await this.executor.start(ctx, phase, config);
37
+ this.active.set(this.phaseKey(ctx, phase), { ctx, phase });
24
38
  }
25
39
  catch (error) {
26
40
  this.log.error(`[ActivityFeedback] start ${phase} failed (${reason}):`, error);
@@ -30,6 +44,9 @@ export class ActivityFeedbackOrchestrator {
30
44
  const ctx = toActivityFeedbackEventContext(payload);
31
45
  if (!ctx)
32
46
  return;
47
+ const key = this.phaseKey(ctx, phase);
48
+ this.clearTransient(key);
49
+ this.active.delete(key);
33
50
  try {
34
51
  this.log.debug(`[ActivityFeedback] stop ${phase} (${reason}) session=${ctx.sessionId}`);
35
52
  await this.executor.stop(ctx, phase);
@@ -39,15 +56,66 @@ export class ActivityFeedbackOrchestrator {
39
56
  }
40
57
  }
41
58
  async updateThinkingText(payload, text) {
59
+ await this.updatePhaseText(payload, 'thinking', text);
60
+ }
61
+ async updatePhaseText(payload, phase, text) {
42
62
  const ctx = toActivityFeedbackEventContext(payload);
43
63
  if (!ctx || !text)
44
64
  return;
45
65
  try {
46
- await this.executor.updateThinkingText(ctx, text);
66
+ await this.executor.updateText(ctx, phase, withSubagentActivityPrefix(text, payload));
47
67
  }
48
68
  catch (error) {
49
- this.log.error('[ActivityFeedback] thinking update failed:', error);
69
+ this.log.error(`[ActivityFeedback] ${phase} update failed:`, error);
50
70
  }
51
71
  }
72
+ async showTransientPhase(payload, phase, reason) {
73
+ await this.startPhase(payload, phase, reason);
74
+ const ctx = toActivityFeedbackEventContext(payload);
75
+ if (!ctx)
76
+ return;
77
+ const resolution = this.policy.resolvePhase(ctx.platform, ctx.endpointKey, phase, ctx.sceneType);
78
+ if (resolution.kind !== 'active')
79
+ return;
80
+ const delay = resolution.config.removeDelay ?? 3_000;
81
+ const key = this.phaseKey(ctx, phase);
82
+ this.clearTransient(key);
83
+ const timer = setTimeout(() => {
84
+ this.transient.delete(key);
85
+ this.active.delete(key);
86
+ const cleanup = this.executor.stop(ctx, phase)
87
+ .catch((error) => {
88
+ this.log.error(`[ActivityFeedback] transient ${phase} cleanup failed:`, error);
89
+ })
90
+ .finally(() => {
91
+ this.pendingCleanup.delete(cleanup);
92
+ });
93
+ this.pendingCleanup.add(cleanup);
94
+ }, Math.max(0, delay));
95
+ timer.unref?.();
96
+ this.transient.set(key, { timer, ctx, phase });
97
+ }
98
+ async dispose() {
99
+ const pending = [...this.active.values()];
100
+ const timers = [...this.transient.values()];
101
+ this.active.clear();
102
+ this.transient.clear();
103
+ for (const item of timers)
104
+ clearTimeout(item.timer);
105
+ await Promise.allSettled([
106
+ ...pending.map((item) => this.executor.stop(item.ctx, item.phase)),
107
+ ...this.pendingCleanup,
108
+ ]);
109
+ }
110
+ phaseKey(ctx, phase) {
111
+ return JSON.stringify([ctx.platform, ctx.endpointKey, ctx.sessionId, phase, ctx.messageId]);
112
+ }
113
+ clearTransient(key) {
114
+ const current = this.transient.get(key);
115
+ if (!current)
116
+ return;
117
+ clearTimeout(current.timer);
118
+ this.transient.delete(key);
119
+ }
52
120
  }
53
121
  //# sourceMappingURL=orchestrator.js.map
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../src/orchestrator.ts"],"names":[],"mappings":"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"}
package/lib/policy.d.ts CHANGED
@@ -13,6 +13,6 @@ export type PhaseResolution = {
13
13
  export declare class ActivityFeedbackPolicy {
14
14
  private readonly service;
15
15
  constructor(service: ActivityFeedbackServiceConfig);
16
- resolvePhase(platform: string, endpointId: string, phase: ActivityFeedbackPhase, sceneType: ActivitySceneType): PhaseResolution;
16
+ resolvePhase(platform: string, endpointKey: string, phase: ActivityFeedbackPhase, sceneType: ActivitySceneType): PhaseResolution;
17
17
  }
18
18
  //# sourceMappingURL=policy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,mCAAmC,EACzC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,KAAK,6BAA6B,EAGnC,MAAM,aAAa,CAAC;AAErB,YAAY,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,iCAAiC,EAAE,gCAAgC,EAAE,MAAM,aAAa,CAAC;AAElG,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,mCAAmC,CAAA;CAAE,CAAC;AAEpE,qBAAa,sBAAsB;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,6BAA6B;IAEnE,YAAY,CACV,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,qBAAqB,EAC5B,SAAS,EAAE,iBAAiB,GAC3B,eAAe;CAsBnB"}
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,mCAAmC,EACzC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,KAAK,6BAA6B,EAGnC,MAAM,aAAa,CAAC;AAErB,YAAY,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,iCAAiC,EAAE,gCAAgC,EAAE,MAAM,aAAa,CAAC;AAElG,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,mCAAmC,CAAA;CAAE,CAAC;AAEpE,qBAAa,sBAAsB;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,6BAA6B;IAEnE,YAAY,CACV,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,qBAAqB,EAC5B,SAAS,EAAE,iBAAiB,GAC3B,eAAe;CAuBnB"}
package/lib/policy.js CHANGED
@@ -6,11 +6,11 @@ export class ActivityFeedbackPolicy {
6
6
  constructor(service) {
7
7
  this.service = service;
8
8
  }
9
- resolvePhase(platform, endpointId, phase, sceneType) {
9
+ resolvePhase(platform, endpointKey, phase, sceneType) {
10
10
  if (this.service.enabled === false) {
11
11
  return { kind: 'disabled' };
12
12
  }
13
- const policy = mergeActivityFeedbackLayers(this.service.defaults, this.service.platforms?.[platform], this.service.endpoints?.[`${platform}:${endpointId}`]);
13
+ const policy = mergeActivityFeedbackLayers(this.service.defaults, this.service.platforms?.[platform], this.service.endpoints?.[`${platform}:${endpointKey}`], schedulePhaseLayer(this.service, phase));
14
14
  if (policy?.enabled === false) {
15
15
  return { kind: 'disabled' };
16
16
  }
@@ -21,4 +21,15 @@ export class ActivityFeedbackPolicy {
21
21
  return { kind: 'active', config };
22
22
  }
23
23
  }
24
+ function schedulePhaseLayer(service, phase) {
25
+ const scheduleKey = phase === 'schedule_start'
26
+ ? 'start'
27
+ : phase === 'schedule_finish'
28
+ ? 'finish'
29
+ : phase === 'schedule_error'
30
+ ? 'error'
31
+ : undefined;
32
+ const scenes = scheduleKey ? service.schedule?.phases?.[scheduleKey] : undefined;
33
+ return scenes ? { phases: { [phase]: scenes } } : undefined;
34
+ }
24
35
  //# sourceMappingURL=policy.js.map
package/lib/policy.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"policy.js","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kCAAkC,GAInC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAEL,2BAA2B,GAE5B,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,iCAAiC,EAAE,gCAAgC,EAAE,MAAM,aAAa,CAAC;AAOlG,MAAM,OAAO,sBAAsB;IACJ;IAA7B,YAA6B,OAAsC;QAAtC,YAAO,GAAP,OAAO,CAA+B;IAAG,CAAC;IAEvE,YAAY,CACV,QAAgB,EAChB,UAAkB,EAClB,KAA4B,EAC5B,SAA4B;QAE5B,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YACnC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QAC9B,CAAC;QAED,MAAM,MAAM,GAAG,2BAA2B,CACxC,IAAI,CAAC,OAAO,CAAC,QAAQ,EACrB,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,EAClC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,GAAG,QAAQ,IAAI,UAAU,EAAE,CAAC,CACtD,CAAC;QAEF,IAAI,MAAM,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;YAC9B,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QAC9B,CAAC;QAED,MAAM,MAAM,GAAG,kCAAkC,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QACtF,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAC1B,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACpC,CAAC;CACF"}
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kCAAkC,GAInC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAEL,2BAA2B,GAE5B,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,iCAAiC,EAAE,gCAAgC,EAAE,MAAM,aAAa,CAAC;AAOlG,MAAM,OAAO,sBAAsB;IACJ;IAA7B,YAA6B,OAAsC;QAAtC,YAAO,GAAP,OAAO,CAA+B;IAAG,CAAC;IAEvE,YAAY,CACV,QAAgB,EAChB,WAAmB,EACnB,KAA4B,EAC5B,SAA4B;QAE5B,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YACnC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QAC9B,CAAC;QAED,MAAM,MAAM,GAAG,2BAA2B,CACxC,IAAI,CAAC,OAAO,CAAC,QAAQ,EACrB,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,EAClC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,GAAG,QAAQ,IAAI,WAAW,EAAE,CAAC,EACtD,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CACxC,CAAC;QAEF,IAAI,MAAM,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;YAC9B,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QAC9B,CAAC;QAED,MAAM,MAAM,GAAG,kCAAkC,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QACtF,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAC1B,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACpC,CAAC;CACF;AAED,SAAS,kBAAkB,CACzB,OAAsC,EACtC,KAA4B;IAE5B,MAAM,WAAW,GAAG,KAAK,KAAK,gBAAgB;QAC5C,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,KAAK,KAAK,iBAAiB;YAC3B,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,KAAK,KAAK,gBAAgB;gBAC1B,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,SAAS,CAAC;IAClB,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjF,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9D,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@zhin.js/service-activity-feedback",
3
- "version": "1.0.1",
4
- "description": "Activity Feedback 服务插件:订阅 AI 生命周期事件,按 endpoint activityFeedback 配置驱动适配器能力",
3
+ "version": "1.1.0",
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.js",
18
+ "schema.json",
17
19
  "src",
18
20
  "lib",
19
- "plugin.yml",
20
21
  "README.md"
21
22
  ],
22
23
  "keywords": [
@@ -35,20 +36,39 @@
35
36
  "directory": "plugins/services/activity-feedback"
36
37
  },
37
38
  "dependencies": {
38
- "@zhin.js/agent": "1.0.3"
39
+ "@zhin.js/agent": "1.1.23",
40
+ "@zhin.js/logger": "1.1.0"
39
41
  },
40
42
  "devDependencies": {
41
- "@types/node": "^26.1.0",
43
+ "@types/node": "^26.1.2",
42
44
  "typescript": "^6.0.3",
43
- "zhin.js": "4.1.2"
45
+ "vitest": "^4.1.10",
46
+ "zhin.js": "1.1.0"
44
47
  },
45
48
  "peerDependencies": {
46
- "@zhin.js/agent": "1.0.3",
47
- "zhin.js": "4.1.2"
49
+ "@zhin.js/agent": "^1.1.23",
50
+ "zhin.js": "^1.1.0"
51
+ },
52
+ "peerDependenciesMeta": {
53
+ "zhin.js": {
54
+ "optional": true
55
+ }
56
+ },
57
+ "engines": {
58
+ "node": "^20.19.0 || >=22.12.0"
59
+ },
60
+ "zhin": {
61
+ "protocol": 1,
62
+ "type": "plugin",
63
+ "entry": "./plugin.js",
64
+ "engine": "^1.0.0",
65
+ "runtime": "trusted",
66
+ "features": [],
67
+ "plugins": []
48
68
  },
49
69
  "scripts": {
50
70
  "build": "tsc",
51
71
  "clean": "rimraf lib",
52
- "test": "vitest run --config ../../../vitest.config.ts plugins/services/activity-feedback/tests"
72
+ "test": "vitest run --root ../../.. plugins/services/activity-feedback/tests"
53
73
  }
54
74
  }