{
  "date": "2026-10-11",
  "author": "Mycelium Protocol",
  "license": "CC BY 4.0",
  "environment": {
    "machine": "Mac mini",
    "chip": "Apple M4",
    "memory_gb": 16,
    "os": "macOS 26.6.2",
    "runtime": "official macos-arm64 needle CLI",
    "env": {
      "NEEDLE_TELEMETRY": "0",
      "DO_NOT_TRACK": "1"
    }
  },
  "scope": "Single-invocation smoke tests with cached local files. Process wall time includes startup and inference. No actual weather lookup or device control. Synthetic Samantha speech and digital silence, not real microphones or a corpus benchmark. Network isolation and binary telemetry were not audited. Kai inference was not run.",
  "files": [
    {
      "file": "needle",
      "bytes": 1106424,
      "sha256": "1e7e698b492904a92496e2b168844a3101e671928ffa6372970d897512251c48"
    },
    {
      "file": "needle3.cact",
      "bytes": 35335380,
      "sha256": "c9d915eca282ed42d1a09b143b592adb4cc6744ffe2d294adf5cfc5548170c38"
    },
    {
      "file": "whistle.cact",
      "bytes": 16919407,
      "sha256": "b6e02f048568ac5d01a2042556c658061e699acbc0aa2a1439f52f3d461dffeb"
    }
  ],
  "results": [
    {
      "prompt": "What's the weather in Lagos?",
      "wall_s": 0.069,
      "exit": 0,
      "result": {
        "type": "call",
        "success": true,
        "error": null,
        "error_code": null,
        "reason": null,
        "function_calls": [
          {
            "name": "get_weather",
            "arguments": {
              "city": "Lagos"
            }
          }
        ],
        "suppressed_calls": [],
        "reasoning": "get_weather tool. city 'Lagos' from query.",
        "confidence": 0.8842,
        "prefill_tps": 4053.9,
        "decode_tps": 1806.6,
        "peak_ram_mb": 91.1,
        "validation": {
          "ungrounded": [],
          "negation": false
        }
      }
    },
    {
      "prompt": "Dim the living room light to 30 percent.",
      "wall_s": 0.062,
      "exit": 0,
      "result": {
        "type": "call",
        "success": true,
        "error": null,
        "error_code": null,
        "reason": null,
        "function_calls": [
          {
            "name": "set_light",
            "arguments": {
              "room": "living room",
              "brightness": 30
            }
          }
        ],
        "suppressed_calls": [],
        "reasoning": "room 'living room' from query; brightness 30 from '30 percent'.",
        "confidence": 0.8483,
        "prefill_tps": 4109.6,
        "decode_tps": 1877.2,
        "peak_ram_mb": 91.2,
        "validation": {
          "ungrounded": [],
          "negation": false
        }
      }
    },
    {
      "prompt": "Tell me the weather in Paris and set the kitchen light to 70 percent.",
      "wall_s": 0.079,
      "exit": 0,
      "result": {
        "type": "call",
        "success": true,
        "error": null,
        "error_code": null,
        "reason": null,
        "function_calls": [
          {
            "name": "get_weather",
            "arguments": {
              "city": "Paris"
            }
          },
          {
            "name": "set_light",
            "arguments": {
              "room": "kitchen",
              "brightness": 70
            }
          }
        ],
        "suppressed_calls": [],
        "reasoning": "get_weather: city 'Paris' from query. set_light: room 'kitchen' from query, brightness 70 from '70 percent'.",
        "confidence": 0.8088,
        "prefill_tps": 4336.3,
        "decode_tps": 1895.1,
        "peak_ram_mb": 91.6,
        "validation": {
          "ungrounded": [],
          "negation": false
        }
      }
    },
    {
      "prompt": "Write a poem about the moon.",
      "wall_s": 0.051,
      "exit": 0,
      "result": {
        "type": "call",
        "success": true,
        "error": null,
        "error_code": null,
        "reason": null,
        "function_calls": [],
        "suppressed_calls": [],
        "reasoning": "No tool available for writing or poem content.",
        "confidence": 0.9026,
        "prefill_tps": 4137.1,
        "decode_tps": 1821.0,
        "peak_ram_mb": 88.3
      }
    },
    {
      "prompt": "把客厅灯调到百分之三十。",
      "wall_s": 0.057,
      "exit": 0,
      "result": {
        "type": "call",
        "success": true,
        "error": null,
        "error_code": null,
        "reason": null,
        "function_calls": [],
        "suppressed_calls": [],
        "reasoning": "No tool available for navigation or maps.",
        "confidence": 0.8668,
        "prefill_tps": 4206.3,
        "decode_tps": 1792.9,
        "peak_ram_mb": 88.7
      }
    },
    {
      "case": "silence-3s",
      "wall_s": 0.036,
      "exit": 0,
      "result": {
        "text": "",
        "language": "",
        "ttft_ms": 0.0,
        "decode_tps": 0.0
      }
    },
    {
      "case": "tts-transcribe",
      "expected": "Set the kitchen light to seventy percent.",
      "wall_s": 0.025,
      "exit": 0,
      "result": {
        "text": "set the kitchen light to 70%.",
        "language": "en",
        "words": [
          {
            "word": "set",
            "start": 0.08,
            "end": 0.32,
            "probability": 0.45
          },
          {
            "word": "the",
            "start": 0.32,
            "end": 0.48,
            "probability": 0.999
          },
          {
            "word": "kitchen",
            "start": 0.48,
            "end": 0.8,
            "probability": 0.97
          },
          {
            "word": "light",
            "start": 0.8,
            "end": 1.12,
            "probability": 0.982
          },
          {
            "word": "to",
            "start": 1.12,
            "end": 1.28,
            "probability": 0.999
          },
          {
            "word": "70%.",
            "start": 1.28,
            "end": 1.6,
            "probability": 0.994
          }
        ],
        "ttft_ms": 3.8,
        "decode_tps": 1281.4
      }
    },
    {
      "case": "tts-combined",
      "expected": "Set the kitchen light to seventy percent.",
      "wall_s": 0.096,
      "exit": 0,
      "result": {
        "type": "call",
        "success": true,
        "error": null,
        "error_code": null,
        "reason": null,
        "function_calls": [
          {
            "name": "set_light",
            "arguments": {
              "room": "kitchen",
              "brightness": 70
            }
          }
        ],
        "suppressed_calls": [],
        "reasoning": "room 'kitchen' from query; brightness 70 from '70%'.",
        "confidence": 0.9366,
        "prefill_tps": 3628.3,
        "decode_tps": 1861.0,
        "peak_ram_mb": 136.5,
        "validation": {
          "ungrounded": [],
          "negation": false
        },
        "audio_text": "set the kitchen light to 70%.",
        "audio_language": "en",
        "audio_words": [
          {
            "word": "set",
            "start": 0.08,
            "end": 0.32,
            "probability": 0.45
          },
          {
            "word": "the",
            "start": 0.32,
            "end": 0.48,
            "probability": 0.999
          },
          {
            "word": "kitchen",
            "start": 0.48,
            "end": 0.8,
            "probability": 0.97
          },
          {
            "word": "light",
            "start": 0.8,
            "end": 1.12,
            "probability": 0.982
          },
          {
            "word": "to",
            "start": 1.12,
            "end": 1.28,
            "probability": 0.999
          },
          {
            "word": "70%.",
            "start": 1.28,
            "end": 1.6,
            "probability": 0.994
          }
        ],
        "audio_ttft_ms": 3.7,
        "audio_decode_tps": 1238.5
      }
    }
  ],
  "sources": [
    "https://huggingface.co/Cactus-Compute/needle3",
    "https://huggingface.co/Cactus-Compute/whistle",
    "https://github.com/cactus-compute/needle"
  ],
  "kai_gguf_file_bytes": {
    "BF16": 1202396320,
    "Q8_0": 643660960,
    "Q4_K_M": 400918688
  },
  "kai_note": "File sizes from the HF API. Published validation remains vendor data, not our local inference."
}
