@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.
Files changed (113) hide show
  1. package/.github/workflows/check-freshness.yml +52 -0
  2. package/.github/workflows/ci.yml +21 -0
  3. package/.github/workflows/codeql.yml +31 -0
  4. package/.github/workflows/ghcr-build.yml +45 -0
  5. package/.github/workflows/gitleaks.yml +23 -0
  6. package/.github/workflows/ingest.yml +58 -0
  7. package/.github/workflows/publish.yml +24 -0
  8. package/CHANGELOG.md +24 -0
  9. package/CODEOWNERS +1 -0
  10. package/COVERAGE.md +62 -0
  11. package/DISCLAIMER.md +41 -0
  12. package/Dockerfile +26 -0
  13. package/LICENSE +17 -0
  14. package/PRIVACY.md +28 -0
  15. package/README.md +145 -0
  16. package/SECURITY.md +33 -0
  17. package/TOOLS.md +261 -0
  18. package/data/coverage.json +23 -0
  19. package/data/database.db +0 -0
  20. package/data/sources.yml +29 -0
  21. package/dist/db.d.ts +26 -0
  22. package/dist/db.d.ts.map +1 -0
  23. package/dist/db.js +220 -0
  24. package/dist/db.js.map +1 -0
  25. package/dist/http-server.d.ts +2 -0
  26. package/dist/http-server.d.ts.map +1 -0
  27. package/dist/http-server.js +294 -0
  28. package/dist/http-server.js.map +1 -0
  29. package/dist/jurisdiction.d.ts +18 -0
  30. package/dist/jurisdiction.d.ts.map +1 -0
  31. package/dist/jurisdiction.js +16 -0
  32. package/dist/jurisdiction.js.map +1 -0
  33. package/dist/metadata.d.ts +10 -0
  34. package/dist/metadata.d.ts.map +1 -0
  35. package/dist/metadata.js +21 -0
  36. package/dist/metadata.js.map +1 -0
  37. package/dist/server.d.ts +3 -0
  38. package/dist/server.d.ts.map +1 -0
  39. package/dist/server.js +240 -0
  40. package/dist/server.js.map +1 -0
  41. package/dist/tools/about.d.ts +15 -0
  42. package/dist/tools/about.d.ts.map +1 -0
  43. package/dist/tools/about.js +27 -0
  44. package/dist/tools/about.js.map +1 -0
  45. package/dist/tools/check-freshness.d.ts +15 -0
  46. package/dist/tools/check-freshness.d.ts.map +1 -0
  47. package/dist/tools/check-freshness.js +26 -0
  48. package/dist/tools/check-freshness.js.map +1 -0
  49. package/dist/tools/get-breeding-guidance.d.ts +37 -0
  50. package/dist/tools/get-breeding-guidance.d.ts.map +1 -0
  51. package/dist/tools/get-breeding-guidance.js +39 -0
  52. package/dist/tools/get-breeding-guidance.js.map +1 -0
  53. package/dist/tools/get-feed-requirements.d.ts +40 -0
  54. package/dist/tools/get-feed-requirements.d.ts.map +1 -0
  55. package/dist/tools/get-feed-requirements.js +35 -0
  56. package/dist/tools/get-feed-requirements.js.map +1 -0
  57. package/dist/tools/get-housing-requirements.d.ts +39 -0
  58. package/dist/tools/get-housing-requirements.d.ts.map +1 -0
  59. package/dist/tools/get-housing-requirements.js +35 -0
  60. package/dist/tools/get-housing-requirements.js.map +1 -0
  61. package/dist/tools/get-movement-rules.d.ts +36 -0
  62. package/dist/tools/get-movement-rules.d.ts.map +1 -0
  63. package/dist/tools/get-movement-rules.js +31 -0
  64. package/dist/tools/get-movement-rules.js.map +1 -0
  65. package/dist/tools/get-stocking-density.d.ts +37 -0
  66. package/dist/tools/get-stocking-density.d.ts.map +1 -0
  67. package/dist/tools/get-stocking-density.js +35 -0
  68. package/dist/tools/get-stocking-density.js.map +1 -0
  69. package/dist/tools/get-welfare-standards.d.ts +38 -0
  70. package/dist/tools/get-welfare-standards.d.ts.map +1 -0
  71. package/dist/tools/get-welfare-standards.js +32 -0
  72. package/dist/tools/get-welfare-standards.js.map +1 -0
  73. package/dist/tools/list-sources.d.ts +18 -0
  74. package/dist/tools/list-sources.d.ts.map +1 -0
  75. package/dist/tools/list-sources.js +51 -0
  76. package/dist/tools/list-sources.js.map +1 -0
  77. package/dist/tools/search-animal-health.d.ts +28 -0
  78. package/dist/tools/search-animal-health.d.ts.map +1 -0
  79. package/dist/tools/search-animal-health.js +33 -0
  80. package/dist/tools/search-animal-health.js.map +1 -0
  81. package/dist/tools/search-livestock-guidance.d.ts +27 -0
  82. package/dist/tools/search-livestock-guidance.d.ts.map +1 -0
  83. package/dist/tools/search-livestock-guidance.js +25 -0
  84. package/dist/tools/search-livestock-guidance.js.map +1 -0
  85. package/docker-compose.yml +12 -0
  86. package/eslint.config.js +27 -0
  87. package/package.json +54 -0
  88. package/scripts/ingest.ts +553 -0
  89. package/server.json +10 -0
  90. package/src/db.ts +268 -0
  91. package/src/http-server.ts +327 -0
  92. package/src/jurisdiction.ts +30 -0
  93. package/src/metadata.ts +31 -0
  94. package/src/server.ts +264 -0
  95. package/src/tools/about.ts +28 -0
  96. package/src/tools/check-freshness.ts +42 -0
  97. package/src/tools/get-breeding-guidance.ts +53 -0
  98. package/src/tools/get-feed-requirements.ts +53 -0
  99. package/src/tools/get-housing-requirements.ts +52 -0
  100. package/src/tools/get-movement-rules.ts +45 -0
  101. package/src/tools/get-stocking-density.ts +52 -0
  102. package/src/tools/get-welfare-standards.ts +47 -0
  103. package/src/tools/list-sources.ts +65 -0
  104. package/src/tools/search-animal-health.ts +48 -0
  105. package/src/tools/search-livestock-guidance.ts +33 -0
  106. package/tests/db.test.ts +96 -0
  107. package/tests/helpers/seed-db.ts +97 -0
  108. package/tests/jurisdiction.test.ts +41 -0
  109. package/tests/tools/about.test.ts +32 -0
  110. package/tests/tools/check-freshness.test.ts +55 -0
  111. package/tests/tools/list-sources.test.ts +56 -0
  112. package/tests/tools/search-livestock-guidance.test.ts +63 -0
  113. 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"}