wellness-nourish 0.1.1 → 0.1.3

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 (43) hide show
  1. package/README.md +9 -5
  2. package/dist/cli/hermes.d.ts +1 -0
  3. package/dist/cli/hermes.js +40 -15
  4. package/dist/cli/hermes.js.map +1 -1
  5. package/dist/constants.d.ts +3 -3
  6. package/dist/constants.js +1 -1
  7. package/dist/prompts/nourish-prompts.js +1 -1
  8. package/dist/prompts/nourish-prompts.js.map +1 -1
  9. package/dist/providers/open-food-facts.d.ts +4 -2
  10. package/dist/providers/open-food-facts.js +62 -2
  11. package/dist/providers/open-food-facts.js.map +1 -1
  12. package/dist/providers/usda.js +35 -1
  13. package/dist/providers/usda.js.map +1 -1
  14. package/dist/schemas/common.d.ts +42 -0
  15. package/dist/schemas/common.js +50 -34
  16. package/dist/schemas/common.js.map +1 -1
  17. package/dist/services/agent-manifest.js +12 -0
  18. package/dist/services/agent-manifest.js.map +1 -1
  19. package/dist/services/capabilities.d.ts +3 -0
  20. package/dist/services/capabilities.js +6 -0
  21. package/dist/services/capabilities.js.map +1 -1
  22. package/dist/services/format.d.ts +1 -0
  23. package/dist/services/format.js +12 -0
  24. package/dist/services/format.js.map +1 -1
  25. package/dist/services/image-decoder.d.ts +24 -0
  26. package/dist/services/image-decoder.js +159 -0
  27. package/dist/services/image-decoder.js.map +1 -0
  28. package/dist/services/meal-estimator.js +80 -6
  29. package/dist/services/meal-estimator.js.map +1 -1
  30. package/dist/services/photo-meal-estimator.d.ts +32 -0
  31. package/dist/services/photo-meal-estimator.js +58 -0
  32. package/dist/services/photo-meal-estimator.js.map +1 -0
  33. package/dist/services/portion-engine.js +12 -0
  34. package/dist/services/portion-engine.js.map +1 -1
  35. package/dist/services/usage-guide.js +29 -0
  36. package/dist/services/usage-guide.js.map +1 -1
  37. package/dist/tools/nourish-tools.js +125 -3
  38. package/dist/tools/nourish-tools.js.map +1 -1
  39. package/examples/hermes-skill.md +8 -2
  40. package/examples/hermes.md +7 -5
  41. package/fixtures/usda/search-banana.json +11 -0
  42. package/package.json +5 -2
  43. package/server.json +2 -2
package/README.md CHANGED
@@ -2,9 +2,9 @@
2
2
 
3
3
  ## Overview
4
4
 
5
- Wellness Nourish is a local MCP server for nutrition search, barcode lookup, meal estimation, intake logging, hydration, goals, exports, and daily or weekly summaries. It runs over stdio by default for MCP clients and can also run a Streamable HTTP endpoint at `POST /mcp`.
5
+ Wellness Nourish is a local MCP server for nutrition search, barcode lookup, barcode photo lookup, photo-assisted meal estimation, intake logging, hydration, goals, exports, and daily or weekly summaries. It runs over stdio by default for MCP clients and can also run a Streamable HTTP endpoint at `POST /mcp`.
6
6
 
7
- The connector uses USDA FoodData Central as the primary food search provider. Open Food Facts is used for packaged-food barcode lookup when enabled. It does not provide hosted sync, photo analysis, recipe generation, or medical advice.
7
+ The connector uses USDA FoodData Central as the primary food search provider. Open Food Facts is used for packaged-food barcode lookup when enabled. Local barcode image decoding is supported with ZXing. Meal photos are estimated only from an agent-provided visual observation and always require confirmation before logging. The local estimator includes a small pt-BR/Brazilian-food dictionary for common meals such as arroz, feijão, frango, ovos, banana and salada. It does not provide hosted sync, autonomous photo upload, recipe generation, or medical advice.
8
8
 
9
9
  ## Install
10
10
 
@@ -105,13 +105,17 @@ hermes mcp test nourish
105
105
 
106
106
  This adds a `nourish` MCP server block to `~/.hermes/config.yaml`, installs `~/.hermes/skills/nourish-mcp/SKILL.md`, and pins the npm package version. After config changes, use `/reload-mcp` or `hermes mcp test nourish`.
107
107
 
108
+ Hermes setup also writes `~/.hermes/scripts/nourish-mcp-wrapper.sh`. The wrapper sources `~/.hermes/secrets/nourish.env` when present, so `FDC_API_KEY` can be managed as a server-side secret without pasting it into chat or relying on a stale shell session.
109
+
108
110
  Recommended Telegram flow:
109
111
 
110
112
  1. User says what they ate.
111
113
  2. Hermes calls `nourish_estimate_meal` and replies with calories, protein, confidence and warnings.
112
- 3. User confirms saving.
113
- 4. Hermes calls `nourish_log_intake` with `explicit_user_intent: true`.
114
- 5. User can ask for `today`, weekly summaries, goals, hydration, edits, deletes or exports.
114
+ 3. For barcode photos, Hermes calls `nourish_lookup_barcode_image` when it has an image path, base64 image, or data URI.
115
+ 4. For meal photos, Hermes describes visible food and portions, calls `nourish_estimate_meal_photo`, and asks for portion confirmation.
116
+ 5. User confirms saving.
117
+ 6. Hermes calls `nourish_log_intake` with `explicit_user_intent: true`.
118
+ 7. User can ask for `today`, weekly summaries, goals, hydration, edits, deletes or exports.
115
119
 
116
120
  Local build:
117
121
 
@@ -8,6 +8,7 @@ export interface HermesSetupResult {
8
8
  client: "hermes";
9
9
  client_config_path: string;
10
10
  hermes_skill_path: string;
11
+ nourish_wrapper_path: string;
11
12
  hermes_config_backup_path?: string;
12
13
  nourish_local_dir: string;
13
14
  personal_telegram_ready: true;
@@ -9,16 +9,21 @@ export function setupHermes(options = {}) {
9
9
  const localDir = expandHome(options.localDir ?? join(homeDir, ".hermes", "nourish", profile));
10
10
  const configPath = join(homeDir, ".hermes", "config.yaml");
11
11
  const skillPath = join(homeDir, ".hermes", "skills", "nourish-mcp", "SKILL.md");
12
+ const wrapperPath = join(homeDir, ".hermes", "scripts", "nourish-mcp-wrapper.sh");
12
13
  mkdirSync(localDir, { recursive: true, mode: 0o700 });
13
14
  chmodSync(localDir, 0o700);
14
15
  mkdirSync(dirname(configPath), { recursive: true, mode: 0o700 });
15
16
  mkdirSync(dirname(skillPath), { recursive: true, mode: 0o700 });
16
- const backupPath = mergeHermesConfig(configPath, localDir);
17
+ mkdirSync(dirname(wrapperPath), { recursive: true, mode: 0o700 });
18
+ writeFileSync(wrapperPath, `${nourishWrapperScript()}\n`, { mode: 0o700 });
19
+ chmodSync(wrapperPath, 0o700);
20
+ const backupPath = mergeHermesConfig(configPath, localDir, wrapperPath);
17
21
  writeFileSync(skillPath, `${hermesSkillMarkdown(localDir)}\n`, { mode: 0o600 });
18
22
  chmodSync(skillPath, 0o600);
19
23
  const warnings = [
20
24
  "After editing Hermes MCP config, use `/reload-mcp` or `hermes mcp test nourish`; do not restart the Hermes gateway for normal Nourish data access.",
21
25
  `Hermes config pins ${PINNED_NPM_PACKAGE} to avoid stale npx cache behavior.`,
26
+ "Hermes runs Nourish through a wrapper that sources ~/.hermes/secrets/nourish.env when present, without printing secrets.",
22
27
  "Food logs are personal data; keep NOURISH_LOCAL_DIR scoped to the intended Telegram user/profile.",
23
28
  ];
24
29
  return {
@@ -26,6 +31,7 @@ export function setupHermes(options = {}) {
26
31
  client: "hermes",
27
32
  client_config_path: configPath,
28
33
  hermes_skill_path: skillPath,
34
+ nourish_wrapper_path: wrapperPath,
29
35
  ...(backupPath === undefined ? {} : { hermes_config_backup_path: backupPath }),
30
36
  nourish_local_dir: localDir,
31
37
  personal_telegram_ready: true,
@@ -43,12 +49,14 @@ export function inspectHermes(options = {}) {
43
49
  const skillPath = join(homeDir, ".hermes", "skills", "nourish-mcp", "SKILL.md");
44
50
  const configExists = existsSync(configPath);
45
51
  const config = configExists ? readFileSync(configPath, "utf8") : "";
52
+ const wrapperPath = join(homeDir, ".hermes", "scripts", "nourish-mcp-wrapper.sh");
53
+ const wrapper = existsSync(wrapperPath) ? readFileSync(wrapperPath, "utf8") : "";
46
54
  const localDir = parseNourishLocalDir(config);
47
55
  const skillInstalled = existsSync(skillPath);
48
56
  const check = {
49
57
  config_exists: configExists,
50
- nourish_server_configured: /^\s*nourish\s*:/m.test(config) && /wellness-nourish/.test(config),
51
- package_pinned: config.includes(PINNED_NPM_PACKAGE),
58
+ nourish_server_configured: /^\s*nourish\s*:/m.test(config) && (/wellness-nourish/.test(config) || /nourish-mcp-wrapper\.sh/.test(config)),
59
+ package_pinned: config.includes(PINNED_NPM_PACKAGE) || wrapper.includes(PINNED_NPM_PACKAGE),
52
60
  skill_installed: skillInstalled,
53
61
  ...(localDir === undefined ? {} : { nourish_local_dir: localDir }),
54
62
  nourish_local_dir_exists: localDir === undefined ? false : existsSync(expandHome(localDir)),
@@ -80,6 +88,10 @@ export function hermesSkillMarkdown(localDir = "~/.wellness-nourish") {
80
88
  "",
81
89
  "- If the user says `registra`, `anota`, `log`, `salva`, or otherwise clearly asks to save a meal, call `mcp_nourish_nourish_log_intake` with `explicit_user_intent: true`.",
82
90
  "- If the user only says what they ate, first call `mcp_nourish_nourish_estimate_meal`, return a compact preview with calories, protein, confidence and warnings, then ask whether to save it.",
91
+ "- If the user sends a barcode photo and Hermes has an image path, base64 image, or data URI, call `mcp_nourish_nourish_lookup_barcode_image`; if only visible digits are available, call `mcp_nourish_nourish_lookup_barcode`.",
92
+ "- If the user sends a meal photo, describe the visible food and portions as `detected_items`, call `mcp_nourish_nourish_estimate_meal_photo`, then ask the user to confirm portions before logging.",
93
+ "- For Portuguese/Brazilian meals, preserve explicit quantities such as `200g arroz`, `120g feijão`, `150g frango`, call estimate with `locale: pt-BR`, and ask one concise clarification only for unresolved foods.",
94
+ "- If a tool returns `USER_ACTION_REQUIRED`, treat it as a normal confirmation guard, not as a server outage.",
83
95
  "- Preserve uncertainty. Include confidence and unresolved items instead of pretending estimates are exact.",
84
96
  "- Use `response_format: markdown` for Telegram-facing summaries when available.",
85
97
  "",
@@ -88,16 +100,18 @@ export function hermesSkillMarkdown(localDir = "~/.wellness-nourish") {
88
100
  "1. `mcp_nourish_nourish_connection_status`",
89
101
  "2. `mcp_nourish_nourish_capabilities`",
90
102
  "3. `mcp_nourish_nourish_estimate_meal` for natural-language meals",
91
- "4. `mcp_nourish_nourish_log_intake` only after explicit save intent",
92
- "5. `mcp_nourish_nourish_daily_summary` for today's Telegram summary",
103
+ "4. `mcp_nourish_nourish_lookup_barcode_image` for barcode photos",
104
+ "5. `mcp_nourish_nourish_estimate_meal_photo` for meal photo previews",
105
+ "6. `mcp_nourish_nourish_log_intake` only after explicit save intent",
106
+ "7. `mcp_nourish_nourish_daily_summary` for today's Telegram summary",
93
107
  "",
94
108
  "## Personal Store",
95
109
  "",
96
110
  `Configured local store: \`${localDir}\`.`,
97
111
  ].join("\n");
98
112
  }
99
- function mergeHermesConfig(configPath, localDir) {
100
- const snippet = `mcp_servers:\n${nourishServerBlock(localDir)}\n`;
113
+ function mergeHermesConfig(configPath, localDir, wrapperPath) {
114
+ const snippet = `mcp_servers:\n${nourishServerBlock(localDir, wrapperPath)}\n`;
101
115
  if (!existsSync(configPath)) {
102
116
  writeFileSync(configPath, ensureReloadHint(snippet), { mode: 0o600 });
103
117
  chmodSync(configPath, 0o600);
@@ -105,14 +119,14 @@ function mergeHermesConfig(configPath, localDir) {
105
119
  }
106
120
  const backupPath = backupConfig(configPath);
107
121
  const existing = readFileSync(configPath, "utf8");
108
- const next = existing.trimEnd().length ? upsertNourishBlock(existing, localDir) : snippet;
122
+ const next = existing.trimEnd().length ? upsertNourishBlock(existing, localDir, wrapperPath) : snippet;
109
123
  writeFileSync(configPath, ensureReloadHint(next), { mode: 0o600 });
110
124
  chmodSync(configPath, 0o600);
111
125
  return backupPath;
112
126
  }
113
- function upsertNourishBlock(existing, localDir) {
127
+ function upsertNourishBlock(existing, localDir, wrapperPath) {
114
128
  const lines = existing.trimEnd().split("\n");
115
- const block = nourishServerBlock(localDir).split("\n");
129
+ const block = nourishServerBlock(localDir, wrapperPath).split("\n");
116
130
  const mcpIndex = lines.findIndex((line) => /^mcp_servers:\s*$/.test(line));
117
131
  if (mcpIndex === -1) {
118
132
  return `${lines.join("\n")}\n\n# Added by ${NPM_PACKAGE_NAME} setup.\nmcp_servers:\n${block.join("\n")}\n`;
@@ -133,18 +147,29 @@ function upsertNourishBlock(existing, localDir) {
133
147
  lines.splice(start, end - start, ...block);
134
148
  return `${lines.join("\n")}\n`;
135
149
  }
136
- function nourishServerBlock(localDir) {
150
+ function nourishServerBlock(localDir, wrapperPath) {
137
151
  return [
138
152
  " nourish:",
139
- " command: npx",
140
- " args:",
141
- " - -y",
142
- ` - ${PINNED_NPM_PACKAGE}`,
153
+ ` command: ${wrapperPath}`,
143
154
  " env:",
144
155
  ` NOURISH_LOCAL_DIR: ${localDir}`,
145
156
  ' NOURISH_OFF_ENABLED: "1"',
146
157
  ].join("\n");
147
158
  }
159
+ function nourishWrapperScript() {
160
+ return [
161
+ "#!/usr/bin/env bash",
162
+ "set -euo pipefail",
163
+ 'SECRET_FILE="${NOURISH_ENV_FILE:-${HERMES_HOME:-$HOME/.hermes}/secrets/nourish.env}"',
164
+ 'if [ -f "$SECRET_FILE" ]; then',
165
+ " set -a",
166
+ ' . "$SECRET_FILE"',
167
+ " set +a",
168
+ "fi",
169
+ 'export NOURISH_OFF_ENABLED="${NOURISH_OFF_ENABLED:-1}"',
170
+ `exec npx -y ${PINNED_NPM_PACKAGE} "$@"`,
171
+ ].join("\n");
172
+ }
148
173
  function backupConfig(path) {
149
174
  const backupPath = `${path}.bak-nourish-mcp-${new Date().toISOString().replace(/[-:]/g, "").replace(/\..+/, "Z")}`;
150
175
  renameSync(path, backupPath);
@@ -1 +1 @@
1
- {"version":3,"file":"hermes.js","sourceRoot":"","sources":["../../src/cli/hermes.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAE9B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACpG,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AA8BvE,MAAM,UAAU,WAAW,CAAC,UAA8B,EAAE;IAC1D,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,EAAE,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,IAAI,UAAU,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9F,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;IAEhF,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACtD,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC3B,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACjE,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAEhE,MAAM,UAAU,GAAG,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC3D,aAAa,CAAC,SAAS,EAAE,GAAG,mBAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAChF,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAE5B,MAAM,QAAQ,GAAG;QACf,oJAAoJ;QACpJ,sBAAsB,kBAAkB,qCAAqC;QAC7E,mGAAmG;KACpG,CAAC;IAEF,OAAO;QACL,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,QAAQ;QAChB,kBAAkB,EAAE,UAAU;QAC9B,iBAAiB,EAAE,SAAS;QAC5B,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,yBAAyB,EAAE,UAAU,EAAE,CAAC;QAC9E,iBAAiB,EAAE,QAAQ;QAC3B,uBAAuB,EAAE,IAAI;QAC7B,QAAQ;QACR,UAAU,EAAE;YACV,uDAAuD;YACvD,oEAAoE;YACpE,mGAAmG;SACpG;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,UAA8B,EAAE;IAC5D,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,EAAE,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;IAChF,MAAM,YAAY,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpE,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IAE7C,MAAM,KAAK,GAA+C;QACxD,aAAa,EAAE,YAAY;QAC3B,yBAAyB,EAAE,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC;QAC7F,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QACnD,eAAe,EAAE,cAAc;QAC/B,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC;QAClE,wBAAwB,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;KAC5F,CAAC;IAEF,OAAO;QACL,GAAG,KAAK;QACR,eAAe,EAAE,0BAA0B,CAAC,KAAK,CAAC;KACnD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAQ,GAAG,qBAAqB;IAClE,OAAO;QACL,eAAe;QACf,EAAE;QACF,yMAAyM;QACzM,EAAE;QACF,qBAAqB;QACrB,EAAE;QACF,8CAA8C;QAC9C,uHAAuH;QACvH,wIAAwI;QACxI,2HAA2H;QAC3H,qIAAqI;QACrI,8HAA8H;QAC9H,iHAAiH;QACjH,oGAAoG;QACpG,4FAA4F;QAC5F,EAAE;QACF,0BAA0B;QAC1B,EAAE;QACF,4KAA4K;QAC5K,+LAA+L;QAC/L,4GAA4G;QAC5G,iFAAiF;QACjF,EAAE;QACF,gBAAgB;QAChB,EAAE;QACF,4CAA4C;QAC5C,uCAAuC;QACvC,mEAAmE;QACnE,qEAAqE;QACrE,qEAAqE;QACrE,EAAE;QACF,mBAAmB;QACnB,EAAE;QACF,6BAA6B,QAAQ,KAAK;KAC3C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB,CAAC,UAAkB,EAAE,QAAgB;IAC7D,MAAM,OAAO,GAAG,iBAAiB,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC;IAClE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,aAAa,CAAC,UAAU,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACtE,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC7B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAE1F,aAAa,CAAC,UAAU,EAAE,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACnE,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC7B,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgB,EAAE,QAAgB;IAC5D,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAE3E,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;QACpB,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,gBAAgB,0BAA0B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAC7G,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,QAAQ,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACjG,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,KAAK,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC;QACxC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACjC,CAAC;IAED,IAAI,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC;IACpB,OAAO,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7E,MAAM;QACR,CAAC;QACD,GAAG,IAAI,CAAC,CAAC;IACX,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC;IAC3C,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgB;IAC1C,OAAO;QACL,YAAY;QACZ,kBAAkB;QAClB,WAAW;QACX,YAAY;QACZ,WAAW,kBAAkB,EAAE;QAC/B,UAAU;QACV,4BAA4B,QAAQ,EAAE;QACtC,gCAAgC;KACjC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,UAAU,GAAG,GAAG,IAAI,oBAAoB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;IACnH,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC7B,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC7B,aAAa,CAAC,IAAI,EAAE,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACvE,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACvB,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,IAAI,gCAAgC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC;IAClD,CAAC;IAED,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,iCAAiC,CAAC;IAC5D,CAAC;IAED,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,+CAA+C,CAAC;AAC1E,CAAC;AAED,SAAS,0BAA0B,CAAC,KAAiD;IACnF,MAAM,eAAe,GAAa,EAAE,CAAC;IAErC,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,yBAAyB,EAAE,CAAC;QAC7D,eAAe,CAAC,IAAI,CAAC,uHAAuH,CAAC,CAAC;IAChJ,CAAC;IACD,IAAI,KAAK,CAAC,yBAAyB,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAC7D,eAAe,CAAC,IAAI,CAAC,mCAAmC,kBAAkB,uCAAuC,CAAC,CAAC;IACrH,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;QAC3B,eAAe,CAAC,IAAI,CAAC,iHAAiH,CAAC,CAAC;IAC1I,CAAC;IACD,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE,CAAC;QAC7E,eAAe,CAAC,IAAI,CAAC,0DAA0D,KAAK,CAAC,iBAAiB,KAAK,CAAC,CAAC;IAC/G,CAAC;IAED,eAAe,CAAC,IAAI,CAAC,yIAAyI,CAAC,CAAC;IAChK,eAAe,CAAC,IAAI,CAAC,uFAAuF,CAAC,CAAC;IAC9G,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAc;IAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7E,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,IAAI,KAAK,GAAG,YAAY,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAChC,IAAI,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7E,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAC/D,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACf,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa;IACtC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC/G,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;QACjB,OAAO,OAAO,EAAE,CAAC;IACnB,CAAC;IAED,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAe;IACvC,OAAO,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC;AACxF,CAAC"}
1
+ {"version":3,"file":"hermes.js","sourceRoot":"","sources":["../../src/cli/hermes.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  export declare const SERVER_NAME = "nourish-mcp";
2
- export declare const SERVER_VERSION = "0.1.1";
2
+ export declare const SERVER_VERSION = "0.1.3";
3
3
  export declare const NPM_PACKAGE_NAME = "wellness-nourish";
4
- export declare const PINNED_NPM_PACKAGE = "wellness-nourish@0.1.1";
4
+ export declare const PINNED_NPM_PACKAGE = "wellness-nourish@0.1.3";
5
5
  export declare const DEFAULT_HOST = "127.0.0.1";
6
6
  export declare const DEFAULT_PORT = 3000;
7
7
  export declare const LOCAL_DIR_NAME = ".wellness-nourish";
8
- export declare const USER_AGENT = "wellness-nourish/0.1.1 (https://wellness.delx.ai; contact: david@delx.ai)";
8
+ export declare const USER_AGENT = "wellness-nourish/0.1.3 (https://wellness.delx.ai; contact: david@delx.ai)";
9
9
  export declare const USDA_BASE_URL = "https://api.nal.usda.gov/fdc/v1";
10
10
  export declare const OFF_BASE_URL = "https://world.openfoodfacts.org";
package/dist/constants.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export const SERVER_NAME = "nourish-mcp";
2
- export const SERVER_VERSION = "0.1.1";
2
+ export const SERVER_VERSION = "0.1.3";
3
3
  export const NPM_PACKAGE_NAME = "wellness-nourish";
4
4
  export const PINNED_NPM_PACKAGE = `${NPM_PACKAGE_NAME}@${SERVER_VERSION}`;
5
5
  export const DEFAULT_HOST = "127.0.0.1";
@@ -22,7 +22,7 @@ export function registerNourishPrompts(server) {
22
22
  role: "user",
23
23
  content: {
24
24
  type: "text",
25
- text: "For a Telegram meal message, call nourish_connection_status if needed, then use nourish_estimate_meal first. Reply with a compact Markdown preview: calories, protein, confidence, unresolved items, and warnings. If the user clearly asked to save/register/log, call nourish_log_intake with explicit_user_intent true. Otherwise ask for confirmation before logging. Do not provide medical advice.",
25
+ text: "For a Telegram meal message, call nourish_connection_status if needed. For plain text meals, use nourish_estimate_meal first. For barcode photos with image_path, image_base64, or image_data_uri, use nourish_lookup_barcode_image. For meal photos, describe the visible food/portions as detected_items and call nourish_estimate_meal_photo. Reply with a compact Markdown preview: calories, protein, confidence, unresolved items, and warnings. If the user clearly asked to save/register/log and the estimate is already confirmed, call nourish_log_intake with explicit_user_intent true. Otherwise ask for confirmation before logging. Do not provide medical advice.",
26
26
  },
27
27
  },
28
28
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"nourish-prompts.js","sourceRoot":"","sources":["../../src/prompts/nourish-prompts.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,sBAAsB,CAAC,MAAiB;IACtD,MAAM,CAAC,cAAc,CACnB,sBAAsB,EACtB;QACE,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,mFAAmF;KACjG,EACD,KAAK,IAAI,EAAE,CAAC,CAAC;QACX,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EACF,sSAAsS;iBACzS;aACF;SACF;KACF,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,cAAc,CACnB,2BAA2B,EAC3B;QACE,KAAK,EAAE,2BAA2B;QAClC,WAAW,EAAE,kEAAkE;KAChF,EACD,KAAK,IAAI,EAAE,CAAC,CAAC;QACX,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EACF,0YAA0Y;iBAC7Y;aACF;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"nourish-prompts.js","sourceRoot":"","sources":["../../src/prompts/nourish-prompts.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,sBAAsB,CAAC,MAAiB;IACtD,MAAM,CAAC,cAAc,CACnB,sBAAsB,EACtB;QACE,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,mFAAmF;KACjG,EACD,KAAK,IAAI,EAAE,CAAC,CAAC;QACX,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EACF,sSAAsS;iBACzS;aACF;SACF;KACF,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,cAAc,CACnB,2BAA2B,EAC3B;QACE,KAAK,EAAE,2BAA2B;QAClC,WAAW,EAAE,kEAAkE;KAChF,EACD,KAAK,IAAI,EAAE,CAAC,CAAC;QACX,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EACF,opBAAopB;iBACvpB;aACF;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -1,5 +1,7 @@
1
1
  import type { FoodItem } from "../types.js";
2
- export declare function lookupOpenFoodFactsBarcode(barcode: string): Promise<{
2
+ type OpenFoodFactsLookupResult = {
3
3
  food: FoodItem;
4
4
  provider: "open_food_facts";
5
- }>;
5
+ };
6
+ export declare function lookupOpenFoodFactsBarcode(barcode: string): Promise<OpenFoodFactsLookupResult>;
7
+ export {};
@@ -21,6 +21,7 @@ const NUTRIENT_KEYS = {
21
21
  sugars_100g: "sugar_g",
22
22
  "saturated-fat_100g": "saturated_fat_g",
23
23
  };
24
+ const OFF_CACHE = new Map();
24
25
  function finiteNumber(value) {
25
26
  if (typeof value === "number" && Number.isFinite(value)) {
26
27
  return value;
@@ -48,6 +49,9 @@ async function fetchBarcode(barcode) {
48
49
  },
49
50
  });
50
51
  if (!response.ok) {
52
+ if (response.status === 429) {
53
+ throw new Error("Open Food Facts is rate limiting requests right now. Try again in a few minutes, or provide the product name, label photo, or visible nutrition facts manually.");
54
+ }
51
55
  throw new Error(`Open Food Facts request failed: ${response.status} ${response.statusText}`);
52
56
  }
53
57
  return (await response.json());
@@ -129,13 +133,69 @@ export async function lookupOpenFoodFactsBarcode(barcode) {
129
133
  if (!config.off_enabled) {
130
134
  throw new Error("Open Food Facts provider is disabled");
131
135
  }
132
- const response = config.fixture_mode ? await readFixture(barcode) : await fetchBarcode(barcode);
136
+ const cached = getCachedLookup(barcode);
137
+ let response;
138
+ try {
139
+ response = config.fixture_mode ? await readFixture(barcode) : await fetchBarcode(barcode);
140
+ }
141
+ catch (error) {
142
+ if (cached !== undefined && isRateLimitError(error)) {
143
+ return cloneLookupResult(cached, "Returned cached Open Food Facts result because the provider is rate limiting requests right now.");
144
+ }
145
+ throw error;
146
+ }
133
147
  if (response.product === undefined || response.status === 0) {
134
148
  throw new Error(`Open Food Facts product not found for barcode ${barcode}`);
135
149
  }
136
- return {
150
+ const result = {
137
151
  provider: "open_food_facts",
138
152
  food: mapProduct(response, barcode),
139
153
  };
154
+ setCachedLookup(barcode, result, config.cache_ttl_seconds);
155
+ return cloneLookupResult(result);
156
+ }
157
+ function getCachedLookup(barcode) {
158
+ const cached = OFF_CACHE.get(barcode);
159
+ if (cached === undefined) {
160
+ return undefined;
161
+ }
162
+ if (cached.expires_at <= Date.now()) {
163
+ OFF_CACHE.delete(barcode);
164
+ return undefined;
165
+ }
166
+ return cached.result;
167
+ }
168
+ function setCachedLookup(barcode, result, ttlSeconds) {
169
+ OFF_CACHE.set(barcode, {
170
+ expires_at: Date.now() + Math.max(ttlSeconds, 1) * 1000,
171
+ result: cloneLookupResult(result),
172
+ });
173
+ }
174
+ function cloneLookupResult(result, warning) {
175
+ const food = {
176
+ ...result.food,
177
+ available_portions: result.food.available_portions.map((portion) => ({ ...portion })),
178
+ nutrients_per_100g: { ...result.food.nutrients_per_100g },
179
+ data_quality: {
180
+ ...result.food.data_quality,
181
+ warnings: warning === undefined
182
+ ? [...result.food.data_quality.warnings]
183
+ : [...result.food.data_quality.warnings, warning],
184
+ },
185
+ license: { ...result.food.license },
186
+ };
187
+ if (result.food.serving !== undefined) {
188
+ food.serving = { ...result.food.serving };
189
+ }
190
+ if (result.food.nutrients_per_serving !== undefined) {
191
+ food.nutrients_per_serving = { ...result.food.nutrients_per_serving };
192
+ }
193
+ return {
194
+ provider: result.provider,
195
+ food,
196
+ };
197
+ }
198
+ function isRateLimitError(error) {
199
+ return error instanceof Error && /rate limiting|429|Too Many Requests/i.test(error.message);
140
200
  }
141
201
  //# sourceMappingURL=open-food-facts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"open-food-facts.js","sourceRoot":"","sources":["../../src/providers/open-food-facts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"open-food-facts.js","sourceRoot":"","sources":["../../src/providers/open-food-facts.ts"],"names":[],"mappings":"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"}
@@ -141,7 +141,7 @@ export async function searchUsdaFoods(query, limit = 10) {
141
141
  });
142
142
  return {
143
143
  provider: "usda",
144
- foods: (search.foods ?? []).slice(0, limit).map(mapFood),
144
+ foods: rankSearchFoods(query, search.foods ?? []).slice(0, limit).map(mapFood),
145
145
  };
146
146
  }
147
147
  export async function getUsdaFood(sourceId) {
@@ -154,4 +154,38 @@ export async function getUsdaFood(sourceId) {
154
154
  }
155
155
  return mapFood(food);
156
156
  }
157
+ function rankSearchFoods(query, foods) {
158
+ return [...foods].sort((left, right) => foodSearchScore(query, left) - foodSearchScore(query, right));
159
+ }
160
+ function foodSearchScore(query, food) {
161
+ const description = (food.description ?? "").toLowerCase();
162
+ const dataType = (food.dataType ?? "").toLowerCase();
163
+ const normalizedQuery = query.toLowerCase().trim();
164
+ let score = 0;
165
+ if (dataType.includes("branded")) {
166
+ score += 60;
167
+ }
168
+ if (dataType.includes("foundation")) {
169
+ score -= 12;
170
+ }
171
+ if (dataType.includes("sr legacy")) {
172
+ score -= 10;
173
+ }
174
+ if (dataType.includes("survey")) {
175
+ score -= 6;
176
+ }
177
+ if (description === normalizedQuery || description === `${normalizedQuery}s`) {
178
+ score -= 4;
179
+ }
180
+ if (description.includes(", raw") && !normalizedQuery.includes("cooked") && !normalizedQuery.includes("cozido")) {
181
+ score -= 8;
182
+ }
183
+ if ((normalizedQuery.includes("cooked") || normalizedQuery.includes("cozido")) && description.includes("cooked")) {
184
+ score -= 8;
185
+ }
186
+ if (/^[A-Z0-9\s,.-]+$/.test(food.description ?? "") && dataType.includes("branded")) {
187
+ score += 8;
188
+ }
189
+ return score;
190
+ }
157
191
  //# sourceMappingURL=usda.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"usda.js","sourceRoot":"","sources":["../../src/providers/usda.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAE9B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAwCjE,MAAM,gBAAgB,GAAG,+CAA+C,CAAC;AAEzE,MAAM,aAAa,GAA+C;IAChE,IAAI,EAAE,eAAe;IACrB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE,WAAW;CAClB,CAAC;AAEF,KAAK,UAAU,WAAW,CAAI,QAAgB;IAC5C,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;IAC5E,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAM,CAAC;AAC9B,CAAC;AAED,KAAK,UAAU,SAAS,CAAI,IAAY,EAAE,MAA8B;IACtE,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,aAAa,GAAG,IAAI,EAAE,CAAC,CAAC;IAC/C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,YAAY,IAAI,UAAU,CAAC,CAAC;IAEnE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAChC,OAAO,EAAE;YACP,YAAY,EAAE,UAAU;YACxB,MAAM,EAAE,kBAAkB;SAC3B;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACpF,CAAC;IAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAC;AACtC,CAAC;AAED,SAAS,cAAc,CAAC,QAKvB;IACC,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;IAChE,MAAM,GAAG,GAAG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAC7E,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC;IAEjD,IAAI,GAAG,KAAK,SAAS,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAChF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,YAAY,CACnB,gBAKK,EAAE;IAEP,MAAM,SAAS,GAAgB,EAAE,CAAC;IAElC,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;QAC5C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;YAC7B,SAAS,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,YAAY,CAAC,OAA4D;IAChF,OAAO,CACL,OAAO,CAAC,QAAQ;QAChB,OAAO,CAAC,kBAAkB;QAC1B,OAAO,CAAC,WAAW,EAAE,IAAI;QACzB,OAAO,CAAC,WAAW,EAAE,YAAY;QACjC,SAAS,CACV,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAoB;IAC7C,MAAM,QAAQ,GAAmC;QAC/C;YACE,KAAK,EAAE,MAAM;YACb,QAAQ,EAAE,GAAG;YACb,IAAI,EAAE,GAAG;YACT,KAAK,EAAE,GAAG;SACX;KACF,CAAC;IAEF,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC;QAC9C,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAClF,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC;gBAC5B,QAAQ,EAAE,CAAC;gBACX,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC;aACzC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,SAAS,CAAC,QAAgB;IACjC,OAAO,uDAAuD,QAAQ,YAAY,CAAC;AACrF,CAAC;AAED,SAAS,OAAO,CAAC,IAAqC;IACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,IAAI,mBAAmB,CAAC;IACrD,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAsB,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI;QAC5C,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,GAAG;QACb,IAAI,EAAE,GAAG;QACT,KAAK,EAAE,GAAG;KACX,CAAC;IACF,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC;IAC1C,MAAM,QAAQ,GAAG;QACf,EAAE,EAAE,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC;QAChC,MAAM,EAAE,MAAe;QACvB,SAAS,EAAE,QAAQ;QACnB,UAAU,EAAE,SAAS,CAAC,QAAQ,CAAC;QAC/B,IAAI;QACJ,OAAO,EAAE;YACP,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,YAAY;SACpB;QACD,kBAAkB,EAAE,QAAQ;QAC5B,kBAAkB,EAAE,SAAS;QAC7B,qBAAqB,EACnB,cAAc,CAAC,SAAS,EAAE,YAAY,GAAG,GAAG,CAAC;QAC/C,OAAO,EAAE;YACP,IAAI,EAAE,uBAAuB;YAC7B,WAAW,EAAE,gBAAgB;YAC7B,WAAW,EAAE,KAAK;YAClB,GAAG,EAAE,2BAA2B;SACjC;KACF,CAAC;IAEF,OAAO;QACL,GAAG,QAAQ;QACX,YAAY,EAAE;YACZ,YAAY,EAAE,gBAAgB,CAAC,QAAQ,CAAC;YACxC,UAAU,EAAE,GAAG;YACf,QAAQ,EAAE,EAAE;SACb;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAAa,EACb,KAAK,GAAG,EAAE;IAEV,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,MAAM,GACV,MAAM,CAAC,YAAY;QACjB,CAAC,CAAC,MAAM,WAAW,CAAqB,oBAAoB,CAAC;QAC7D,CAAC,CAAC,MAAM,SAAS,CAAqB,eAAe,EAAE;YACnD,KAAK;YACL,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;SACtD,CAAC,CAAC;IAET,OAAO;QACL,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;KACzD,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,QAAgB;IAChD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY;QAC9B,CAAC,CAAC,MAAM,WAAW,CAAiB,kBAAkB,CAAC;QACvD,CAAC,CAAC,MAAM,SAAS,CAAiB,SAAS,kBAAkB,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAEjF,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,wCAAwC,QAAQ,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"usda.js","sourceRoot":"","sources":["../../src/providers/usda.ts"],"names":[],"mappings":"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"}
@@ -92,6 +92,26 @@ export declare const BarcodeLookupInputSchema: z.ZodObject<{
92
92
  markdown: "markdown";
93
93
  }>>;
94
94
  }, z.core.$strict>;
95
+ export declare const BarcodeImageDecodeInputSchema: z.ZodObject<{
96
+ response_format: z.ZodDefault<z.ZodEnum<{
97
+ json: "json";
98
+ markdown: "markdown";
99
+ }>>;
100
+ image_path: z.ZodOptional<z.ZodString>;
101
+ image_base64: z.ZodOptional<z.ZodString>;
102
+ image_data_uri: z.ZodOptional<z.ZodString>;
103
+ image_mime_type: z.ZodOptional<z.ZodString>;
104
+ }, z.core.$strict>;
105
+ export declare const BarcodeImageLookupInputSchema: z.ZodObject<{
106
+ response_format: z.ZodDefault<z.ZodEnum<{
107
+ json: "json";
108
+ markdown: "markdown";
109
+ }>>;
110
+ image_path: z.ZodOptional<z.ZodString>;
111
+ image_base64: z.ZodOptional<z.ZodString>;
112
+ image_data_uri: z.ZodOptional<z.ZodString>;
113
+ image_mime_type: z.ZodOptional<z.ZodString>;
114
+ }, z.core.$strict>;
95
115
  export declare const FoodGetInputSchema: z.ZodObject<{
96
116
  source: z.ZodEnum<{
97
117
  usda: "usda";
@@ -118,6 +138,28 @@ export declare const MealEstimateInputSchema: z.ZodObject<{
118
138
  markdown: "markdown";
119
139
  }>>;
120
140
  }, z.core.$strict>;
141
+ export declare const PhotoMealEstimateInputSchema: z.ZodObject<{
142
+ image_description: z.ZodString;
143
+ detected_items: z.ZodDefault<z.ZodArray<z.ZodObject<{
144
+ name: z.ZodString;
145
+ quantity: z.ZodOptional<z.ZodNumber>;
146
+ unit: z.ZodOptional<z.ZodString>;
147
+ grams_estimate: z.ZodOptional<z.ZodNumber>;
148
+ confidence: z.ZodOptional<z.ZodNumber>;
149
+ }, z.core.$strict>>>;
150
+ locale: z.ZodDefault<z.ZodString>;
151
+ meal_type: z.ZodDefault<z.ZodEnum<{
152
+ breakfast: "breakfast";
153
+ lunch: "lunch";
154
+ dinner: "dinner";
155
+ snack: "snack";
156
+ other: "other";
157
+ }>>;
158
+ response_format: z.ZodDefault<z.ZodEnum<{
159
+ json: "json";
160
+ markdown: "markdown";
161
+ }>>;
162
+ }, z.core.$strict>;
121
163
  export declare const IntakeLogInputSchema: z.ZodObject<{
122
164
  text: z.ZodOptional<z.ZodString>;
123
165
  food: z.ZodOptional<z.ZodUnknown>;