Skip to content

Commit 5543980

Browse files
Copilothotlong
andauthored
fix: decouple data tool registration from metadataService and update stale JSDoc
- plugin.ts: Register data tools whenever dataEngine is available, not gated on metadataService. Agent auto-registration still requires metadataService and is nested inside a separate check. - data-tools.ts: Update JSDoc/example to match new DataToolContext (no longer references metadataService). Agent-Logs-Url: https://github.com/objectstack-ai/framework/sessions/f69965e4-42f5-4f19-84ef-74c854bdf5ac Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
1 parent 7d1d0fd commit 5543980

File tree

2 files changed

+17
-17
lines changed

2 files changed

+17
-17
lines changed

packages/services/service-ai/src/plugin.ts

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -254,24 +254,26 @@ export class AIServicePlugin implements Plugin {
254254
ctx.logger.debug('[AI] Metadata service not available');
255255
}
256256

257-
// Data tools require both data engine and metadata service
257+
// Data tools require only the data engine
258258
try {
259259
const dataEngine = ctx.getService<IDataEngine>('data');
260-
if (dataEngine && metadataService) {
260+
if (dataEngine) {
261261
registerDataTools(this.service.toolRegistry, { dataEngine });
262262
ctx.logger.info('[AI] Built-in data tools registered');
263263

264-
// Register the built-in data_chat agent only if it does not already exist
265-
const agentExists =
266-
typeof metadataService.exists === 'function'
267-
? await metadataService.exists('agent', DATA_CHAT_AGENT.name)
268-
: false;
269-
270-
if (!agentExists) {
271-
await metadataService.register('agent', DATA_CHAT_AGENT.name, DATA_CHAT_AGENT);
272-
ctx.logger.info('[AI] data_chat agent registered');
273-
} else {
274-
ctx.logger.debug('[AI] data_chat agent already exists, skipping auto-registration');
264+
// Register the built-in data_chat agent (requires metadata service)
265+
if (metadataService) {
266+
const agentExists =
267+
typeof metadataService.exists === 'function'
268+
? await metadataService.exists('agent', DATA_CHAT_AGENT.name)
269+
: false;
270+
271+
if (!agentExists) {
272+
await metadataService.register('agent', DATA_CHAT_AGENT.name, DATA_CHAT_AGENT);
273+
ctx.logger.info('[AI] data_chat agent registered');
274+
} else {
275+
ctx.logger.debug('[AI] data_chat agent already exists, skipping auto-registration');
276+
}
275277
}
276278
}
277279
} catch {

packages/services/service-ai/src/tools/data-tools.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -273,15 +273,13 @@ function createAggregateDataHandler(ctx: DataToolContext): ToolHandler {
273273
/**
274274
* Register all built-in data tools on the given {@link ToolRegistry}.
275275
*
276-
* Typically called from the `ai:ready` hook after both the data engine
277-
* and metadata service are available.
276+
* Typically called from the `ai:ready` hook after the data engine is available.
278277
*
279278
* @example
280279
* ```ts
281280
* ctx.hook('ai:ready', async (aiService) => {
282281
* const dataEngine = ctx.getService<IDataEngine>('data');
283-
* const metadataService = ctx.getService<IMetadataService>('metadata');
284-
* registerDataTools(aiService.toolRegistry, { dataEngine, metadataService });
282+
* registerDataTools(aiService.toolRegistry, { dataEngine });
285283
* });
286284
* ```
287285
*/

0 commit comments

Comments
 (0)