Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion packages/appkit/src/core/create-agent.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ import type {
PluginData,
} from "shared";
import { agent } from "../plugins/agent";
import type { FunctionTool } from "../plugins/agent/tools/function-tool";
import type { AgentTool } from "../plugins/agent/types";
import type { FunctionTool } from "../plugins/agents/tools/function-tool";
import { server } from "../plugins/server";
import type { TelemetryConfig } from "../telemetry";
import { createApp } from "./appkit";
Expand Down
4 changes: 2 additions & 2 deletions packages/appkit/src/core/run-agent.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ import {
type FunctionTool,
functionToolToDefinition,
isFunctionTool,
} from "../plugins/agent/tools/function-tool";
import { isHostedTool } from "../plugins/agent/tools/hosted-tools";
} from "../plugins/agents/tools/function-tool";
import { isHostedTool } from "../plugins/agents/tools/hosted-tools";
import type {
AgentDefinition,
AgentTool,
Expand Down
18 changes: 9 additions & 9 deletions packages/appkit/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -88,15 +88,6 @@ export {
server,
serving,
} from "./plugins";
export {
type FunctionTool,
type HostedTool,
isFunctionTool,
isHostedTool,
mcpServer,
type ToolConfig,
tool,
} from "./plugins/agent/tools";
export {
type AgentDefinition,
type AgentsPluginConfig,
Expand All @@ -110,6 +101,15 @@ export {
type ToolkitEntry,
type ToolkitOptions,
} from "./plugins/agents";
export {
type FunctionTool,
type HostedTool,
isFunctionTool,
isHostedTool,
mcpServer,
type ToolConfig,
tool,
} from "./plugins/agents/tools";
export type {
EndpointConfig,
ServingEndpointEntry,
Expand Down
21 changes: 12 additions & 9 deletions packages/appkit/src/plugins/agent/agent.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,21 +13,24 @@ import type {
import { createLogger } from "../../logging/logger";
import { Plugin, toPlugin } from "../../plugin";
import type { PluginManifest } from "../../registry";
import { loadAgentConfigs } from "./config-loader";
import { agentStreamDefaults } from "./defaults";
import { AgentEventTranslator } from "./event-translator";
import manifest from "./manifest.json";
import { chatRequestSchema, invocationsRequestSchema } from "./schemas";
import { buildBaseSystemPrompt, composeSystemPrompt } from "./system-prompt";
import { InMemoryThreadStore } from "./thread-store";
import { agentStreamDefaults } from "../agents/defaults";
import { AgentEventTranslator } from "../agents/event-translator";
import { chatRequestSchema, invocationsRequestSchema } from "../agents/schemas";
import {
buildBaseSystemPrompt,
composeSystemPrompt,
} from "../agents/system-prompt";
import { InMemoryThreadStore } from "../agents/thread-store";
import {
AppKitMcpClient,
type FunctionTool,
functionToolToDefinition,
isFunctionTool,
isHostedTool,
resolveHostedTools,
} from "./tools";
} from "../agents/tools";
import { loadAgentConfigs } from "./config-loader";
import manifest from "./manifest.json";
import type { AgentPluginConfig, RegisteredAgent, ToolEntry } from "./types";

const logger = createLogger("agent");
Expand Down Expand Up @@ -254,7 +257,7 @@ export class AgentPlugin extends Plugin {
}

private async connectHostedTools(
hostedTools: import("./tools/hosted-tools").HostedTool[],
hostedTools: import("../agents/tools/hosted-tools").HostedTool[],
) {
let host: string | undefined;
let authenticate: () => Promise<Record<string, string>>;
Expand Down
4 changes: 2 additions & 2 deletions packages/appkit/src/plugins/agent/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import type {
BasePluginConfig,
ThreadStore,
} from "shared";
import type { FunctionTool } from "./tools/function-tool";
import type { HostedTool } from "./tools/hosted-tools";
import type { FunctionTool } from "../agents/tools/function-tool";
import type { HostedTool } from "../agents/tools/hosted-tools";

export type AgentTool = FunctionTool | HostedTool;

Expand Down
24 changes: 10 additions & 14 deletions packages/appkit/src/plugins/agents/agents.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,24 +17,21 @@ import type {
import { createLogger } from "../../logging/logger";
import { Plugin, toPlugin } from "../../plugin";
import type { PluginManifest } from "../../registry";
import { agentStreamDefaults } from "../agent/defaults";
import { AgentEventTranslator } from "../agent/event-translator";
import { chatRequestSchema, invocationsRequestSchema } from "../agent/schemas";
import {
buildBaseSystemPrompt,
composeSystemPrompt,
} from "../agent/system-prompt";
import { InMemoryThreadStore } from "../agent/thread-store";
import { agentStreamDefaults } from "./defaults";
import { AgentEventTranslator } from "./event-translator";
import { loadAgentsFromDir } from "./load-agents";
import manifest from "./manifest.json";
import { chatRequestSchema, invocationsRequestSchema } from "./schemas";
import { buildBaseSystemPrompt, composeSystemPrompt } from "./system-prompt";
import { InMemoryThreadStore } from "./thread-store";
import {
AppKitMcpClient,
type FunctionTool,
functionToolToDefinition,
isFunctionTool,
isHostedTool,
resolveHostedTools,
} from "../agent/tools";
import { loadAgentsFromDir } from "./load-agents";
import manifest from "./manifest.json";
} from "./tools";
import type {
AgentDefinition,
AgentsPluginConfig,
Expand Down Expand Up @@ -296,8 +293,7 @@ export class AgentsPlugin extends Plugin implements ToolProvider {
}

// 2. Explicit tools (toolkit entries, function tools, hosted tools)
const hostedToCollect: import("../agent/tools/hosted-tools").HostedTool[] =
[];
const hostedToCollect: import("./tools/hosted-tools").HostedTool[] = [];
for (const [key, tool] of Object.entries(def.tools ?? {})) {
if (isToolkitEntry(tool)) {
index.set(key, {
Expand Down Expand Up @@ -381,7 +377,7 @@ export class AgentsPlugin extends Plugin implements ToolProvider {
}

private async connectHostedTools(
hostedTools: import("../agent/tools/hosted-tools").HostedTool[],
hostedTools: import("./tools/hosted-tools").HostedTool[],
index: Map<string, ResolvedToolEntry>,
): Promise<void> {
let host: string | undefined;
Expand Down
2 changes: 1 addition & 1 deletion packages/appkit/src/plugins/agents/build-toolkit.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { AgentToolDefinition } from "shared";
import { toJSONSchema } from "zod";
import type { ToolRegistry } from "../agent/tools/define-tool";
import type { ToolRegistry } from "./tools/define-tool";
import type { ToolkitEntry, ToolkitOptions } from "./types";

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ import type {
import { afterEach, beforeEach, describe, expect, test, vi } from "vitest";
import { z } from "zod";
import { CacheManager } from "../../../cache";
import { defineTool, type ToolRegistry } from "../../agent/tools/define-tool";
// Import the class directly so we can construct it without a createApp
import { AgentsPlugin } from "../agents";
import { buildToolkitEntries } from "../build-toolkit";
import { defineTool, type ToolRegistry } from "../tools/define-tool";
import type { AgentsPluginConfig, ToolkitEntry } from "../types";
import { isToolkitEntry } from "../types";

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { describe, expect, test } from "vitest";
import { z } from "zod";
import { defineTool, type ToolRegistry } from "../../agent/tools/define-tool";
import { buildToolkitEntries } from "../build-toolkit";
import { defineTool, type ToolRegistry } from "../tools/define-tool";
import { isToolkitEntry } from "../types";

const registry: ToolRegistry = {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { describe, expect, test } from "vitest";
import { z } from "zod";
import { createAgent } from "../../../core/create-agent-def";
import { tool } from "../../agent/tools/tool";
import { tool } from "../tools/tool";
import type { AgentDefinition } from "../types";

describe("createAgent", () => {
Expand Down
4 changes: 2 additions & 2 deletions packages/appkit/src/plugins/agents/tests/load-agents.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@ import os from "node:os";
import path from "node:path";
import { afterEach, beforeEach, describe, expect, test } from "vitest";
import { z } from "zod";
import { defineTool, type ToolRegistry } from "../../agent/tools/define-tool";
import { tool } from "../../agent/tools/tool";
import { buildToolkitEntries } from "../build-toolkit";
import {
loadAgentFromFile,
loadAgentsFromDir,
parseFrontmatter,
} from "../load-agents";
import { defineTool, type ToolRegistry } from "../tools/define-tool";
import { tool } from "../tools/tool";

let workDir: string;

Expand Down
2 changes: 1 addition & 1 deletion packages/appkit/src/plugins/agents/tests/run-agent.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { describe, expect, test, vi } from "vitest";
import { z } from "zod";
import { createAgent } from "../../../core/create-agent-def";
import { runAgent } from "../../../core/run-agent";
import { tool } from "../../agent/tools/tool";
import { tool } from "../tools/tool";
import type { ToolkitEntry } from "../types";

function scriptedAdapter(events: AgentEvent[]): AgentAdapter {
Expand Down
4 changes: 2 additions & 2 deletions packages/appkit/src/plugins/agents/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import type {
ThreadStore,
ToolAnnotations,
} from "shared";
import type { FunctionTool } from "../agent/tools/function-tool";
import type { HostedTool } from "../agent/tools/hosted-tools";
import type { FunctionTool } from "./tools/function-tool";
import type { HostedTool } from "./tools/hosted-tools";

/**
* A tool reference produced by a plugin's `.toolkit()` call. The agents plugin
Expand Down
4 changes: 2 additions & 2 deletions packages/appkit/src/plugins/analytics/analytics.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,12 @@ import { getWarehouseId, getWorkspaceClient } from "../../context";
import { createLogger } from "../../logging/logger";
import { Plugin, toPluginWithInstance } from "../../plugin";
import type { PluginManifest } from "../../registry";
import { buildToolkitEntries } from "../agents/build-toolkit";
import {
defineTool,
executeFromRegistry,
toolsFromRegistry,
} from "../agent/tools/define-tool";
import { buildToolkitEntries } from "../agents/build-toolkit";
} from "../agents/tools/define-tool";
import { queryDefaults } from "./defaults";
import manifest from "./manifest.json";
import { QueryProcessor } from "./query";
Expand Down
4 changes: 2 additions & 2 deletions packages/appkit/src/plugins/files/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,13 @@ import { createLogger } from "../../logging/logger";
import { Plugin, toPluginWithInstance } from "../../plugin";
import type { PluginManifest, ResourceRequirement } from "../../registry";
import { ResourceType } from "../../registry";
import { buildToolkitEntries } from "../agents/build-toolkit";
import {
defineTool,
executeFromRegistry,
type ToolRegistry,
toolsFromRegistry,
} from "../agent/tools/define-tool";
import { buildToolkitEntries } from "../agents/build-toolkit";
} from "../agents/tools/define-tool";
import {
FILES_DOWNLOAD_DEFAULTS,
FILES_MAX_UPLOAD_SIZE,
Expand Down
4 changes: 2 additions & 2 deletions packages/appkit/src/plugins/genie/genie.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@ import { getWorkspaceClient } from "../../context";
import { createLogger } from "../../logging";
import { Plugin, toPluginWithInstance } from "../../plugin";
import type { PluginManifest } from "../../registry";
import { buildToolkitEntries } from "../agents/build-toolkit";
import {
defineTool,
executeFromRegistry,
type ToolRegistry,
toolsFromRegistry,
} from "../agent/tools/define-tool";
import { buildToolkitEntries } from "../agents/build-toolkit";
} from "../agents/tools/define-tool";
import { genieStreamDefaults } from "./defaults";
import manifest from "./manifest.json";
import type {
Expand Down
4 changes: 2 additions & 2 deletions packages/appkit/src/plugins/lakebase/lakebase.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ import {
import { createLogger } from "../../logging/logger";
import { Plugin, toPluginWithInstance } from "../../plugin";
import type { PluginManifest } from "../../registry";
import { buildToolkitEntries } from "../agents/build-toolkit";
import {
defineTool,
executeFromRegistry,
toolsFromRegistry,
} from "../agent/tools/define-tool";
import { buildToolkitEntries } from "../agents/build-toolkit";
} from "../agents/tools/define-tool";
import manifest from "./manifest.json";
import type { ILakebaseConfig } from "./types";

Expand Down
8 changes: 4 additions & 4 deletions template/appkit.plugins.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
"$schema": "https://databricks.github.io/appkit/schemas/template-plugins.schema.json",
"version": "1.0",
"plugins": {
"agent": {
"name": "agent",
"displayName": "Agent Plugin",
"description": "Framework-agnostic AI agent with auto-tool-discovery from all registered plugins",
"agents": {
"name": "agents",
"displayName": "Agents Plugin",
"description": "AI agents driven by markdown configs or code, with auto-tool-discovery from registered plugins",
"package": "@databricks/appkit",
"resources": {
"required": [],
Expand Down