34ecadf5a4
Nueva columna params_schema en functions con migración 009. Almacena JSON con descripción semántica de inputs/outputs para que agentes razonen sobre composabilidad de funciones. Incluye: campo en modelo Go, parsing de params/output del frontmatter YAML, serialización a JSON, FTS5 rebuild con nueva columna, hash de contenido actualizado, y warning en indexer cuando faltan params.
52 lines
2.5 KiB
SQL
52 lines
2.5 KiB
SQL
-- Add params_schema to functions: JSON with semantic descriptions of inputs/outputs.
|
|
-- Format: {"params":[{"name":"x","desc":"..."}],"output":"..."}
|
|
-- Enables agent reasoning about function composability.
|
|
|
|
ALTER TABLE functions ADD COLUMN params_schema TEXT NOT NULL DEFAULT '';
|
|
|
|
-- Rebuild FTS for functions: add params_schema
|
|
DROP TRIGGER IF EXISTS functions_ai;
|
|
DROP TRIGGER IF EXISTS functions_ad;
|
|
DROP TRIGGER IF EXISTS functions_au;
|
|
|
|
INSERT INTO functions_fts(functions_fts) VALUES('rebuild');
|
|
DROP TABLE IF EXISTS functions_fts;
|
|
|
|
CREATE VIRTUAL TABLE functions_fts USING fts5(
|
|
id,
|
|
name,
|
|
description,
|
|
tags,
|
|
signature,
|
|
domain,
|
|
example,
|
|
notes,
|
|
documentation,
|
|
code,
|
|
params_schema,
|
|
content='functions',
|
|
content_rowid='rowid'
|
|
);
|
|
|
|
-- Populate FTS from existing data
|
|
INSERT INTO functions_fts(rowid, id, name, description, tags, signature, domain, example, notes, documentation, code, params_schema)
|
|
SELECT rowid, id, name, description, tags, signature, domain, example, notes, documentation, code, params_schema
|
|
FROM functions;
|
|
|
|
CREATE TRIGGER functions_ai AFTER INSERT ON functions BEGIN
|
|
INSERT INTO functions_fts(rowid, id, name, description, tags, signature, domain, example, notes, documentation, code, params_schema)
|
|
VALUES (new.rowid, new.id, new.name, new.description, new.tags, new.signature, new.domain, new.example, new.notes, new.documentation, new.code, new.params_schema);
|
|
END;
|
|
|
|
CREATE TRIGGER functions_ad AFTER DELETE ON functions BEGIN
|
|
INSERT INTO functions_fts(functions_fts, rowid, id, name, description, tags, signature, domain, example, notes, documentation, code, params_schema)
|
|
VALUES ('delete', old.rowid, old.id, old.name, old.description, old.tags, old.signature, old.domain, old.example, old.notes, old.documentation, old.code, old.params_schema);
|
|
END;
|
|
|
|
CREATE TRIGGER functions_au AFTER UPDATE ON functions BEGIN
|
|
INSERT INTO functions_fts(functions_fts, rowid, id, name, description, tags, signature, domain, example, notes, documentation, code, params_schema)
|
|
VALUES ('delete', old.rowid, old.id, old.name, old.description, old.tags, old.signature, old.domain, old.example, old.notes, old.documentation, old.code, old.params_schema);
|
|
INSERT INTO functions_fts(rowid, id, name, description, tags, signature, domain, example, notes, documentation, code, params_schema)
|
|
VALUES (new.rowid, new.id, new.name, new.description, new.tags, new.signature, new.domain, new.example, new.notes, new.documentation, new.code, new.params_schema);
|
|
END;
|