mirror of
https://github.com/coder/coder.git
synced 2026-06-03 21:18:24 +00:00
69 lines
3.3 KiB
SQL
69 lines
3.3 KiB
SQL
CREATE TABLE IF NOT EXISTS aibridge_interceptions (
|
|
id UUID PRIMARY KEY,
|
|
initiator_id uuid NOT NULL,
|
|
provider TEXT NOT NULL,
|
|
model TEXT NOT NULL,
|
|
started_at TIMESTAMP WITH TIME ZONE NOT NULL
|
|
);
|
|
|
|
COMMENT ON TABLE aibridge_interceptions IS 'Audit log of requests intercepted by AI Bridge';
|
|
COMMENT ON COLUMN aibridge_interceptions.initiator_id IS 'Relates to a users record, but FK is elided for performance.';
|
|
|
|
CREATE INDEX idx_aibridge_interceptions_initiator_id ON aibridge_interceptions (initiator_id);
|
|
|
|
CREATE TABLE IF NOT EXISTS aibridge_token_usages (
|
|
id UUID PRIMARY KEY,
|
|
interception_id UUID NOT NULL,
|
|
provider_response_id TEXT NOT NULL,
|
|
input_tokens BIGINT NOT NULL,
|
|
output_tokens BIGINT NOT NULL,
|
|
metadata JSONB DEFAULT NULL,
|
|
created_at TIMESTAMP WITH TIME ZONE NOT NULL
|
|
);
|
|
|
|
COMMENT ON TABLE aibridge_token_usages IS 'Audit log of tokens used by intercepted requests in AI Bridge';
|
|
COMMENT ON COLUMN aibridge_token_usages.provider_response_id IS 'The ID for the response in which the tokens were used, produced by the provider.';
|
|
|
|
CREATE INDEX idx_aibridge_token_usages_interception_id ON aibridge_token_usages (interception_id);
|
|
|
|
CREATE INDEX idx_aibridge_token_usages_provider_response_id ON aibridge_token_usages (provider_response_id);
|
|
|
|
CREATE TABLE IF NOT EXISTS aibridge_user_prompts (
|
|
id UUID PRIMARY KEY,
|
|
interception_id UUID NOT NULL,
|
|
provider_response_id TEXT NOT NULL,
|
|
prompt TEXT NOT NULL,
|
|
metadata JSONB DEFAULT NULL,
|
|
created_at TIMESTAMP WITH TIME ZONE NOT NULL
|
|
);
|
|
|
|
COMMENT ON TABLE aibridge_user_prompts IS 'Audit log of prompts used by intercepted requests in AI Bridge';
|
|
COMMENT ON COLUMN aibridge_user_prompts.provider_response_id IS 'The ID for the response to the given prompt, produced by the provider.';
|
|
|
|
CREATE INDEX idx_aibridge_user_prompts_interception_id ON aibridge_user_prompts (interception_id);
|
|
|
|
CREATE INDEX idx_aibridge_user_prompts_provider_response_id ON aibridge_user_prompts (provider_response_id);
|
|
|
|
CREATE TABLE IF NOT EXISTS aibridge_tool_usages (
|
|
id UUID PRIMARY KEY,
|
|
interception_id UUID NOT NULL,
|
|
provider_response_id TEXT NOT NULL,
|
|
server_url TEXT NULL,
|
|
tool TEXT NOT NULL,
|
|
input TEXT NOT NULL,
|
|
injected BOOLEAN NOT NULL DEFAULT FALSE,
|
|
invocation_error TEXT NULL,
|
|
metadata JSONB DEFAULT NULL,
|
|
created_at TIMESTAMP WITH TIME ZONE NOT NULL
|
|
);
|
|
|
|
COMMENT ON TABLE aibridge_tool_usages IS 'Audit log of tool calls in intercepted requests in AI Bridge';
|
|
COMMENT ON COLUMN aibridge_tool_usages.provider_response_id IS 'The ID for the response in which the tools were used, produced by the provider.';
|
|
COMMENT ON COLUMN aibridge_tool_usages.server_url IS 'The name of the MCP server against which this tool was invoked. May be NULL, in which case the tool was defined by the client, not injected.';
|
|
COMMENT ON COLUMN aibridge_tool_usages.injected IS 'Whether this tool was injected; i.e. Bridge injected these tools into the request from an MCP server. If false it means a tool was defined by the client and already existed in the request (MCP or built-in).';
|
|
COMMENT ON COLUMN aibridge_tool_usages.invocation_error IS 'Only injected tools are invoked.';
|
|
|
|
CREATE INDEX idx_aibridge_tool_usages_interception_id ON aibridge_tool_usages (interception_id);
|
|
|
|
CREATE INDEX idx_aibridge_tool_usagesprovider_response_id ON aibridge_tool_usages (provider_response_id);
|