@ansvar/ch-livestock-mcp 0.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/.github/workflows/check-freshness.yml +52 -0
- package/.github/workflows/ci.yml +21 -0
- package/.github/workflows/codeql.yml +31 -0
- package/.github/workflows/ghcr-build.yml +45 -0
- package/.github/workflows/gitleaks.yml +23 -0
- package/.github/workflows/ingest.yml +58 -0
- package/.github/workflows/publish.yml +24 -0
- package/CHANGELOG.md +24 -0
- package/CODEOWNERS +1 -0
- package/COVERAGE.md +62 -0
- package/DISCLAIMER.md +41 -0
- package/Dockerfile +26 -0
- package/LICENSE +17 -0
- package/PRIVACY.md +28 -0
- package/README.md +145 -0
- package/SECURITY.md +33 -0
- package/TOOLS.md +261 -0
- package/data/coverage.json +23 -0
- package/data/database.db +0 -0
- package/data/sources.yml +29 -0
- package/dist/db.d.ts +26 -0
- package/dist/db.d.ts.map +1 -0
- package/dist/db.js +220 -0
- package/dist/db.js.map +1 -0
- package/dist/http-server.d.ts +2 -0
- package/dist/http-server.d.ts.map +1 -0
- package/dist/http-server.js +294 -0
- package/dist/http-server.js.map +1 -0
- package/dist/jurisdiction.d.ts +18 -0
- package/dist/jurisdiction.d.ts.map +1 -0
- package/dist/jurisdiction.js +16 -0
- package/dist/jurisdiction.js.map +1 -0
- package/dist/metadata.d.ts +10 -0
- package/dist/metadata.d.ts.map +1 -0
- package/dist/metadata.js +21 -0
- package/dist/metadata.js.map +1 -0
- package/dist/server.d.ts +3 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +240 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/about.d.ts +15 -0
- package/dist/tools/about.d.ts.map +1 -0
- package/dist/tools/about.js +27 -0
- package/dist/tools/about.js.map +1 -0
- package/dist/tools/check-freshness.d.ts +15 -0
- package/dist/tools/check-freshness.d.ts.map +1 -0
- package/dist/tools/check-freshness.js +26 -0
- package/dist/tools/check-freshness.js.map +1 -0
- package/dist/tools/get-breeding-guidance.d.ts +37 -0
- package/dist/tools/get-breeding-guidance.d.ts.map +1 -0
- package/dist/tools/get-breeding-guidance.js +39 -0
- package/dist/tools/get-breeding-guidance.js.map +1 -0
- package/dist/tools/get-feed-requirements.d.ts +40 -0
- package/dist/tools/get-feed-requirements.d.ts.map +1 -0
- package/dist/tools/get-feed-requirements.js +35 -0
- package/dist/tools/get-feed-requirements.js.map +1 -0
- package/dist/tools/get-housing-requirements.d.ts +39 -0
- package/dist/tools/get-housing-requirements.d.ts.map +1 -0
- package/dist/tools/get-housing-requirements.js +35 -0
- package/dist/tools/get-housing-requirements.js.map +1 -0
- package/dist/tools/get-movement-rules.d.ts +36 -0
- package/dist/tools/get-movement-rules.d.ts.map +1 -0
- package/dist/tools/get-movement-rules.js +31 -0
- package/dist/tools/get-movement-rules.js.map +1 -0
- package/dist/tools/get-stocking-density.d.ts +37 -0
- package/dist/tools/get-stocking-density.d.ts.map +1 -0
- package/dist/tools/get-stocking-density.js +35 -0
- package/dist/tools/get-stocking-density.js.map +1 -0
- package/dist/tools/get-welfare-standards.d.ts +38 -0
- package/dist/tools/get-welfare-standards.d.ts.map +1 -0
- package/dist/tools/get-welfare-standards.js +32 -0
- package/dist/tools/get-welfare-standards.js.map +1 -0
- package/dist/tools/list-sources.d.ts +18 -0
- package/dist/tools/list-sources.d.ts.map +1 -0
- package/dist/tools/list-sources.js +51 -0
- package/dist/tools/list-sources.js.map +1 -0
- package/dist/tools/search-animal-health.d.ts +28 -0
- package/dist/tools/search-animal-health.d.ts.map +1 -0
- package/dist/tools/search-animal-health.js +33 -0
- package/dist/tools/search-animal-health.js.map +1 -0
- package/dist/tools/search-livestock-guidance.d.ts +27 -0
- package/dist/tools/search-livestock-guidance.d.ts.map +1 -0
- package/dist/tools/search-livestock-guidance.js +25 -0
- package/dist/tools/search-livestock-guidance.js.map +1 -0
- package/docker-compose.yml +12 -0
- package/eslint.config.js +27 -0
- package/package.json +54 -0
- package/scripts/ingest.ts +553 -0
- package/server.json +10 -0
- package/src/db.ts +268 -0
- package/src/http-server.ts +327 -0
- package/src/jurisdiction.ts +30 -0
- package/src/metadata.ts +31 -0
- package/src/server.ts +264 -0
- package/src/tools/about.ts +28 -0
- package/src/tools/check-freshness.ts +42 -0
- package/src/tools/get-breeding-guidance.ts +53 -0
- package/src/tools/get-feed-requirements.ts +53 -0
- package/src/tools/get-housing-requirements.ts +52 -0
- package/src/tools/get-movement-rules.ts +45 -0
- package/src/tools/get-stocking-density.ts +52 -0
- package/src/tools/get-welfare-standards.ts +47 -0
- package/src/tools/list-sources.ts +65 -0
- package/src/tools/search-animal-health.ts +48 -0
- package/src/tools/search-livestock-guidance.ts +33 -0
- package/tests/db.test.ts +96 -0
- package/tests/helpers/seed-db.ts +97 -0
- package/tests/jurisdiction.test.ts +41 -0
- package/tests/tools/about.test.ts +32 -0
- package/tests/tools/check-freshness.test.ts +55 -0
- package/tests/tools/list-sources.test.ts +56 -0
- package/tests/tools/search-livestock-guidance.test.ts +63 -0
- package/tsconfig.json +19 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare function handleAbout(): {
|
|
2
|
+
name: string;
|
|
3
|
+
description: string;
|
|
4
|
+
version: string;
|
|
5
|
+
jurisdiction: "CH"[];
|
|
6
|
+
data_sources: string[];
|
|
7
|
+
tools_count: number;
|
|
8
|
+
links: {
|
|
9
|
+
homepage: string;
|
|
10
|
+
repository: string;
|
|
11
|
+
mcp_network: string;
|
|
12
|
+
};
|
|
13
|
+
_meta: import("../metadata.js").Meta;
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=about.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"about.d.ts","sourceRoot":"","sources":["../../src/tools/about.ts"],"names":[],"mappings":"AAGA,wBAAgB,WAAW;;;;;;;;;;;;;EAwB1B"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { buildMeta } from '../metadata.js';
|
|
2
|
+
import { SUPPORTED_JURISDICTIONS } from '../jurisdiction.js';
|
|
3
|
+
export function handleAbout() {
|
|
4
|
+
return {
|
|
5
|
+
name: 'Switzerland Livestock MCP',
|
|
6
|
+
description: 'Swiss livestock regulations based on the Tierschutzverordnung (TSchV), RAUS/BTS programmes (DZV), ' +
|
|
7
|
+
'TVD animal movement database, and breed registry data. Covers welfare standards, space requirements, ' +
|
|
8
|
+
'housing specifications, transport rules, feed requirements, animal health, and breeding guidance ' +
|
|
9
|
+
'for cattle, pigs, poultry, sheep, goats, and horses in Switzerland.',
|
|
10
|
+
version: '0.1.0',
|
|
11
|
+
jurisdiction: [...SUPPORTED_JURISDICTIONS],
|
|
12
|
+
data_sources: [
|
|
13
|
+
'Tierschutzverordnung TSchV (BLV)',
|
|
14
|
+
'Direktzahlungsverordnung DZV — RAUS/BTS (BLW)',
|
|
15
|
+
'Tierverkehrsdatenbank TVD (Identitas)',
|
|
16
|
+
'Zuchtorganisationen (Braunvieh Schweiz, swissherdbook, Mutterkuh Schweiz, Suisseporcs)',
|
|
17
|
+
],
|
|
18
|
+
tools_count: 11,
|
|
19
|
+
links: {
|
|
20
|
+
homepage: 'https://ansvar.eu/open-agriculture',
|
|
21
|
+
repository: 'https://github.com/ansvar-systems/ch-livestock-mcp',
|
|
22
|
+
mcp_network: 'https://ansvar.ai/mcp',
|
|
23
|
+
},
|
|
24
|
+
_meta: buildMeta(),
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=about.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"about.js","sourceRoot":"","sources":["../../src/tools/about.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,MAAM,UAAU,WAAW;IACzB,OAAO;QACL,IAAI,EAAE,2BAA2B;QACjC,WAAW,EACT,oGAAoG;YACpG,uGAAuG;YACvG,mGAAmG;YACnG,qEAAqE;QACvE,OAAO,EAAE,OAAO;QAChB,YAAY,EAAE,CAAC,GAAG,uBAAuB,CAAC;QAC1C,YAAY,EAAE;YACZ,kCAAkC;YAClC,+CAA+C;YAC/C,uCAAuC;YACvC,wFAAwF;SACzF;QACD,WAAW,EAAE,EAAE;QACf,KAAK,EAAE;YACL,QAAQ,EAAE,oCAAoC;YAC9C,UAAU,EAAE,oDAAoD;YAChE,WAAW,EAAE,uBAAuB;SACrC;QACD,KAAK,EAAE,SAAS,EAAE;KACnB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { buildMeta } from '../metadata.js';
|
|
2
|
+
import type { Database } from '../db.js';
|
|
3
|
+
interface FreshnessResult {
|
|
4
|
+
status: 'fresh' | 'stale' | 'unknown';
|
|
5
|
+
last_ingest: string | null;
|
|
6
|
+
build_date: string | null;
|
|
7
|
+
schema_version: string | null;
|
|
8
|
+
days_since_ingest: number | null;
|
|
9
|
+
staleness_threshold_days: number;
|
|
10
|
+
refresh_command: string;
|
|
11
|
+
_meta: ReturnType<typeof buildMeta>;
|
|
12
|
+
}
|
|
13
|
+
export declare function handleCheckFreshness(db: Database): FreshnessResult;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=check-freshness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-freshness.d.ts","sourceRoot":"","sources":["../../src/tools/check-freshness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,UAAU,eAAe;IACvB,MAAM,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;IACtC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,wBAAwB,EAAE,MAAM,CAAC;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;CACrC;AAID,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,QAAQ,GAAG,eAAe,CAyBlE"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { buildMeta } from '../metadata.js';
|
|
2
|
+
const STALENESS_THRESHOLD_DAYS = 90;
|
|
3
|
+
export function handleCheckFreshness(db) {
|
|
4
|
+
const lastIngest = db.get('SELECT value FROM db_metadata WHERE key = ?', ['last_ingest']);
|
|
5
|
+
const buildDate = db.get('SELECT value FROM db_metadata WHERE key = ?', ['build_date']);
|
|
6
|
+
const schemaVersion = db.get('SELECT value FROM db_metadata WHERE key = ?', ['schema_version']);
|
|
7
|
+
let status = 'unknown';
|
|
8
|
+
let daysSinceIngest = null;
|
|
9
|
+
if (lastIngest?.value) {
|
|
10
|
+
const ingestDate = new Date(lastIngest.value);
|
|
11
|
+
const now = new Date();
|
|
12
|
+
daysSinceIngest = Math.floor((now.getTime() - ingestDate.getTime()) / (1000 * 60 * 60 * 24));
|
|
13
|
+
status = daysSinceIngest <= STALENESS_THRESHOLD_DAYS ? 'fresh' : 'stale';
|
|
14
|
+
}
|
|
15
|
+
return {
|
|
16
|
+
status,
|
|
17
|
+
last_ingest: lastIngest?.value ?? null,
|
|
18
|
+
build_date: buildDate?.value ?? null,
|
|
19
|
+
schema_version: schemaVersion?.value ?? null,
|
|
20
|
+
days_since_ingest: daysSinceIngest,
|
|
21
|
+
staleness_threshold_days: STALENESS_THRESHOLD_DAYS,
|
|
22
|
+
refresh_command: 'gh workflow run ingest.yml -R ansvar-systems/ch-livestock-mcp',
|
|
23
|
+
_meta: buildMeta(),
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=check-freshness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-freshness.js","sourceRoot":"","sources":["../../src/tools/check-freshness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAc3C,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAEpC,MAAM,UAAU,oBAAoB,CAAC,EAAY;IAC/C,MAAM,UAAU,GAAG,EAAE,CAAC,GAAG,CAAoB,6CAA6C,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAC7G,MAAM,SAAS,GAAG,EAAE,CAAC,GAAG,CAAoB,6CAA6C,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAC3G,MAAM,aAAa,GAAG,EAAE,CAAC,GAAG,CAAoB,6CAA6C,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAEnH,IAAI,MAAM,GAAkC,SAAS,CAAC;IACtD,IAAI,eAAe,GAAkB,IAAI,CAAC;IAE1C,IAAI,UAAU,EAAE,KAAK,EAAE,CAAC;QACtB,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAC7F,MAAM,GAAG,eAAe,IAAI,wBAAwB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAC3E,CAAC;IAED,OAAO;QACL,MAAM;QACN,WAAW,EAAE,UAAU,EAAE,KAAK,IAAI,IAAI;QACtC,UAAU,EAAE,SAAS,EAAE,KAAK,IAAI,IAAI;QACpC,cAAc,EAAE,aAAa,EAAE,KAAK,IAAI,IAAI;QAC5C,iBAAiB,EAAE,eAAe;QAClC,wBAAwB,EAAE,wBAAwB;QAClD,eAAe,EAAE,+DAA+D;QAChF,KAAK,EAAE,SAAS,EAAE;KACnB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { Database } from '../db.js';
|
|
2
|
+
interface BreedingArgs {
|
|
3
|
+
species: string;
|
|
4
|
+
topic?: string;
|
|
5
|
+
jurisdiction?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function handleGetBreedingGuidance(db: Database, args: BreedingArgs): {
|
|
8
|
+
error: string;
|
|
9
|
+
supported: readonly string[];
|
|
10
|
+
message: string;
|
|
11
|
+
} | {
|
|
12
|
+
error: string;
|
|
13
|
+
message: string;
|
|
14
|
+
species?: undefined;
|
|
15
|
+
topic_filter?: undefined;
|
|
16
|
+
jurisdiction?: undefined;
|
|
17
|
+
results_count?: undefined;
|
|
18
|
+
results?: undefined;
|
|
19
|
+
_meta?: undefined;
|
|
20
|
+
} | {
|
|
21
|
+
species: string;
|
|
22
|
+
topic_filter: string | null;
|
|
23
|
+
jurisdiction: "CH";
|
|
24
|
+
results_count: number;
|
|
25
|
+
results: {
|
|
26
|
+
id: number;
|
|
27
|
+
species: string;
|
|
28
|
+
name: string;
|
|
29
|
+
purpose: string;
|
|
30
|
+
notes: string;
|
|
31
|
+
}[];
|
|
32
|
+
_meta: import("../metadata.js").Meta;
|
|
33
|
+
error?: undefined;
|
|
34
|
+
message?: undefined;
|
|
35
|
+
};
|
|
36
|
+
export {};
|
|
37
|
+
//# sourceMappingURL=get-breeding-guidance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-breeding-guidance.d.ts","sourceRoot":"","sources":["../../src/tools/get-breeding-guidance.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,UAAU,YAAY;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY;;;;;;;;;;;;;;;;;;;YAUlE,MAAM;iBAAW,MAAM;cAAQ,MAAM;iBAAW,MAAM;eAAS,MAAM;;;;;EAgC5E"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { buildMeta } from '../metadata.js';
|
|
2
|
+
import { validateJurisdiction } from '../jurisdiction.js';
|
|
3
|
+
export function handleGetBreedingGuidance(db, args) {
|
|
4
|
+
const jv = validateJurisdiction(args.jurisdiction);
|
|
5
|
+
if (!jv.valid)
|
|
6
|
+
return jv.error;
|
|
7
|
+
let sql = 'SELECT * FROM breeds WHERE LOWER(species) = LOWER(?) AND jurisdiction = ?';
|
|
8
|
+
const params = [args.species, jv.jurisdiction];
|
|
9
|
+
sql += ' ORDER BY name';
|
|
10
|
+
const breeds = db.all(sql, params);
|
|
11
|
+
if (breeds.length === 0) {
|
|
12
|
+
return {
|
|
13
|
+
error: 'not_found',
|
|
14
|
+
message: `No breed data found for species '${args.species}'. Available species: Rinder, Schweine, Schafe, Ziegen, Pferde.`,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
// If topic filter is given, filter breeds/notes by topic keyword
|
|
18
|
+
let filtered = breeds;
|
|
19
|
+
if (args.topic) {
|
|
20
|
+
const topicLower = args.topic.toLowerCase();
|
|
21
|
+
filtered = breeds.filter(b => {
|
|
22
|
+
const text = [b.name, b.purpose, b.notes].filter(Boolean).join(' ').toLowerCase();
|
|
23
|
+
return text.includes(topicLower);
|
|
24
|
+
});
|
|
25
|
+
// If topic filter yields nothing, return all breeds with a note
|
|
26
|
+
if (filtered.length === 0) {
|
|
27
|
+
filtered = breeds;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return {
|
|
31
|
+
species: args.species,
|
|
32
|
+
topic_filter: args.topic ?? null,
|
|
33
|
+
jurisdiction: jv.jurisdiction,
|
|
34
|
+
results_count: filtered.length,
|
|
35
|
+
results: filtered,
|
|
36
|
+
_meta: buildMeta(),
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=get-breeding-guidance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-breeding-guidance.js","sourceRoot":"","sources":["../../src/tools/get-breeding-guidance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAS1D,MAAM,UAAU,yBAAyB,CAAC,EAAY,EAAE,IAAkB;IACxE,MAAM,EAAE,GAAG,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACnD,IAAI,CAAC,EAAE,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC,KAAK,CAAC;IAE/B,IAAI,GAAG,GAAG,2EAA2E,CAAC;IACtF,MAAM,MAAM,GAAc,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC;IAE1D,GAAG,IAAI,gBAAgB,CAAC;IAExB,MAAM,MAAM,GAAG,EAAE,CAAC,GAAG,CAElB,GAAG,EAAE,MAAM,CAAC,CAAC;IAEhB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE,oCAAoC,IAAI,CAAC,OAAO,iEAAiE;SAC3H,CAAC;IACJ,CAAC;IAED,iEAAiE;IACjE,IAAI,QAAQ,GAAG,MAAM,CAAC;IACtB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAC5C,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YAC3B,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;YAClF,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,gEAAgE;QAChE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,QAAQ,GAAG,MAAM,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,YAAY,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;QAChC,YAAY,EAAE,EAAE,CAAC,YAAY;QAC7B,aAAa,EAAE,QAAQ,CAAC,MAAM;QAC9B,OAAO,EAAE,QAAQ;QACjB,KAAK,EAAE,SAAS,EAAE;KACnB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { Database } from '../db.js';
|
|
2
|
+
interface FeedArgs {
|
|
3
|
+
species: string;
|
|
4
|
+
age_class?: string;
|
|
5
|
+
production_stage?: string;
|
|
6
|
+
jurisdiction?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function handleGetFeedRequirements(db: Database, args: FeedArgs): {
|
|
9
|
+
error: string;
|
|
10
|
+
supported: readonly string[];
|
|
11
|
+
message: string;
|
|
12
|
+
} | {
|
|
13
|
+
error: string;
|
|
14
|
+
message: string;
|
|
15
|
+
species?: undefined;
|
|
16
|
+
jurisdiction?: undefined;
|
|
17
|
+
results_count?: undefined;
|
|
18
|
+
results?: undefined;
|
|
19
|
+
_meta?: undefined;
|
|
20
|
+
} | {
|
|
21
|
+
species: string;
|
|
22
|
+
jurisdiction: "CH";
|
|
23
|
+
results_count: number;
|
|
24
|
+
results: {
|
|
25
|
+
id: number;
|
|
26
|
+
species: string;
|
|
27
|
+
age_class: string;
|
|
28
|
+
production_stage: string;
|
|
29
|
+
feed_type: string;
|
|
30
|
+
quantity_kg_day: number | null;
|
|
31
|
+
energy_mj: number | null;
|
|
32
|
+
protein_g: number | null;
|
|
33
|
+
notes: string;
|
|
34
|
+
}[];
|
|
35
|
+
_meta: import("../metadata.js").Meta;
|
|
36
|
+
error?: undefined;
|
|
37
|
+
message?: undefined;
|
|
38
|
+
};
|
|
39
|
+
export {};
|
|
40
|
+
//# sourceMappingURL=get-feed-requirements.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-feed-requirements.d.ts","sourceRoot":"","sources":["../../src/tools/get-feed-requirements.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,UAAU,QAAQ;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ;;;;;;;;;;;;;;;;;YAoB9D,MAAM;iBAAW,MAAM;mBAAa,MAAM;0BAAoB,MAAM;mBAC7D,MAAM;yBAAmB,MAAM,GAAG,IAAI;mBAAa,MAAM,GAAG,IAAI;mBAChE,MAAM,GAAG,IAAI;eAAS,MAAM;;;;;EAmB1C"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { buildMeta } from '../metadata.js';
|
|
2
|
+
import { validateJurisdiction } from '../jurisdiction.js';
|
|
3
|
+
export function handleGetFeedRequirements(db, args) {
|
|
4
|
+
const jv = validateJurisdiction(args.jurisdiction);
|
|
5
|
+
if (!jv.valid)
|
|
6
|
+
return jv.error;
|
|
7
|
+
let sql = 'SELECT * FROM feed_requirements WHERE LOWER(species) = LOWER(?) AND jurisdiction = ?';
|
|
8
|
+
const params = [args.species, jv.jurisdiction];
|
|
9
|
+
if (args.age_class) {
|
|
10
|
+
sql += ' AND LOWER(age_class) = LOWER(?)';
|
|
11
|
+
params.push(args.age_class);
|
|
12
|
+
}
|
|
13
|
+
if (args.production_stage) {
|
|
14
|
+
sql += ' AND LOWER(production_stage) = LOWER(?)';
|
|
15
|
+
params.push(args.production_stage);
|
|
16
|
+
}
|
|
17
|
+
sql += ' ORDER BY age_class, production_stage';
|
|
18
|
+
const results = db.all(sql, params);
|
|
19
|
+
if (results.length === 0) {
|
|
20
|
+
return {
|
|
21
|
+
error: 'not_found',
|
|
22
|
+
message: `No feed requirement data found for species '${args.species}'` +
|
|
23
|
+
(args.age_class ? ` age class '${args.age_class}'` : '') +
|
|
24
|
+
(args.production_stage ? ` production stage '${args.production_stage}'` : '') + '.',
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
return {
|
|
28
|
+
species: args.species,
|
|
29
|
+
jurisdiction: jv.jurisdiction,
|
|
30
|
+
results_count: results.length,
|
|
31
|
+
results,
|
|
32
|
+
_meta: buildMeta(),
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=get-feed-requirements.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-feed-requirements.js","sourceRoot":"","sources":["../../src/tools/get-feed-requirements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAU1D,MAAM,UAAU,yBAAyB,CAAC,EAAY,EAAE,IAAc;IACpE,MAAM,EAAE,GAAG,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACnD,IAAI,CAAC,EAAE,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC,KAAK,CAAC;IAE/B,IAAI,GAAG,GAAG,sFAAsF,CAAC;IACjG,MAAM,MAAM,GAAc,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC;IAE1D,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,GAAG,IAAI,kCAAkC,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,GAAG,IAAI,yCAAyC,CAAC;QACjD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACrC,CAAC;IAED,GAAG,IAAI,uCAAuC,CAAC;IAE/C,MAAM,OAAO,GAAG,EAAE,CAAC,GAAG,CAInB,GAAG,EAAE,MAAM,CAAC,CAAC;IAEhB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE,+CAA+C,IAAI,CAAC,OAAO,GAAG;gBACrE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxD,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,sBAAsB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;SACtF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,YAAY,EAAE,EAAE,CAAC,YAAY;QAC7B,aAAa,EAAE,OAAO,CAAC,MAAM;QAC7B,OAAO;QACP,KAAK,EAAE,SAAS,EAAE;KACnB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { Database } from '../db.js';
|
|
2
|
+
interface HousingArgs {
|
|
3
|
+
species: string;
|
|
4
|
+
age_class?: string;
|
|
5
|
+
system?: string;
|
|
6
|
+
jurisdiction?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function handleGetHousingRequirements(db: Database, args: HousingArgs): {
|
|
9
|
+
error: string;
|
|
10
|
+
supported: readonly string[];
|
|
11
|
+
message: string;
|
|
12
|
+
} | {
|
|
13
|
+
error: string;
|
|
14
|
+
message: string;
|
|
15
|
+
species?: undefined;
|
|
16
|
+
jurisdiction?: undefined;
|
|
17
|
+
results_count?: undefined;
|
|
18
|
+
results?: undefined;
|
|
19
|
+
_meta?: undefined;
|
|
20
|
+
} | {
|
|
21
|
+
species: string;
|
|
22
|
+
jurisdiction: "CH";
|
|
23
|
+
results_count: number;
|
|
24
|
+
results: {
|
|
25
|
+
id: number;
|
|
26
|
+
species: string;
|
|
27
|
+
age_class: string;
|
|
28
|
+
system: string;
|
|
29
|
+
space: string;
|
|
30
|
+
ventilation: string;
|
|
31
|
+
flooring: string;
|
|
32
|
+
temperature: string;
|
|
33
|
+
}[];
|
|
34
|
+
_meta: import("../metadata.js").Meta;
|
|
35
|
+
error?: undefined;
|
|
36
|
+
message?: undefined;
|
|
37
|
+
};
|
|
38
|
+
export {};
|
|
39
|
+
//# sourceMappingURL=get-housing-requirements.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-housing-requirements.d.ts","sourceRoot":"","sources":["../../src/tools/get-housing-requirements.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,UAAU,WAAW;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW;;;;;;;;;;;;;;;;;YAoBpE,MAAM;iBAAW,MAAM;mBAAa,MAAM;gBAAU,MAAM;eACvD,MAAM;qBAAe,MAAM;kBAAY,MAAM;qBAAe,MAAM;;;;;EAmB5E"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { buildMeta } from '../metadata.js';
|
|
2
|
+
import { validateJurisdiction } from '../jurisdiction.js';
|
|
3
|
+
export function handleGetHousingRequirements(db, args) {
|
|
4
|
+
const jv = validateJurisdiction(args.jurisdiction);
|
|
5
|
+
if (!jv.valid)
|
|
6
|
+
return jv.error;
|
|
7
|
+
let sql = 'SELECT * FROM housing_requirements WHERE LOWER(species) = LOWER(?) AND jurisdiction = ?';
|
|
8
|
+
const params = [args.species, jv.jurisdiction];
|
|
9
|
+
if (args.age_class) {
|
|
10
|
+
sql += ' AND LOWER(age_class) = LOWER(?)';
|
|
11
|
+
params.push(args.age_class);
|
|
12
|
+
}
|
|
13
|
+
if (args.system) {
|
|
14
|
+
sql += ' AND LOWER(system) = LOWER(?)';
|
|
15
|
+
params.push(args.system);
|
|
16
|
+
}
|
|
17
|
+
sql += ' ORDER BY age_class, system';
|
|
18
|
+
const results = db.all(sql, params);
|
|
19
|
+
if (results.length === 0) {
|
|
20
|
+
return {
|
|
21
|
+
error: 'not_found',
|
|
22
|
+
message: `No housing requirements found for species '${args.species}'` +
|
|
23
|
+
(args.age_class ? ` age class '${args.age_class}'` : '') +
|
|
24
|
+
(args.system ? ` system '${args.system}'` : '') + '.',
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
return {
|
|
28
|
+
species: args.species,
|
|
29
|
+
jurisdiction: jv.jurisdiction,
|
|
30
|
+
results_count: results.length,
|
|
31
|
+
results,
|
|
32
|
+
_meta: buildMeta(),
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=get-housing-requirements.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-housing-requirements.js","sourceRoot":"","sources":["../../src/tools/get-housing-requirements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAU1D,MAAM,UAAU,4BAA4B,CAAC,EAAY,EAAE,IAAiB;IAC1E,MAAM,EAAE,GAAG,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACnD,IAAI,CAAC,EAAE,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC,KAAK,CAAC;IAE/B,IAAI,GAAG,GAAG,yFAAyF,CAAC;IACpG,MAAM,MAAM,GAAc,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC;IAE1D,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,GAAG,IAAI,kCAAkC,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,GAAG,IAAI,+BAA+B,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAED,GAAG,IAAI,6BAA6B,CAAC;IAErC,MAAM,OAAO,GAAG,EAAE,CAAC,GAAG,CAGnB,GAAG,EAAE,MAAM,CAAC,CAAC;IAEhB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE,8CAA8C,IAAI,CAAC,OAAO,GAAG;gBACpE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxD,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;SACxD,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,YAAY,EAAE,EAAE,CAAC,YAAY;QAC7B,aAAa,EAAE,OAAO,CAAC,MAAM;QAC7B,OAAO;QACP,KAAK,EAAE,SAAS,EAAE;KACnB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { Database } from '../db.js';
|
|
2
|
+
interface MovementArgs {
|
|
3
|
+
species: string;
|
|
4
|
+
rule_type?: string;
|
|
5
|
+
jurisdiction?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function handleGetMovementRules(db: Database, args: MovementArgs): {
|
|
8
|
+
error: string;
|
|
9
|
+
supported: readonly string[];
|
|
10
|
+
message: string;
|
|
11
|
+
} | {
|
|
12
|
+
error: string;
|
|
13
|
+
message: string;
|
|
14
|
+
species?: undefined;
|
|
15
|
+
rule_type_filter?: undefined;
|
|
16
|
+
jurisdiction?: undefined;
|
|
17
|
+
results_count?: undefined;
|
|
18
|
+
results?: undefined;
|
|
19
|
+
_meta?: undefined;
|
|
20
|
+
} | {
|
|
21
|
+
species: string;
|
|
22
|
+
rule_type_filter: string | null;
|
|
23
|
+
jurisdiction: "CH";
|
|
24
|
+
results_count: number;
|
|
25
|
+
results: {
|
|
26
|
+
id: number;
|
|
27
|
+
species: string;
|
|
28
|
+
rule_type: string;
|
|
29
|
+
description: string;
|
|
30
|
+
}[];
|
|
31
|
+
_meta: import("../metadata.js").Meta;
|
|
32
|
+
error?: undefined;
|
|
33
|
+
message?: undefined;
|
|
34
|
+
};
|
|
35
|
+
export {};
|
|
36
|
+
//# sourceMappingURL=get-movement-rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-movement-rules.d.ts","sourceRoot":"","sources":["../../src/tools/get-movement-rules.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,UAAU,YAAY;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY;;;;;;;;;;;;;;;;;;;YAe/D,MAAM;iBAAW,MAAM;mBAAa,MAAM;qBAAe,MAAM;;;;;EAmBtE"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { buildMeta } from '../metadata.js';
|
|
2
|
+
import { validateJurisdiction } from '../jurisdiction.js';
|
|
3
|
+
export function handleGetMovementRules(db, args) {
|
|
4
|
+
const jv = validateJurisdiction(args.jurisdiction);
|
|
5
|
+
if (!jv.valid)
|
|
6
|
+
return jv.error;
|
|
7
|
+
let sql = 'SELECT * FROM movement_rules WHERE LOWER(species) = LOWER(?) AND jurisdiction = ?';
|
|
8
|
+
const params = [args.species, jv.jurisdiction];
|
|
9
|
+
if (args.rule_type) {
|
|
10
|
+
sql += ' AND LOWER(rule_type) = LOWER(?)';
|
|
11
|
+
params.push(args.rule_type);
|
|
12
|
+
}
|
|
13
|
+
sql += ' ORDER BY rule_type';
|
|
14
|
+
const results = db.all(sql, params);
|
|
15
|
+
if (results.length === 0) {
|
|
16
|
+
return {
|
|
17
|
+
error: 'not_found',
|
|
18
|
+
message: `No movement rules found for species '${args.species}'` +
|
|
19
|
+
(args.rule_type ? ` rule type '${args.rule_type}'` : '') + '.',
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
return {
|
|
23
|
+
species: args.species,
|
|
24
|
+
rule_type_filter: args.rule_type ?? null,
|
|
25
|
+
jurisdiction: jv.jurisdiction,
|
|
26
|
+
results_count: results.length,
|
|
27
|
+
results,
|
|
28
|
+
_meta: buildMeta(),
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=get-movement-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-movement-rules.js","sourceRoot":"","sources":["../../src/tools/get-movement-rules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAS1D,MAAM,UAAU,sBAAsB,CAAC,EAAY,EAAE,IAAkB;IACrE,MAAM,EAAE,GAAG,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACnD,IAAI,CAAC,EAAE,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC,KAAK,CAAC;IAE/B,IAAI,GAAG,GAAG,mFAAmF,CAAC;IAC9F,MAAM,MAAM,GAAc,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC;IAE1D,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,GAAG,IAAI,kCAAkC,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC;IAED,GAAG,IAAI,qBAAqB,CAAC;IAE7B,MAAM,OAAO,GAAG,EAAE,CAAC,GAAG,CAEnB,GAAG,EAAE,MAAM,CAAC,CAAC;IAEhB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE,wCAAwC,IAAI,CAAC,OAAO,GAAG;gBAC9D,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;SACjE,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,gBAAgB,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;QACxC,YAAY,EAAE,EAAE,CAAC,YAAY;QAC7B,aAAa,EAAE,OAAO,CAAC,MAAM;QAC7B,OAAO;QACP,KAAK,EAAE,SAAS,EAAE;KACnB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { Database } from '../db.js';
|
|
2
|
+
interface StockingArgs {
|
|
3
|
+
species: string;
|
|
4
|
+
age_class?: string;
|
|
5
|
+
housing_type?: string;
|
|
6
|
+
jurisdiction?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function handleGetStockingDensity(db: Database, args: StockingArgs): {
|
|
9
|
+
error: string;
|
|
10
|
+
supported: readonly string[];
|
|
11
|
+
message: string;
|
|
12
|
+
} | {
|
|
13
|
+
error: string;
|
|
14
|
+
message: string;
|
|
15
|
+
species?: undefined;
|
|
16
|
+
jurisdiction?: undefined;
|
|
17
|
+
results_count?: undefined;
|
|
18
|
+
results?: undefined;
|
|
19
|
+
_meta?: undefined;
|
|
20
|
+
} | {
|
|
21
|
+
species: string;
|
|
22
|
+
jurisdiction: "CH";
|
|
23
|
+
results_count: number;
|
|
24
|
+
results: {
|
|
25
|
+
id: number;
|
|
26
|
+
species: string;
|
|
27
|
+
age_class: string;
|
|
28
|
+
housing_type: string;
|
|
29
|
+
animals_per_m2: number | null;
|
|
30
|
+
regulatory_minimum: string;
|
|
31
|
+
}[];
|
|
32
|
+
_meta: import("../metadata.js").Meta;
|
|
33
|
+
error?: undefined;
|
|
34
|
+
message?: undefined;
|
|
35
|
+
};
|
|
36
|
+
export {};
|
|
37
|
+
//# sourceMappingURL=get-stocking-density.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-stocking-density.d.ts","sourceRoot":"","sources":["../../src/tools/get-stocking-density.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,UAAU,YAAY;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY;;;;;;;;;;;;;;;;;YAoBjE,MAAM;iBAAW,MAAM;mBAAa,MAAM;sBAAgB,MAAM;wBACpD,MAAM,GAAG,IAAI;4BAAsB,MAAM;;;;;EAmB5D"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { buildMeta } from '../metadata.js';
|
|
2
|
+
import { validateJurisdiction } from '../jurisdiction.js';
|
|
3
|
+
export function handleGetStockingDensity(db, args) {
|
|
4
|
+
const jv = validateJurisdiction(args.jurisdiction);
|
|
5
|
+
if (!jv.valid)
|
|
6
|
+
return jv.error;
|
|
7
|
+
let sql = 'SELECT * FROM stocking_densities WHERE LOWER(species) = LOWER(?) AND jurisdiction = ?';
|
|
8
|
+
const params = [args.species, jv.jurisdiction];
|
|
9
|
+
if (args.age_class) {
|
|
10
|
+
sql += ' AND LOWER(age_class) = LOWER(?)';
|
|
11
|
+
params.push(args.age_class);
|
|
12
|
+
}
|
|
13
|
+
if (args.housing_type) {
|
|
14
|
+
sql += ' AND LOWER(housing_type) = LOWER(?)';
|
|
15
|
+
params.push(args.housing_type);
|
|
16
|
+
}
|
|
17
|
+
sql += ' ORDER BY age_class, housing_type';
|
|
18
|
+
const results = db.all(sql, params);
|
|
19
|
+
if (results.length === 0) {
|
|
20
|
+
return {
|
|
21
|
+
error: 'not_found',
|
|
22
|
+
message: `No stocking density data found for species '${args.species}'` +
|
|
23
|
+
(args.age_class ? ` age class '${args.age_class}'` : '') +
|
|
24
|
+
(args.housing_type ? ` housing type '${args.housing_type}'` : '') + '.',
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
return {
|
|
28
|
+
species: args.species,
|
|
29
|
+
jurisdiction: jv.jurisdiction,
|
|
30
|
+
results_count: results.length,
|
|
31
|
+
results,
|
|
32
|
+
_meta: buildMeta(),
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=get-stocking-density.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-stocking-density.js","sourceRoot":"","sources":["../../src/tools/get-stocking-density.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAU1D,MAAM,UAAU,wBAAwB,CAAC,EAAY,EAAE,IAAkB;IACvE,MAAM,EAAE,GAAG,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACnD,IAAI,CAAC,EAAE,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC,KAAK,CAAC;IAE/B,IAAI,GAAG,GAAG,uFAAuF,CAAC;IAClG,MAAM,MAAM,GAAc,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC;IAE1D,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,GAAG,IAAI,kCAAkC,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,GAAG,IAAI,qCAAqC,CAAC;QAC7C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACjC,CAAC;IAED,GAAG,IAAI,mCAAmC,CAAC;IAE3C,MAAM,OAAO,GAAG,EAAE,CAAC,GAAG,CAGnB,GAAG,EAAE,MAAM,CAAC,CAAC;IAEhB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE,+CAA+C,IAAI,CAAC,OAAO,GAAG;gBACrE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxD,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;SAC1E,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,YAAY,EAAE,EAAE,CAAC,YAAY;QAC7B,aAAa,EAAE,OAAO,CAAC,MAAM;QAC7B,OAAO;QACP,KAAK,EAAE,SAAS,EAAE;KACnB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { Database } from '../db.js';
|
|
2
|
+
interface WelfareArgs {
|
|
3
|
+
species: string;
|
|
4
|
+
production_system?: string;
|
|
5
|
+
jurisdiction?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function handleGetWelfareStandards(db: Database, args: WelfareArgs): {
|
|
8
|
+
error: string;
|
|
9
|
+
supported: readonly string[];
|
|
10
|
+
message: string;
|
|
11
|
+
} | {
|
|
12
|
+
error: string;
|
|
13
|
+
message: string;
|
|
14
|
+
species?: undefined;
|
|
15
|
+
production_system_filter?: undefined;
|
|
16
|
+
jurisdiction?: undefined;
|
|
17
|
+
results_count?: undefined;
|
|
18
|
+
results?: undefined;
|
|
19
|
+
_meta?: undefined;
|
|
20
|
+
} | {
|
|
21
|
+
species: string;
|
|
22
|
+
production_system_filter: string | null;
|
|
23
|
+
jurisdiction: "CH";
|
|
24
|
+
results_count: number;
|
|
25
|
+
results: {
|
|
26
|
+
id: number;
|
|
27
|
+
species: string;
|
|
28
|
+
production_system: string;
|
|
29
|
+
requirement: string;
|
|
30
|
+
min_space_m2: number | null;
|
|
31
|
+
details: string;
|
|
32
|
+
}[];
|
|
33
|
+
_meta: import("../metadata.js").Meta;
|
|
34
|
+
error?: undefined;
|
|
35
|
+
message?: undefined;
|
|
36
|
+
};
|
|
37
|
+
export {};
|
|
38
|
+
//# sourceMappingURL=get-welfare-standards.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-welfare-standards.d.ts","sourceRoot":"","sources":["../../src/tools/get-welfare-standards.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,UAAU,WAAW;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW;;;;;;;;;;;;;;;;;;;YAejE,MAAM;iBAAW,MAAM;2BAAqB,MAAM;qBACzC,MAAM;sBAAgB,MAAM,GAAG,IAAI;iBAAW,MAAM;;;;;EAoBpE"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { buildMeta } from '../metadata.js';
|
|
2
|
+
import { validateJurisdiction } from '../jurisdiction.js';
|
|
3
|
+
export function handleGetWelfareStandards(db, args) {
|
|
4
|
+
const jv = validateJurisdiction(args.jurisdiction);
|
|
5
|
+
if (!jv.valid)
|
|
6
|
+
return jv.error;
|
|
7
|
+
let sql = 'SELECT * FROM welfare_standards WHERE LOWER(species) = LOWER(?) AND jurisdiction = ?';
|
|
8
|
+
const params = [args.species, jv.jurisdiction];
|
|
9
|
+
if (args.production_system) {
|
|
10
|
+
sql += ' AND LOWER(production_system) = LOWER(?)';
|
|
11
|
+
params.push(args.production_system);
|
|
12
|
+
}
|
|
13
|
+
sql += ' ORDER BY production_system, requirement';
|
|
14
|
+
const results = db.all(sql, params);
|
|
15
|
+
if (results.length === 0) {
|
|
16
|
+
return {
|
|
17
|
+
error: 'not_found',
|
|
18
|
+
message: `No welfare standards found for species '${args.species}'` +
|
|
19
|
+
(args.production_system ? ` with production system '${args.production_system}'` : '') +
|
|
20
|
+
'. Available species: Rinder, Schweine, Gefluegel, Schafe, Ziegen, Pferde.',
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
return {
|
|
24
|
+
species: args.species,
|
|
25
|
+
production_system_filter: args.production_system ?? null,
|
|
26
|
+
jurisdiction: jv.jurisdiction,
|
|
27
|
+
results_count: results.length,
|
|
28
|
+
results,
|
|
29
|
+
_meta: buildMeta(),
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=get-welfare-standards.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-welfare-standards.js","sourceRoot":"","sources":["../../src/tools/get-welfare-standards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAS1D,MAAM,UAAU,yBAAyB,CAAC,EAAY,EAAE,IAAiB;IACvE,MAAM,EAAE,GAAG,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACnD,IAAI,CAAC,EAAE,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC,KAAK,CAAC;IAE/B,IAAI,GAAG,GAAG,sFAAsF,CAAC;IACjG,MAAM,MAAM,GAAc,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC;IAE1D,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,GAAG,IAAI,0CAA0C,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACtC,CAAC;IAED,GAAG,IAAI,0CAA0C,CAAC;IAElD,MAAM,OAAO,GAAG,EAAE,CAAC,GAAG,CAGnB,GAAG,EAAE,MAAM,CAAC,CAAC;IAEhB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE,2CAA2C,IAAI,CAAC,OAAO,GAAG;gBACjE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,4BAA4B,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrF,2EAA2E;SAC9E,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,wBAAwB,EAAE,IAAI,CAAC,iBAAiB,IAAI,IAAI;QACxD,YAAY,EAAE,EAAE,CAAC,YAAY;QAC7B,aAAa,EAAE,OAAO,CAAC,MAAM;QAC7B,OAAO;QACP,KAAK,EAAE,SAAS,EAAE;KACnB,CAAC;AACJ,CAAC"}
|