@sylphx/iris 0.1.9 → 0.2.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/README.md CHANGED
@@ -2,9 +2,11 @@
2
2
 
3
3
  # Iris
4
4
 
5
- ### Image evidence for agents
5
+ ### Image evidence for agents
6
6
 
7
- **Iris** (transitional package `@sylphx/image-reader-mcp`) **Rust-first** local image facts, not default VLM guesses. `sharp`/`exifr` are optional, not required for MCP.
7
+ Canonical package: **`@sylphx/iris`** · bin **`iris`**
8
+
9
+ **Iris** — **Rust-first** local image facts (`@sylphx/iris`) local image facts, not default VLM guesses. `sharp`/`exifr` are optional, not required for MCP.
8
10
 
9
11
  <p align="center">
10
12
  <img src="https://mark.sylphx.com/api/v1/banner?type=holo&theme=tokyonight&text=image+reader+mcp&desc=Evidence-first+image+reading+for+AI+agents+%E2%80%94+metadata%2C+OCR+text%2C+regions%2C+and+ci&height=200&animation=rise&credit=0" alt="image-reader-mcp — Sylphx Mark banner" width="100%" />
@@ -16,7 +18,7 @@ Evidence-first image reading for AI agents. One call turns any local image into
16
18
  **Agent Media Twin** — dimensions, metadata, optional OCR with bounding boxes, and
17
19
  trust warnings you can cite without asking a vision LLM to guess.
18
20
 
19
- [![npm version](https://img.shields.io/npm/v/@sylphx/image-reader-mcp?style=flat-square)](https://www.npmjs.com/package/@sylphx/image-reader-mcp)
21
+ [![npm version](https://img.shields.io/npm/v/@sylphx/iris?style=flat-square)](https://www.npmjs.com/package/@sylphx/iris)
20
22
  [![License](https://img.shields.io/badge/License-MIT-blue?style=flat-square)](https://opensource.org/licenses/MIT)
21
23
  [![CI/CD](https://img.shields.io/github/actions/workflow/status/SylphxAI/image-reader-mcp/ci.yml?style=flat-square&label=CI/CD)](https://github.com/SylphxAI/image-reader-mcp/actions/workflows/ci.yml)
22
24
  [![TypeScript](https://img.shields.io/badge/TypeScript-7.0-blue.svg?style=flat-square)](https://www.typescriptlang.org/)
@@ -37,13 +39,23 @@ Each instrument is an independent repository (marketplace + stars).
37
39
 
38
40
 
39
41
 
42
+ ## See objects (L2, optional)
43
+
44
+ With a local Florence-class sidecar or Ollama, the same `read_image` can return **open-vocab objects** with pixel bboxes and scores:
45
+
46
+ ```json
47
+ { "path": "/abs/photo.jpg", "include_semantics": true, "semantics_prompt": "people and animals" }
48
+ ```
49
+
50
+ Objects are `scored_non_locator` evidence — deterministic L0/L1 facts (geometry/OCR/layout) stay authoritative and always on.
51
+
40
52
  ## Read images (not vague vision)
41
53
 
42
54
  Iris is **local-first**: geometry + OCR + **layout blocks** + **agent_map** so a text-only agent can understand picture architecture without a vision model.
43
55
 
44
56
  Spec: [docs/specs/agent-image-read-contract.md](docs/specs/agent-image-read-contract.md)
45
57
 
46
- **Local-first frontier:** Rust decode, Tesseract native layout (no npm ML), optional Ollama VLM; cloud URL optional. Zero API key.
58
+ **Local-first frontier:** Rust decode, Tesseract native layout (no npm ML), optional Ollama VLM; cloud URL optional. Zero API key. Optional **L2 local semantics** (include_semantics) detects open-vocab objects (people/animals/things) with pixel bboxes via an official Florence-class sidecar (examples/florence-sidecar/) or Ollama -- never authority over OCR/layout locators.
47
59
 
48
60
  ## Product docs
49
61
 
@@ -86,15 +98,15 @@ an image, not a creative caption.**
86
98
  ### Install (30 seconds)
87
99
 
88
100
  ```bash
89
- npm install -g @sylphx/image-reader-mcp
101
+ npm install -g @sylphx/iris
90
102
  iris doctor
91
- claude mcp add iris -- npx @sylphx/image-reader-mcp
103
+ claude mcp add iris -- npx @sylphx/iris
92
104
  ```
93
105
 
94
106
  **Install once. Call once.**
95
107
 
96
108
  ```bash
97
- claude mcp add image-reader -- npx @sylphx/image-reader-mcp
109
+ claude mcp add image-reader -- npx @sylphx/iris
98
110
  ```
99
111
 
100
112
  ```json
@@ -148,7 +160,7 @@ Supported formats: PNG, JPEG, GIF, WebP, TIFF, and other formats the **Rust deco
148
160
  ### Claude Code
149
161
 
150
162
  ```bash
151
- claude mcp add image-reader -- npx @sylphx/image-reader-mcp
163
+ claude mcp add image-reader -- npx @sylphx/iris
152
164
  ```
153
165
 
154
166
  ### Claude Desktop
@@ -160,7 +172,7 @@ Add this to `claude_desktop_config.json`:
160
172
  "mcpServers": {
161
173
  "image-reader": {
162
174
  "command": "npx",
163
- "args": ["@sylphx/image-reader-mcp"]
175
+ "args": ["@sylphx/iris"]
164
176
  }
165
177
  }
166
178
  }
@@ -169,7 +181,7 @@ Add this to `claude_desktop_config.json`:
169
181
  ### Any MCP Client
170
182
 
171
183
  ```bash
172
- npx @sylphx/image-reader-mcp
184
+ npx @sylphx/iris
173
185
  ```
174
186
 
175
187
  Node.js `>=22.13` is required. Optional OCR uses a local Tesseract adapter when
@@ -219,7 +231,7 @@ Example `read_image` requests live in [`examples/`](examples/).
219
231
  ## Support
220
232
 
221
233
  - [Issues](https://github.com/SylphxAI/image-reader-mcp/issues)
222
- - [npm package](https://www.npmjs.com/package/@sylphx/image-reader-mcp)
234
+ - [npm package](https://www.npmjs.com/package/@sylphx/iris)
223
235
  - Portfolio orchestration: [smart-reader-mcp](https://github.com/SylphxAI/smart-reader-mcp)
224
236
 
225
237
  ## Help this reach more builders
@@ -23,10 +23,10 @@ host_platform_key() {
23
23
 
24
24
  platform_package_name() {
25
25
  case "$(host_platform_key)" in
26
- darwin-arm64) printf '%s\n' '@sylphx/image-reader-mcp-darwin-arm64' ;;
27
- darwin-x64) printf '%s\n' '@sylphx/image-reader-mcp-darwin-x64' ;;
28
- linux-x64) printf '%s\n' '@sylphx/image-reader-mcp-linux-x64-gnu' ;;
29
- linux-arm64) printf '%s\n' '@sylphx/image-reader-mcp-linux-arm64-gnu' ;;
26
+ darwin-arm64) printf '%s\n' '@sylphx/iris-darwin-arm64' ;;
27
+ darwin-x64) printf '%s\n' '@sylphx/iris-darwin-x64' ;;
28
+ linux-x64) printf '%s\n' '@sylphx/iris-linux-x64-gnu' ;;
29
+ linux-arm64) printf '%s\n' '@sylphx/iris-linux-arm64-gnu' ;;
30
30
  *) return 1 ;;
31
31
  esac
32
32
  }
@@ -47,7 +47,7 @@ resolve_from_optional_dep() {
47
47
  "$PACKAGE_ROOT/../../node_modules"
48
48
  )
49
49
  for root in "${search_roots[@]}"; do
50
- candidate="$root/$pkg_name/image-reader-mcp-server"
50
+ candidate="$root/$pkg_name/iris-mcp-server"
51
51
  if is_runnable_native "$candidate"; then
52
52
  printf '%s\n' "$candidate"
53
53
  return 0
@@ -61,7 +61,7 @@ resolve_from_optional_dep() {
61
61
  const { createRequire } = require('node:module');
62
62
  const r = createRequire(p.join(process.argv[1], 'package.json'));
63
63
  const pkg = r.resolve(process.argv[2] + '/package.json');
64
- process.stdout.write(p.join(p.dirname(pkg), 'image-reader-mcp-server'));
64
+ process.stdout.write(p.join(p.dirname(pkg), 'iris-mcp-server'));
65
65
  } catch { process.exit(1); }
66
66
  " "$PACKAGE_ROOT" "$pkg_name" 2>/dev/null || true
67
67
  )"
@@ -74,8 +74,8 @@ resolve_from_optional_dep() {
74
74
  }
75
75
 
76
76
  resolve_rust_bin() {
77
- if [[ -n "${IMAGE_READER_MCP_RUST_BIN:-}" && -x "${IMAGE_READER_MCP_RUST_BIN}" ]]; then
78
- printf '%s\n' "${IMAGE_READER_MCP_RUST_BIN}"
77
+ if [[ -n "${IRIS_RUST_BIN:-}" && -x "${IRIS_RUST_BIN}" ]]; then
78
+ printf '%s\n' "${IRIS_RUST_BIN}"
79
79
  return 0
80
80
  fi
81
81
  if bin="$(resolve_from_optional_dep)"; then
@@ -83,9 +83,9 @@ resolve_rust_bin() {
83
83
  return 0
84
84
  fi
85
85
  for candidate in \
86
- "$PACKAGE_ROOT/bin/native/image-reader-mcp-server" \
87
- "$PACKAGE_ROOT/target/release/image-reader-mcp-server" \
88
- "$PACKAGE_ROOT/target/debug/image-reader-mcp-server"; do
86
+ "$PACKAGE_ROOT/bin/native/iris-mcp-server" \
87
+ "$PACKAGE_ROOT/target/release/iris-mcp-server" \
88
+ "$PACKAGE_ROOT/target/debug/iris-mcp-server"; do
89
89
  if is_runnable_native "$candidate"; then
90
90
  printf '%s\n' "$candidate"
91
91
  return 0
@@ -115,5 +115,5 @@ if bin="$(resolve_rust_bin)"; then
115
115
  exec "$bin" "$@"
116
116
  fi
117
117
 
118
- echo "[iris] Rust MCP server not found. Install matching optional native package (@sylphx/image-reader-mcp-<platform>) or run: bun run build:rust" >&2
118
+ echo "[iris] Rust MCP server not found. Install matching optional native package (@sylphx/iris-<platform>) or run: bun run build:rust" >&2
119
119
  exit 1
package/package.json CHANGED
@@ -1,15 +1,14 @@
1
1
  {
2
2
  "name": "@sylphx/iris",
3
- "version": "0.1.9",
4
- "mcpName": "io.github.SylphxAI/image-reader-mcp",
5
- "description": "Iris Evidence-first image reading for AI agents — metadata, OCR text, regions, and citeable evidence without generative LLM. (brand alias of @sylphx/image-reader-mcp)",
3
+ "version": "0.2.0",
4
+ "mcpName": "io.github.SylphxAI/iris",
5
+ "description": "Iris \u2014 evidence-first image reading for AI agents. Metadata, OCR text, regions, citeable evidence. Local-first. No generative LLM authority.",
6
6
  "type": "module",
7
7
  "bin": {
8
- "image-reader-mcp": "./bin/image-reader-mcp",
9
- "iris": "./bin/image-reader-mcp"
8
+ "iris": "./bin/iris"
10
9
  },
11
10
  "files": [
12
- "bin/image-reader-mcp",
11
+ "bin/iris",
13
12
  "dist/",
14
13
  "README.md",
15
14
  "LICENSE",
@@ -17,8 +16,7 @@
17
16
  ],
18
17
  "exports": {
19
18
  ".": "./dist/doctor-cli.js",
20
- "./sdk": "./src/sdk.ts",
21
- "./iris": "./src/sdk.ts"
19
+ "./sdk": "./src/sdk.ts"
22
20
  },
23
21
  "publishConfig": {
24
22
  "access": "public"
@@ -60,8 +58,9 @@
60
58
  "benchmark:release-gate": "bun scripts/release-gate.ts",
61
59
  "sync:server-json": "bun scripts/sync-server-json.ts",
62
60
  "version-packages": "changeset version && bun run sync:server-json",
63
- "start": "./bin/image-reader-mcp",
61
+ "start": "./bin/iris",
64
62
  "clean": "rm -rf dist coverage",
63
+ "prepublishOnly": "bun run clean && bun run build && bun run build:rust",
65
64
  "release": "bun run typecheck && bun run check && bun run build && bun test && changeset publish",
66
65
  "benchmark:public-proof": "bun scripts/public-proof.ts",
67
66
  "brand:pack-plan": "bun scripts/brand-pack-plan.ts"
@@ -83,9 +82,9 @@
83
82
  "optionalDependencies": {
84
83
  "sharp": "^0.35.0",
85
84
  "exifr": "^7.1.3",
86
- "@sylphx/image-reader-mcp-darwin-arm64": "0.1.9",
87
- "@sylphx/image-reader-mcp-darwin-x64": "0.1.9",
88
- "@sylphx/image-reader-mcp-linux-x64-gnu": "0.1.9",
89
- "@sylphx/image-reader-mcp-linux-arm64-gnu": "0.1.9"
85
+ "@sylphx/iris-darwin-arm64": "0.2.0",
86
+ "@sylphx/iris-darwin-x64": "0.2.0",
87
+ "@sylphx/iris-linux-x64-gnu": "0.2.0",
88
+ "@sylphx/iris-linux-arm64-gnu": "0.2.0"
90
89
  }
91
- }
90
+ }